blob: 34f8fe4da9d4051e467db467c29a46aad5d386f4 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/sound/qcom,wcd9335.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm WCD9335 Audio Codec
8
9maintainers:
10 - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
11
12description:
13 Qualcomm WCD9335 Codec is a standalone Hi-Fi audio codec IC with in-built
14 Soundwire controller and interrupt mux. It supports both I2S/I2C and SLIMbus
15 audio interfaces.
16
17properties:
18 compatible:
19 const: slim217,1a0
20
21 reg:
22 maxItems: 1
23
24 clocks:
25 maxItems: 2
26
27 clock-names:
28 items:
29 - const: mclk
30 - const: slimbus
31
32 interrupts:
33 maxItems: 2
34
35 interrupt-names:
36 items:
37 - const: intr1
38 - const: intr2
39
40 interrupt-controller: true
41
42 '#interrupt-cells':
43 const: 1
44
45 reset-gpios:
46 maxItems: 1
47
48 slim-ifc-dev:
49 description: SLIM IFC device interface
50 $ref: /schemas/types.yaml#/definitions/phandle
51
52 '#sound-dai-cells':
53 const: 1
54
55 vdd-buck-supply:
56 description: 1.8V buck supply
57
58 vdd-buck-sido-supply:
59 description: 1.8V SIDO buck supply
60
61 vdd-io-supply:
62 description: 1.8V I/O supply
63
64 vdd-micbias-supply:
65 description: micbias supply
66
67 vdd-rx-supply:
68 description: 1.8V rx supply
69
70 vdd-tx-supply:
71 description: 1.8V tx supply
72
73 vdd-vbat-supply:
74 description: vbat supply
75
76required:
77 - compatible
78 - reg
79
80allOf:
81 - $ref: dai-common.yaml#
82 - if:
83 required:
84 - slim-ifc-dev
85 then:
86 required:
87 - clocks
88 - clock-names
89 - interrupts
90 - interrupt-names
91 - interrupt-controller
92 - '#interrupt-cells'
93 - reset-gpios
94 - slim-ifc-dev
95 - '#sound-dai-cells'
96 - vdd-buck-supply
97 - vdd-buck-sido-supply
98 - vdd-io-supply
99 - vdd-rx-supply
100 - vdd-tx-supply
101 else:
102 properties:
103 clocks: false
104 clock-names: false
105 interrupts: false
106 interrupt-names: false
107 interrupt-controller: false
108 '#interrupt-cells': false
109 reset-gpios: false
110 slim-ifc-dev: false
111 '#sound-dai-cells': false
112 vdd-buck-supply: false
113 vdd-buck-sido-supply: false
114 vdd-io-supply: false
115 vdd-micbias-supply: false
116 vdd-rx-supply: false
117 vdd-tx-supply: false
118 vdd-vbat-supply: false
119
120additionalProperties: false
121
122examples:
123 - |
124 #include <dt-bindings/clock/qcom,rpmcc.h>
125 #include <dt-bindings/gpio/gpio.h>
126 #include <dt-bindings/interrupt-controller/irq.h>
127
128 tasha_ifd: codec@0,0 {
129 compatible = "slim217,1a0";
130 reg = <0 0>;
131 };
132
133 codec@1,0 {
134 compatible = "slim217,1a0";
135 reg = <1 0>;
136
137 clock-names = "mclk", "slimbus";
138 clocks = <&div1_mclk>, <&rpmcc RPM_SMD_BB_CLK1>;
139
140 interrupt-parent = <&tlmm>;
141 interrupts = <54 IRQ_TYPE_LEVEL_HIGH>,
142 <53 IRQ_TYPE_LEVEL_HIGH>;
143 interrupt-names = "intr1", "intr2";
144 interrupt-controller;
145 #interrupt-cells = <1>;
146
147 reset-gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
148 slim-ifc-dev = <&tasha_ifd>;
149 #sound-dai-cells = <1>;
150
151 vdd-buck-supply = <&vreg_s4a_1p8>;
152 vdd-buck-sido-supply = <&vreg_s4a_1p8>;
153 vdd-tx-supply = <&vreg_s4a_1p8>;
154 vdd-rx-supply = <&vreg_s4a_1p8>;
155 vdd-io-supply = <&vreg_s4a_1p8>;
156 };