blob: c9076dcd44c1168ea76212a5a420b3ac88380c6c [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,sm8250.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm Technologies Inc. ASoC sound card drivers
8
9maintainers:
10 - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
11
12description:
13 This bindings describes Qualcomm SoC based sound cards
14 which uses LPASS internal codec for audio.
15
16properties:
17 compatible:
18 oneOf:
19 - items:
20 - enum:
21 - lenovo,yoga-c630-sndcard
22 - qcom,db845c-sndcard
23 - const: qcom,sdm845-sndcard
Tom Rini93743d22024-04-01 09:08:13 -040024 - items:
25 - enum:
26 - qcom,sm8550-sndcard
27 - qcom,sm8650-sndcard
28 - const: qcom,sm8450-sndcard
Tom Rini53633a82024-02-29 12:33:36 -050029 - enum:
30 - qcom,apq8016-sbc-sndcard
Tom Rini6b642ac2024-10-01 12:20:28 -060031 - qcom,apq8096-sndcard
Tom Rini53633a82024-02-29 12:33:36 -050032 - qcom,msm8916-qdsp6-sndcard
Tom Rini762f85b2024-07-20 11:15:10 -060033 - qcom,qcm6490-idp-sndcard
34 - qcom,qcs6490-rb3gen2-sndcard
Tom Rini53633a82024-02-29 12:33:36 -050035 - qcom,qrb5165-rb5-sndcard
36 - qcom,sc7180-qdsp6-sndcard
37 - qcom,sc8280xp-sndcard
38 - qcom,sdm845-sndcard
39 - qcom,sm8250-sndcard
40 - qcom,sm8450-sndcard
Tom Rini93743d22024-04-01 09:08:13 -040041 - qcom,x1e80100-sndcard
Tom Rini53633a82024-02-29 12:33:36 -050042
43 audio-routing:
44 $ref: /schemas/types.yaml#/definitions/non-unique-string-array
45 description:
46 A list of the connections between audio components. Each entry is a
47 pair of strings, the first being the connection's sink, the second
48 being the connection's source. Valid names could be power supplies,
49 MicBias of codec and the jacks on the board.
50
51 aux-devs:
52 $ref: /schemas/types.yaml#/definitions/phandle-array
53 description: |
54 List of phandles pointing to auxiliary devices, such
55 as amplifiers, to be added to the sound card.
56
57 model:
58 $ref: /schemas/types.yaml#/definitions/string
59 description: User visible long sound card name
60
61 pin-switches:
62 description: List of widget names for which pin switches should be created.
63 $ref: /schemas/types.yaml#/definitions/string-array
64
65 widgets:
66 description: User specified audio sound widgets.
67 $ref: /schemas/types.yaml#/definitions/non-unique-string-array
68
69 # Only valid for some compatibles (see allOf if below)
70 reg: true
71 reg-names: true
72
73patternProperties:
74 ".*-dai-link$":
75 description:
76 Each subnode represents a dai link. Subnodes of each dai links would be
77 cpu/codec dais.
78
79 type: object
80
81 properties:
82 link-name:
83 description: Indicates dai-link name and PCM stream name.
84 $ref: /schemas/types.yaml#/definitions/string
85 maxItems: 1
86
87 cpu:
88 description: Holds subnode which indicates cpu dai.
89 type: object
90 additionalProperties: false
91
92 properties:
93 sound-dai:
94 maxItems: 1
95
96 platform:
97 description: Holds subnode which indicates platform dai.
98 type: object
99 additionalProperties: false
100
101 properties:
102 sound-dai:
103 maxItems: 1
104
105 codec:
106 description: Holds subnode which indicates codec dai.
107 type: object
108 additionalProperties: false
109
110 properties:
111 sound-dai:
112 minItems: 1
Tom Rini6bb92fc2024-05-20 09:54:58 -0600113 maxItems: 8
Tom Rini53633a82024-02-29 12:33:36 -0500114
115 required:
116 - link-name
117 - cpu
118
119 additionalProperties: false
120
121required:
122 - compatible
123 - model
124
125allOf:
126 - if:
127 properties:
128 compatible:
129 contains:
130 enum:
131 - qcom,apq8016-sbc-sndcard
132 - qcom,msm8916-qdsp6-sndcard
133 then:
134 properties:
135 reg:
136 items:
137 - description: Microphone I/O mux register address
138 - description: Speaker I/O mux register address
139 reg-names:
140 items:
141 - const: mic-iomux
142 - const: spkr-iomux
143 required:
144 - compatible
145 - model
146 - reg
147 - reg-names
148 else:
149 properties:
150 reg: false
151 reg-names: false
152
153additionalProperties: false
154
155examples:
156
157 - |
158 #include <dt-bindings/sound/qcom,q6afe.h>
159 #include <dt-bindings/sound/qcom,q6asm.h>
160 sound {
161 compatible = "qcom,qrb5165-rb5-sndcard";
162 model = "Qualcomm-qrb5165-RB5-WSA8815-Speakers-DMIC0";
163 audio-routing = "SpkrLeft IN", "WSA_SPK1 OUT",
164 "SpkrRight IN", "WSA_SPK2 OUT",
165 "VA DMIC0", "vdd-micb",
166 "VA DMIC1", "vdd-micb";
167
168 mm1-dai-link {
169 link-name = "MultiMedia0";
170 cpu {
171 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
172 };
173 };
174
175 mm2-dai-link {
176 link-name = "MultiMedia2";
177 cpu {
178 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>;
179 };
180 };
181
182 mm3-dai-link {
183 link-name = "MultiMedia3";
184 cpu {
185 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>;
186 };
187 };
188
189 hdmi-dai-link {
190 link-name = "HDMI Playback";
191 cpu {
192 sound-dai = <&q6afedai TERTIARY_MI2S_RX>;
193 };
194
195 platform {
196 sound-dai = <&q6routing>;
197 };
198
199 codec {
200 sound-dai = <&lt9611_codec 0>;
201 };
202 };
203
204 wsa-dai-link {
205 link-name = "WSA Playback";
206 cpu {
207 sound-dai = <&q6afedai WSA_CODEC_DMA_RX_0>;
208 };
209
210 platform {
211 sound-dai = <&q6routing>;
212 };
213
214 codec {
215 sound-dai = <&left_spkr>, <&right_spkr>, <&swr0 0>, <&wsamacro>;
216 };
217 };
218
219 va-dai-link {
220 link-name = "VA Capture";
221 cpu {
222 sound-dai = <&q6afedai VA_CODEC_DMA_TX_0>;
223 };
224
225 platform {
226 sound-dai = <&q6routing>;
227 };
228
229 codec {
230 sound-dai = <&vamacro 0>;
231 };
232 };
233 };
234
235 - |
236 #include <dt-bindings/sound/qcom,lpass.h>
237 sound@7702000 {
238 compatible = "qcom,apq8016-sbc-sndcard";
239 reg = <0x07702000 0x4>, <0x07702004 0x4>;
240 reg-names = "mic-iomux", "spkr-iomux";
241
242 model = "DB410c";
243 audio-routing =
244 "AMIC2", "MIC BIAS Internal2",
245 "AMIC3", "MIC BIAS External1";
246
247 pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act>;
248 pinctrl-1 = <&cdc_pdm_lines_sus &ext_sec_tlmm_lines_sus &ext_mclk_tlmm_lines_sus>;
249 pinctrl-names = "default", "sleep";
250
251 quaternary-dai-link {
252 link-name = "ADV7533";
253 cpu {
254 sound-dai = <&lpass MI2S_QUATERNARY>;
255 };
256 codec {
257 sound-dai = <&adv_bridge 0>;
258 };
259 };
260
261 primary-dai-link {
262 link-name = "WCD";
263 cpu {
264 sound-dai = <&lpass MI2S_PRIMARY>;
265 };
266 codec {
267 sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
268 };
269 };
270
271 tertiary-dai-link {
272 link-name = "WCD-Capture";
273 cpu {
274 sound-dai = <&lpass MI2S_TERTIARY>;
275 };
276 codec {
277 sound-dai = <&lpass_codec 1>, <&wcd_codec 1>;
278 };
279 };
280 };
281
282 - |
283 #include <dt-bindings/sound/qcom,q6afe.h>
284 #include <dt-bindings/sound/qcom,q6asm.h>
285 sound@7702000 {
286 compatible = "qcom,msm8916-qdsp6-sndcard";
287 reg = <0x07702000 0x4>, <0x07702004 0x4>;
288 reg-names = "mic-iomux", "spkr-iomux";
289
290 model = "msm8916";
291 widgets =
292 "Speaker", "Speaker",
293 "Headphone", "Headphones";
294 pin-switches = "Speaker";
295 audio-routing =
296 "Speaker", "Speaker Amp OUT",
297 "Speaker Amp IN", "HPH_R",
298 "Headphones", "HPH_L",
299 "Headphones", "HPH_R",
300 "AMIC1", "MIC BIAS Internal1",
301 "AMIC2", "MIC BIAS Internal2",
302 "AMIC3", "MIC BIAS Internal3";
303 aux-devs = <&speaker_amp>;
304
305 pinctrl-names = "default", "sleep";
306 pinctrl-0 = <&cdc_pdm_lines_act>;
307 pinctrl-1 = <&cdc_pdm_lines_sus>;
308
309 mm1-dai-link {
310 link-name = "MultiMedia1";
311 cpu {
312 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
313 };
314 };
315
316 primary-dai-link {
317 link-name = "Primary MI2S";
318 cpu {
319 sound-dai = <&q6afedai PRIMARY_MI2S_RX>;
320 };
321 platform {
322 sound-dai = <&q6routing>;
323 };
324 codec {
325 sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
326 };
327 };
328 };