blob: 8f045de028509efc0cf508a13ea2f3da61ebbf0c [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/sound/wlf,wm8994.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Wolfson WM1811/WM8994/WM8958 audio codecs
8
9maintainers:
10 - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
11 - patches@opensource.cirrus.com
12
13description: |
14 These devices support both I2C and SPI (configured with pin strapping on the
15 board).
16
17 Pins on the device (for linking into audio routes):
18 IN1LN, IN1LP, IN2LN, IN2LP:VXRN, IN1RN, IN1RP, IN2RN, IN2RP:VXRP, SPKOUTLP,
19 SPKOUTLN, SPKOUTRP, SPKOUTRN, HPOUT1L, HPOUT1R, HPOUT2P, HPOUT2N, LINEOUT1P,
20 LINEOUT1N, LINEOUT2P, LINEOUT2N.
21
22properties:
23 compatible:
24 enum:
25 - wlf,wm1811
26 - wlf,wm8994
27 - wlf,wm8958
28
29 reg:
30 maxItems: 1
31
32 clocks:
33 minItems: 1
34 maxItems: 2
35
36 clock-names:
37 minItems: 1
38 items:
39 - const: MCLK1
40 - const: MCLK2
41
42 gpio-controller: true
43
44 '#gpio-cells':
45 const: 2
46
47 interrupts:
48 maxItems: 1
49
50 interrupt-controller: true
51
52 '#interrupt-cells':
53 const: 2
54 description:
55 The first cell is the IRQ number. The second cell is the flags, encoded
56 as the trigger masks.
57
58 AVDD1-supply: true
59 AVDD2-supply: true
60 CPVDD-supply: true
61 DBVDD-supply: true
62 DBVDD1-supply: true
63 DBVDD2-supply: true
64 DBVDD3-supply: true
65 DCVDD-supply: true
66 LDO1VDD-supply: true
67 LDO2VDD-supply: true
68 SPKVDD1-supply: true
69 SPKVDD2-supply: true
70
71 '#sound-dai-cells':
72 const: 0
73
74 wlf,gpio-cfg:
75 $ref: /schemas/types.yaml#/definitions/uint32-array
76 maxItems: 11
77 description:
78 A list of GPIO configuration register values. If absent, no configuration
79 of these registers is performed. If any value is over 0xffff then the
80 register will be left as default. If present 11 values must be supplied.
81
82 wlf,micbias-cfg:
83 $ref: /schemas/types.yaml#/definitions/uint32-array
84 maxItems: 2
85 description:
86 Two MICBIAS register values for WM1811 or WM8958. If absent the register
87 defaults will be used.
88
89 wlf,ldo1ena-gpios:
90 maxItems: 1
91 description:
92 Control of LDO1ENA input to device.
93
94 wlf,ldo2ena-gpios:
95 maxItems: 1
96 description:
97 Control of LDO2ENA input to device.
98
99 wlf,lineout1-se:
100 type: boolean
101 description:
102 LINEOUT1 is in single ended mode.
103
104 wlf,lineout2-se:
105 type: boolean
106 description:
107 INEOUT2 is in single ended mode.
108
109 wlf,lineout1-feedback:
110 type: boolean
111 description:
112 LINEOUT1 has common mode feedback connected.
113
114 wlf,lineout2-feedback:
115 type: boolean
116 description:
117 LINEOUT2 has common mode feedback connected.
118
119 wlf,ldoena-always-driven:
120 type: boolean
121 description:
122 LDOENA is always driven.
123
124 wlf,spkmode-pu:
125 type: boolean
126 description:
127 Enable the internal pull-up resistor on the SPKMODE pin.
128
129 wlf,csnaddr-pd:
130 type: boolean
131 description:
132 Enable the internal pull-down resistor on the CS/ADDR pin.
133
134required:
135 - compatible
136 - reg
137 - AVDD2-supply
138 - CPVDD-supply
139 - SPKVDD1-supply
140 - SPKVDD2-supply
141
142allOf:
143 - $ref: dai-common.yaml#
144 - if:
145 properties:
146 compatible:
147 enum:
148 - wlf,wm1811
149 - wlf,wm8958
150 then:
151 properties:
152 DBVDD-supply: false
153 LDO2VDD-supply: false
154 required:
155 - DBVDD1-supply
156 - DBVDD2-supply
157 - DBVDD3-supply
158 else:
159 properties:
160 DBVDD1-supply: false
161 DBVDD2-supply: false
162 DBVDD3-supply: false
163 required:
164 - DBVDD-supply
165
166unevaluatedProperties: false
167
168examples:
169 - |
170 #include <dt-bindings/gpio/gpio.h>
171
172 i2c {
173 #address-cells = <1>;
174 #size-cells = <0>;
175
176 audio-codec@1a {
177 compatible = "wlf,wm1811";
178 reg = <0x1a>;
179 clocks = <&i2s0 0>;
180 clock-names = "MCLK1";
181
182 AVDD2-supply = <&main_dc_reg>;
183 CPVDD-supply = <&main_dc_reg>;
184 DBVDD1-supply = <&main_dc_reg>;
185 DBVDD2-supply = <&main_dc_reg>;
186 DBVDD3-supply = <&main_dc_reg>;
187 LDO1VDD-supply = <&main_dc_reg>;
188 SPKVDD1-supply = <&main_dc_reg>;
189 SPKVDD2-supply = <&main_dc_reg>;
190
191 wlf,ldo1ena-gpios = <&gpb0 0 GPIO_ACTIVE_HIGH>;
192 wlf,ldo2ena-gpios = <&gpb0 1 GPIO_ACTIVE_HIGH>;
193 };
194 };