Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / sound / qcom,wcd934x.yaml
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
7 title: Bindings for Qualcomm WCD9340/WCD9341 Audio Codec
8
9 maintainers:
10   - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
11
12 description: |
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
17 properties:
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: ../gpio/qcom,wcd934x-gpio.yaml#
131
132 patternProperties:
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
147 required:
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
166 additionalProperties: false
167
168 examples:
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 ...