1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/ti,twl6040.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Texas Instruments TWL6040 family audio codec
maintainers:
- Eduard Bostina <egbostina@gmail.com>
description:
The TWL6040s are 8-channel high quality low-power audio codecs providing
audio, vibra and GPO functionality on OMAP4+ platforms. They are connected
to the host processor via i2c for commands, McPDM for audio data and
commands.
properties:
compatible:
enum:
- ti,twl6040
- ti,twl6041
reg:
const: 0x4b
interrupts:
maxItems: 1
gpio-controller: true
"#gpio-cells":
const: 1
"#clock-cells":
const: 0
ti,audpwron-gpio:
maxItems: 1
description: Power on GPIO line for the twl6040
vio-supply:
description: Regulator for the twl6040 VIO supply
v2v1-supply:
description: Regulator for the twl6040 V2V1 supply
enable-active-high:
type: boolean
description: To power on the twl6040 during boot.
clocks:
minItems: 1
maxItems: 2
clock-names:
minItems: 1
maxItems: 2
items:
enum:
- clk32k
- mclk
vddvibl-supply:
description: Regulator for the left vibra motor
vddvibr-supply:
description: Regulator for the right vibra motor
vibra:
type: object
additionalProperties: false
properties:
ti,vibldrv-res:
$ref: /schemas/types.yaml#/definitions/uint32
description: Resistance parameter for left driver
ti,vibrdrv-res:
$ref: /schemas/types.yaml#/definitions/uint32
description: Resistance parameter for right driver
ti,viblmotor-res:
$ref: /schemas/types.yaml#/definitions/uint32
description: Resistance parameter for left motor
ti,vibrmotor-res:
$ref: /schemas/types.yaml#/definitions/uint32
description: Resistance parameter for right motor
ti,vddvibl-uV:
$ref: /schemas/types.yaml#/definitions/uint32
description: vddvibl default voltage if it needs to be changed
ti,vddvibr-uV:
$ref: /schemas/types.yaml#/definitions/uint32
description: vddvibr default voltage if it needs to be changed
required:
- ti,vibldrv-res
- ti,vibrdrv-res
- ti,viblmotor-res
- ti,vibrmotor-res
required:
- compatible
- reg
- interrupts
- "#clock-cells"
- vio-supply
- v2v1-supply
allOf:
- if:
required:
- vibra
then:
required:
- vddvibl-supply
- vddvibr-supply
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
audio-codec@4b {
compatible = "ti,twl6040";
reg = <0x4b>;
interrupts = <0 119 IRQ_TYPE_LEVEL_HIGH>;
interrupt-parent = <&gic>;
gpio-controller;
#gpio-cells = <1>;
#clock-cells = <0>;
ti,audpwron-gpio = <&gpio4 31 0>;
vio-supply = <&v1v8>;
v2v1-supply = <&v2v1>;
enable-active-high;
/* regulators for vibra motor */
vddvibl-supply = <&vbat>;
vddvibr-supply = <&vbat>;
vibra {
ti,vibldrv-res = <8>;
ti,vibrdrv-res = <3>;
ti,viblmotor-res = <10>;
ti,vibrmotor-res = <10>;
};
};
};
|