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