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