xref: /freebsd/sys/contrib/device-tree/Bindings/sound/qcom,wcd934x.yaml (revision 6be3386466ab79a84b48429ae66244f21526d3df)
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  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    $ref: ../gpio/qcom,wcd934x-gpio.yaml#
106
107patternProperties:
108  "^.*@[0-9a-f]+$":
109    type: object
110    description: |
111      WCD934x subnode for each slave devices. Bindings of each subnodes
112      depends on the specific driver providing the functionality and
113      documented in their respective bindings.
114
115    properties:
116      reg:
117        maxItems: 1
118
119    required:
120      - reg
121
122required:
123  - compatible
124  - reg
125  - reset-gpios
126  - slim-ifc-dev
127  - interrupts
128  - interrupt-controller
129  - clock-frequency
130  - clock-output-names
131  - qcom,micbias1-microvolt
132  - qcom,micbias2-microvolt
133  - qcom,micbias3-microvolt
134  - qcom,micbias4-microvolt
135  - "#interrupt-cells"
136  - "#clock-cells"
137  - "#sound-dai-cells"
138  - "#address-cells"
139  - "#size-cells"
140
141additionalProperties: false
142
143examples:
144  - |
145    codec@1,0{
146        compatible = "slim217,250";
147        reg  = <1 0>;
148        reset-gpios = <&tlmm 64 0>;
149        slim-ifc-dev  = <&wcd9340_ifd>;
150        #sound-dai-cells = <1>;
151        interrupt-parent = <&tlmm>;
152        interrupts = <54 4>;
153        interrupt-controller;
154        #interrupt-cells = <1>;
155        #clock-cells = <0>;
156        clock-frequency = <9600000>;
157        clock-output-names = "mclk";
158        qcom,micbias1-microvolt = <1800000>;
159        qcom,micbias2-microvolt = <1800000>;
160        qcom,micbias3-microvolt = <1800000>;
161        qcom,micbias4-microvolt = <1800000>;
162        clock-names = "extclk";
163        clocks = <&rpmhcc 2>;
164
165        #address-cells = <1>;
166        #size-cells = <1>;
167
168        gpio@42 {
169            compatible = "qcom,wcd9340-gpio";
170            reg = <0x42 0x2>;
171            gpio-controller;
172            #gpio-cells = <2>;
173        };
174    };
175
176...
177