1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
4 $id: http://devicetree.org/schemas/mfd/cirrus,madera.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Cirrus Logic Madera class audio CODECs Multi-Functional Device
10 - patches@opensource.cirrus.com
13 These devices are audio SoCs with extensive digital capabilities and a range
16 See also the child driver bindings in:
18 bindings/pinctrl/cirrus,madera.yaml
19 bindings/regulator/wlf,arizona.yaml
20 bindings/sound/cirrus,madera.yaml
23 - $ref: /schemas/pinctrl/cirrus,madera.yaml#
24 - $ref: /schemas/regulator/wlf,arizona.yaml#
25 - $ref: /schemas/sound/cirrus,madera.yaml#
37 Left speaker driver power supply.
41 Right speaker driver power supply.
60 Mono speaker driver power supply.
113 Secondary charge pump power supply.
134 gpio-controller: true
138 The first cell is the pin number. The second cell is reserved for
139 future use and must be zero
142 interrupt-controller: true
146 The first cell is the IRQ number.
147 The second cell is the flags, encoded as the trigger masks from
148 bindings/interrupt-controller/interrupts.txt
156 One entry specifying the GPIO controlling /RESET. As defined in
157 bindings/gpio.txt. Although optional, it is strongly recommended
158 to use a hardware reset.
163 Should reference the clocks supplied on MCLK1, MCLK2 and MCLK3.
169 May contain up to three strings:
170 "mclk1" For the clock supplied on MCLK1, recommended to be a
171 high quality audio reference clock.
172 "mclk2" For the clock supplied on MCLK2, required to be an
174 "mclk3" For the clock supplied on MCLK3.
198 Analogue power supply.
202 Databus power supply.
206 Charge pump power supply.
210 Digital power supply, optional on CS47L85, WM1840 where it can
211 be supplied internally.
215 Microphone power supply, normally supplied internally except on
216 cs47l24, wm1831 where it is mandatory.
222 - interrupt-controller
230 unevaluatedProperties: false
234 #include <dt-bindings/sound/madera.h>
236 #address-cells = <1>;
238 reg = <0xe0004000 0x1000>;
241 compatible = "cirrus,cs47l85";
244 reset-gpios = <&gpio 0>;
245 wlf,ldoena = <&gpio 1>;
247 interrupt-controller;
248 #interrupt-cells = <2>;
249 interrupts = <&host_irq1>;
250 interrupt-parent = <&gic>;
255 AVDD-supply = <&vdd1v8>;
256 DBVDD1-supply = <&vdd1v8>;
257 DBVDD2-supply = <&vdd1v8>;
258 DBVDD3-supply = <&vdd1v8>;
259 DBVDD4-supply = <&vdd1v8>;
260 CPVDD1-supply = <&vdd1v8>;
261 CPVDD2-supply = <&vdd1v2>;
262 SPKVDDL-supply = <&vdd5v>;
263 SPKVDDR-supply = <&vdd5v>;
265 clocks = <&clks 0>, <&clks 1>, <&clks 2>;
266 clock-names = "mclk1", "mclk2", "mclk3";
268 cirrus,dmic-ref = <0 0 MADERA_DMIC_REF_MICBIAS1>;
270 MADERA_INMODE_SE MADERA_INMODE_SE
271 MADERA_INMODE_SE MADERA_INMODE_SE
272 MADERA_INMODE_DIFF MADERA_INMODE_DIFF
274 cirrus,max-channels-clocked = <2 0 0>;
276 pinctrl-names = "default";
277 pinctrl-0 = <&pinsettings>;
279 pinsettings: pin-settings {