1# 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: Bindings for 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: true
32
33  clocks:
34    maxItems: 1
35
36  clock-names:
37    const: extclk
38
39  vdd-buck-supply:
40    description: A reference to the 1.8V buck supply
41
42  vdd-buck-sido-supply:
43    description: A reference to the 1.8V SIDO buck supply
44
45  vdd-rx-supply:
46    description: A reference to the 1.8V rx supply
47
48  vdd-tx-supply:
49    description: A reference to the 1.8V tx supply
50
51  vdd-vbat-supply:
52    description: A reference to the vbat supply
53
54  vdd-io-supply:
55    description: A reference to the 1.8V I/O supply
56
57  vdd-micbias-supply:
58    description: A reference to the micbias supply
59
60  qcom,micbias1-microvolt:
61    description: micbias1 voltage
62    minimum: 1800000
63    maximum: 2850000
64
65  qcom,micbias2-microvolt:
66    description: micbias2 voltage
67    minimum: 1800000
68    maximum: 2850000
69
70  qcom,micbias3-microvolt:
71    description: micbias3 voltage
72    minimum: 1800000
73    maximum: 2850000
74
75  qcom,micbias4-microvolt:
76    description: micbias4 voltage
77    minimum: 1800000
78    maximum: 2850000
79
80  qcom,hphl-jack-type-normally-closed:
81    description: Indicates that HPHL jack switch type is normally closed
82    type: boolean
83
84  qcom,ground-jack-type-normally-closed:
85    description: Indicates that Headset Ground switch type is normally closed
86    type: boolean
87
88  qcom,mbhc-headset-vthreshold-microvolt:
89    description: Voltage threshold value for headset detection
90    minimum: 0
91    maximum: 2850000
92
93  qcom,mbhc-headphone-vthreshold-microvolt:
94    description: Voltage threshold value for headphone detection
95    minimum: 0
96    maximum: 2850000
97
98  qcom,mbhc-buttons-vthreshold-microvolt:
99    description:
100      Array of 8 Voltage threshold values corresponding to headset
101      button0 - button7
102    minItems: 8
103    maxItems: 8
104
105  clock-output-names:
106    const: mclk
107
108  clock-frequency:
109    description: Clock frequency of output clk in Hz
110
111  interrupt-controller: true
112
113  '#interrupt-cells':
114    const: 1
115
116  '#clock-cells':
117    const: 0
118
119  '#sound-dai-cells':
120    const: 1
121
122  "#address-cells":
123    const: 1
124
125  "#size-cells":
126    const: 1
127
128  gpio@42:
129    type: object
130    $ref: /schemas/gpio/qcom,wcd934x-gpio.yaml#
131
132patternProperties:
133  "^.*@[0-9a-f]+$":
134    type: object
135    description: |
136      WCD934x subnode for each slave devices. Bindings of each subnodes
137      depends on the specific driver providing the functionality and
138      documented in their respective bindings.
139
140    properties:
141      reg:
142        maxItems: 1
143
144    required:
145      - reg
146
147required:
148  - compatible
149  - reg
150  - reset-gpios
151  - slim-ifc-dev
152  - interrupts
153  - interrupt-controller
154  - clock-frequency
155  - clock-output-names
156  - qcom,micbias1-microvolt
157  - qcom,micbias2-microvolt
158  - qcom,micbias3-microvolt
159  - qcom,micbias4-microvolt
160  - "#interrupt-cells"
161  - "#clock-cells"
162  - "#sound-dai-cells"
163  - "#address-cells"
164  - "#size-cells"
165
166additionalProperties: false
167
168examples:
169  - |
170    codec@1,0{
171        compatible = "slim217,250";
172        reg  = <1 0>;
173        reset-gpios = <&tlmm 64 0>;
174        slim-ifc-dev  = <&wcd9340_ifd>;
175        #sound-dai-cells = <1>;
176        interrupt-parent = <&tlmm>;
177        interrupts = <54 4>;
178        interrupt-controller;
179        #interrupt-cells = <1>;
180        #clock-cells = <0>;
181        clock-frequency = <9600000>;
182        clock-output-names = "mclk";
183        qcom,micbias1-microvolt = <1800000>;
184        qcom,micbias2-microvolt = <1800000>;
185        qcom,micbias3-microvolt = <1800000>;
186        qcom,micbias4-microvolt = <1800000>;
187        qcom,hphl-jack-type-normally-closed;
188        qcom,ground-jack-type-normally-closed;
189        qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;
190        qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
191        qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
192        clock-names = "extclk";
193        clocks = <&rpmhcc 2>;
194
195        #address-cells = <1>;
196        #size-cells = <1>;
197
198        gpio@42 {
199            compatible = "qcom,wcd9340-gpio";
200            reg = <0x42 0x2>;
201            gpio-controller;
202            #gpio-cells = <2>;
203        };
204    };
205
206...
207