Merge branch 'elan-i2c' into next
[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   clock-output-names:
81     const: mclk
82
83   clock-frequency:
84     description: Clock frequency of output clk in Hz
85
86   interrupt-controller: true
87
88   '#interrupt-cells':
89     const: 1
90
91   '#clock-cells':
92     const: 0
93
94   '#sound-dai-cells':
95     const: 1
96
97   "#address-cells":
98     const: 1
99
100   "#size-cells":
101     const: 1
102
103   gpio@42:
104     type: object
105     allOf:
106       - $ref: ../gpio/qcom,wcd934x-gpio.yaml#
107
108 patternProperties:
109   "^.*@[0-9a-f]+$":
110     type: object
111     description: |
112       WCD934x subnode for each slave devices. Bindings of each subnodes
113       depends on the specific driver providing the functionality and
114       documented in their respective bindings.
115
116     properties:
117       reg:
118         maxItems: 1
119
120     required:
121       - reg
122
123 required:
124   - compatible
125   - reg
126   - reset-gpios
127   - slim-ifc-dev
128   - interrupts
129   - interrupt-controller
130   - clock-frequency
131   - clock-output-names
132   - qcom,micbias1-microvolt
133   - qcom,micbias2-microvolt
134   - qcom,micbias3-microvolt
135   - qcom,micbias4-microvolt
136   - "#interrupt-cells"
137   - "#clock-cells"
138   - "#sound-dai-cells"
139   - "#address-cells"
140   - "#size-cells"
141
142 additionalProperties: false
143
144 examples:
145   - |
146     codec@1,0{
147         compatible = "slim217,250";
148         reg  = <1 0>;
149         reset-gpios = <&tlmm 64 0>;
150         slim-ifc-dev  = <&wcd9340_ifd>;
151         #sound-dai-cells = <1>;
152         interrupt-parent = <&tlmm>;
153         interrupts = <54 4>;
154         interrupt-controller;
155         #interrupt-cells = <1>;
156         #clock-cells = <0>;
157         clock-frequency = <9600000>;
158         clock-output-names = "mclk";
159         qcom,micbias1-microvolt = <1800000>;
160         qcom,micbias2-microvolt = <1800000>;
161         qcom,micbias3-microvolt = <1800000>;
162         qcom,micbias4-microvolt = <1800000>;
163         clock-names = "extclk";
164         clocks = <&rpmhcc 2>;
165
166         #address-cells = <1>;
167         #size-cells = <1>;
168
169         gpio@42 {
170             compatible = "qcom,wcd9340-gpio";
171             reg = <0x42 0x2>;
172             gpio-controller;
173             #gpio-cells = <2>;
174         };
175     };
176
177 ...