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