WIP FPC-III support
[linux/fpc-iii.git] / Documentation / devicetree / bindings / mfd / wlf,arizona.yaml
blob9e762d474218ad664427a5ccc27d7d042fd7e049
1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/mfd/wlf,arizona.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Cirrus Logic/Wolfson Microelectronics Arizona class audio SoCs
9 maintainers:
10   - patches@opensource.cirrus.com
12 description: |
13   These devices are audio SoCs with extensive digital capabilities and a
14   range of analogue I/O.
16 allOf:
17   - $ref: /schemas/sound/wlf,arizona.yaml#
18   - $ref: /schemas/regulator/wlf,arizona.yaml#
19   - $ref: /schemas/extcon/wlf,arizona.yaml#
20   - if:
21       properties:
22         compatible:
23           contains:
24             enum:
25               - cirrus,cs47l24
26               - wlf,wm1831
27     then:
28       required:
29         - DCVDD-supply
30         - MICVDD-supply
31     else:
32       properties:
33         LDOVDD-supply:
34           description:
35             Digital power supply, used internally to generate DCVDD when
36             internally supplied.
38   - if:
39       properties:
40         compatible:
41           contains:
42             enum:
43               - wlf,wm1814
44               - wlf,wm5102
45               - wlf,wm5110
46               - wlf,wm8280
47               - wlf,wm8997
48               - wlf,wm8998
49     then:
50       properties:
51         DBVDD2-supply:
52           description:
53             Databus power supply.
55       required:
56         - DBVDD2-supply
57   - if:
58       properties:
59         compatible:
60           contains:
61             enum:
62               - wlf,wm1814
63               - wlf,wm5102
64               - wlf,wm5110
65               - wlf,wm8280
66               - wlf,wm8998
67     then:
68       properties:
69         DBVDD3-supply:
70           description:
71             Databus power supply.
73       required:
74         - DBVDD3-supply
75   - if:
76       properties:
77         compatible:
78           contains:
79             enum:
80               - cirrus,cs47l24
81               - wlf,wm1831
82               - wlf,wm8997
83     then:
84       properties:
85         SPKVDD-supply:
86           description:
87             Mono speaker driver power supply.
89       required:
90         - SPKVDD-supply
91     else:
92       properties:
93         SPKVDDL-supply:
94           description:
95             Left speaker driver power supply.
97         SPKVDDR-supply:
98           description:
99             Right speaker driver power supply.
101       required:
102         - SPKVDDL-supply
103         - SPKVDDR-supply
105 properties:
106   compatible:
107     enum:
108       - cirrus,cs47l24
109       - wlf,wm1814
110       - wlf,wm1831
111       - wlf,wm5102
112       - wlf,wm5110
113       - wlf,wm8280
114       - wlf,wm8997
115       - wlf,wm8998
117   reg:
118     maxItems: 1
120   AVDD-supply:
121     description:
122       Analogue power supply.
124   CPVDD-supply:
125     description:
126       Charge pump power supply.
128   DBVDD1-supply:
129     description:
130       Databus power supply.
132   DCVDD-supply:
133     description:
134       Digital power supply, normally supplied internally except on cs47l24,
135       wm1831 where it is mandatory.
137   MICVDD-supply:
138     description:
139       Microphone power supply, normally supplied internally except on
140       cs47l24, wm1831 where it is mandatory.
142   gpio-controller: true
144   '#gpio-cells':
145     description:
146       The first cell is the pin number and the second cell is used to
147       specify optional parameters.
148     const: 2
150   wlf,gpio-defaults:
151     description:
152       A list of GPIO configuration register values. Defines for the
153       appropriate values can found in dt-bindings/mfd/arizona.h. If
154       absent, no configuration of these registers is performed. If any
155       entry has a value that is out of range for a 16 bit register then the
156       chip default will be used. If present exactly five values must be
157       specified.
158     $ref: "/schemas/types.yaml#/definitions/uint32-array"
159     minItems: 1
160     maxItems: 5
162   interrupt-controller: true
164   '#interrupt-cells':
165     description:
166       The first cell is the IRQ number.  The second cell is the flags,
167       encoded as trigger masks.
168     const: 2
170   interrupts:
171     maxItems: 1
173   clocks:
174     description:
175       Should reference the clocks supplied on MCLK1 and MCLK2.
176     minItems: 1
177     maxItems: 2
179   clock-names:
180     description:
181       Should contains two strings mclk1 for the clock supplied on MCLK1,
182       recommended to be a high quality audio reference clock mclk2 for the
183       clock supplied on MCLK2, recommended to be an always on 32k clock.
184     oneOf:
185       - items:
186           - const: mclk1
187       - items:
188           - const: mclk2
189       - items:
190           - const: mclk1
191           - const: mclk2
193   reset-gpios:
194     maxItems: 1
196   wlf,reset:
197     description:
198       GPIO specifier for the GPIO controlling RESET
199     deprecated: true
200     $ref: /schemas/types.yaml#/definitions/phandle-array
201     maxItems: 1
203 required:
204   - compatible
205   - AVDD-supply
206   - CPVDD-supply
207   - DBVDD1-supply
208   - gpio-controller
209   - '#gpio-cells'
210   - interrupt-controller
211   - '#interrupt-cells'
212   - interrupts
214 unevaluatedProperties: false
216 examples:
217   - |
218     #include <dt-bindings/mfd/arizona.h>
219     i2c@e0004000 {
220         #address-cells = <1>;
221         #size-cells = <0>;
222         reg = <0xe0004000 0x1000>;
224         wm5102: codec@1a {
225             compatible = "wlf,wm5102";
226             reg = <0x1a>;
228             reset-gpios = <&gpio 0>;
229             wlf,ldoena = <&gpio 1>;
231             AVDD-supply = <&vdd1v8>;
232             DBVDD1-supply = <&vdd1v8>;
233             DBVDD2-supply = <&vdd1v8>;
234             DBVDD3-supply = <&vdd1v8>;
235             CPVDD-supply = <&vdd1v8>;
236             LDOVDD-supply = <&vdd1v8>;
237             SPKVDDL-supply = <&vdd5v>;
238             SPKVDDR-supply = <&vdd5v>;
240             interrupts = <347>;
241             interrupt-controller;
242             #interrupt-cells = <2>;
243             interrupt-parent = <&gic>;
245             gpio-controller;
246             #gpio-cells = <2>;
248             #sound-dai-cells = <1>;
250             wlf,gpio-defaults = <
251                 ARIZONA_GP_FN_TXLRCLK
252                 ARIZONA_GP_DEFAULT
253                 ARIZONA_GP_DEFAULT
254                 ARIZONA_GP_DEFAULT
255                 ARIZONA_GP_DEFAULT
256             >;
258             clocks = <&clks 0>, <&clks 1>;
259             clock-names = "mclk1", "mclk2";
261             wlf,inmode = <ARIZONA_INMODE_DIFF ARIZONA_INMODE_DMIC>;
262             wlf,dmic-ref = <ARIZONA_DMIC_MICBIAS1 ARIZONA_DMIC_MICBIAS3>;
264             wlf,use-jd2;
265             wlf,use-jd2-nopull;
266             wlf,jd-invert;
268             wlf,micd-software-compare;
269             wlf,micd-detect-debounce = <0>;
270             wlf,micd-pol-gpio = <&codec 2 0>;
271             wlf,micd-rate = <ARIZONA_MICD_TIME_8MS>;
272             wlf,micd-dbtime = <4>;
273             wlf,micd-timeout-ms = <100>;
274             wlf,micd-force-micbias;
275             wlf,micd-configs = <0 ARIZONA_DMIC_MICBIAS1 0>,
276                                <0x2000 ARIZONA_DMIC_MICBIAS2 1>;
278             wlf,gpsw = <ARIZONA_GPSW_OPEN>;
279         };
280     };