blob: a65b1d1d5fdd9c50de429998f0d23c2fbbffa369 [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/qcom,wcd934x.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm WCD9340/WCD9341 Audio Codec
8
9maintainers:
10 - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
11
12description: |
13 Qualcomm WCD9340/WCD9341 Codec is a standalone Hi-Fi audio codec IC.
14 It has in-built Soundwire controller, pin controller, interrupt mux and
15 supports both I2S/I2C and SLIMbus audio interfaces.
16
17properties:
18 compatible:
19 const: slim217,250
20
21 reg:
22 maxItems: 1
23
24 interrupts:
25 maxItems: 1
26
27 reset-gpios:
28 description: GPIO spec for reset line to use
29 maxItems: 1
30
31 slim-ifc-dev:
32 description: IFC device interface
33 $ref: /schemas/types.yaml#/definitions/phandle
34
35 clocks:
36 maxItems: 1
37
38 clock-names:
39 const: extclk
40
41 vdd-buck-supply:
42 description: A reference to the 1.8V buck supply
43
44 vdd-buck-sido-supply:
45 description: A reference to the 1.8V SIDO buck supply
46
47 vdd-rx-supply:
48 description: A reference to the 1.8V rx supply
49
50 vdd-tx-supply:
51 description: A reference to the 1.8V tx supply
52
53 vdd-vbat-supply:
54 description: A reference to the vbat supply
55
56 vdd-io-supply:
57 description: A reference to the 1.8V I/O supply
58
59 vdd-micbias-supply:
60 description: A reference to the micbias supply
61
62 qcom,micbias1-microvolt:
63 description: micbias1 voltage
64 minimum: 1800000
65 maximum: 2850000
66
67 qcom,micbias2-microvolt:
68 description: micbias2 voltage
69 minimum: 1800000
70 maximum: 2850000
71
72 qcom,micbias3-microvolt:
73 description: micbias3 voltage
74 minimum: 1800000
75 maximum: 2850000
76
77 qcom,micbias4-microvolt:
78 description: micbias4 voltage
79 minimum: 1800000
80 maximum: 2850000
81
82 qcom,hphl-jack-type-normally-closed:
83 description: Indicates that HPHL jack switch type is normally closed
84 type: boolean
85
86 qcom,ground-jack-type-normally-closed:
87 description: Indicates that Headset Ground switch type is normally closed
88 type: boolean
89
90 qcom,mbhc-headset-vthreshold-microvolt:
91 description: Voltage threshold value for headset detection
92 minimum: 0
93 maximum: 2850000
94
95 qcom,mbhc-headphone-vthreshold-microvolt:
96 description: Voltage threshold value for headphone detection
97 minimum: 0
98 maximum: 2850000
99
100 qcom,mbhc-buttons-vthreshold-microvolt:
101 description:
102 Array of 8 Voltage threshold values corresponding to headset
103 button0 - button7
104 minItems: 8
105 maxItems: 8
106
107 clock-output-names:
108 const: mclk
109
110 clock-frequency:
111 description: Clock frequency of output clk in Hz
112
113 interrupt-controller: true
114
115 '#interrupt-cells':
116 const: 1
117
118 '#clock-cells':
119 const: 0
120
121 '#sound-dai-cells':
122 const: 1
123
124 "#address-cells":
125 const: 1
126
127 "#size-cells":
128 const: 1
129
130 gpio@42:
131 type: object
132 $ref: /schemas/gpio/qcom,wcd934x-gpio.yaml#
133
134patternProperties:
135 "^.*@[0-9a-f]+$":
136 type: object
137 additionalProperties: true
138 description: |
139 WCD934x subnode for each slave devices. Bindings of each subnodes
140 depends on the specific driver providing the functionality and
141 documented in their respective bindings.
142
143 properties:
144 reg:
145 maxItems: 1
146
147 required:
148 - reg
149
150required:
151 - compatible
152 - reg
153
154allOf:
155 - $ref: dai-common.yaml#
156 - if:
157 required:
158 - slim-ifc-dev
159 then:
160 required:
161 - reset-gpios
162 - slim-ifc-dev
163 - interrupt-controller
164 - clock-frequency
165 - clock-output-names
166 - qcom,micbias1-microvolt
167 - qcom,micbias2-microvolt
168 - qcom,micbias3-microvolt
169 - qcom,micbias4-microvolt
170 - "#interrupt-cells"
171 - "#clock-cells"
172 - "#sound-dai-cells"
173 - "#address-cells"
174 - "#size-cells"
175 oneOf:
176 - required:
177 - interrupts-extended
178 - required:
179 - interrupts
180 else:
181 properties:
182 reset-gpios: false
183 slim-ifc-dev: false
184 interrupts: false
185 interrupt-controller: false
186 clock-frequency: false
187 clock-output-names: false
188 qcom,micbias1-microvolt: false
189 qcom,micbias2-microvolt: false
190 qcom,micbias3-microvolt: false
191 qcom,micbias4-microvolt: false
192 "#interrupt-cells": false
193 "#clock-cells": false
194 "#sound-dai-cells": false
195 "#address-cells": false
196 "#size-cells": false
197
198additionalProperties: false
199
200examples:
201 - |
Tom Rini6b642ac2024-10-01 12:20:28 -0600202 #include <dt-bindings/gpio/gpio.h>
Tom Rini53633a82024-02-29 12:33:36 -0500203 codec@1,0{
204 compatible = "slim217,250";
Tom Rini93743d22024-04-01 09:08:13 -0400205 reg = <1 0>;
Tom Rini6b642ac2024-10-01 12:20:28 -0600206 reset-gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
Tom Rini93743d22024-04-01 09:08:13 -0400207 slim-ifc-dev = <&wcd9340_ifd>;
Tom Rini53633a82024-02-29 12:33:36 -0500208 #sound-dai-cells = <1>;
209 interrupt-parent = <&tlmm>;
210 interrupts = <54 4>;
211 interrupt-controller;
212 #interrupt-cells = <1>;
213 #clock-cells = <0>;
214 clock-frequency = <9600000>;
215 clock-output-names = "mclk";
216 qcom,micbias1-microvolt = <1800000>;
217 qcom,micbias2-microvolt = <1800000>;
218 qcom,micbias3-microvolt = <1800000>;
219 qcom,micbias4-microvolt = <1800000>;
220 qcom,hphl-jack-type-normally-closed;
221 qcom,ground-jack-type-normally-closed;
222 qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;
223 qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
224 qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
225 clock-names = "extclk";
226 clocks = <&rpmhcc 2>;
227
228 #address-cells = <1>;
229 #size-cells = <1>;
230
231 gpio@42 {
232 compatible = "qcom,wcd9340-gpio";
233 reg = <0x42 0x2>;
234 gpio-controller;
235 #gpio-cells = <2>;
236 };
237 };
238
239...