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