1 | // SPDX-License-Identifier: GPL-2.0-only |
2 | /* |
3 | * soc-apci-intel-adl-match.c - tables and support for ADL ACPI enumeration. |
4 | * |
5 | * Copyright (c) 2020, Intel Corporation. |
6 | */ |
7 | |
8 | #include <sound/soc-acpi.h> |
9 | #include <sound/soc-acpi-intel-match.h> |
10 | |
11 | static const struct snd_soc_acpi_codecs essx_83x6 = { |
12 | .num_codecs = 3, |
13 | .codecs = { "ESSX8316" , "ESSX8326" , "ESSX8336" }, |
14 | }; |
15 | |
16 | static const struct snd_soc_acpi_endpoint single_endpoint = { |
17 | .num = 0, |
18 | .aggregated = 0, |
19 | .group_position = 0, |
20 | .group_id = 0, |
21 | }; |
22 | |
23 | static const struct snd_soc_acpi_endpoint spk_l_endpoint = { |
24 | .num = 0, |
25 | .aggregated = 1, |
26 | .group_position = 0, |
27 | .group_id = 1, |
28 | }; |
29 | |
30 | static const struct snd_soc_acpi_endpoint spk_r_endpoint = { |
31 | .num = 0, |
32 | .aggregated = 1, |
33 | .group_position = 1, |
34 | .group_id = 1, |
35 | }; |
36 | |
37 | static const struct snd_soc_acpi_adr_device rt711_0_adr[] = { |
38 | { |
39 | .adr = 0x000020025D071100ull, |
40 | .num_endpoints = 1, |
41 | .endpoints = &single_endpoint, |
42 | .name_prefix = "rt711" |
43 | } |
44 | }; |
45 | |
46 | static const struct snd_soc_acpi_adr_device rt1308_1_group1_adr[] = { |
47 | { |
48 | .adr = 0x000120025D130800ull, |
49 | .num_endpoints = 1, |
50 | .endpoints = &spk_l_endpoint, |
51 | .name_prefix = "rt1308-1" |
52 | } |
53 | }; |
54 | |
55 | static const struct snd_soc_acpi_adr_device rt1308_2_group1_adr[] = { |
56 | { |
57 | .adr = 0x000220025D130800ull, |
58 | .num_endpoints = 1, |
59 | .endpoints = &spk_r_endpoint, |
60 | .name_prefix = "rt1308-2" |
61 | } |
62 | }; |
63 | |
64 | static const struct snd_soc_acpi_adr_device rt715_3_adr[] = { |
65 | { |
66 | .adr = 0x000320025D071500ull, |
67 | .num_endpoints = 1, |
68 | .endpoints = &single_endpoint, |
69 | .name_prefix = "rt715" |
70 | } |
71 | }; |
72 | |
73 | static const struct snd_soc_acpi_adr_device rt711_sdca_0_adr[] = { |
74 | { |
75 | .adr = 0x000030025D071101ull, |
76 | .num_endpoints = 1, |
77 | .endpoints = &single_endpoint, |
78 | .name_prefix = "rt711" |
79 | } |
80 | }; |
81 | |
82 | static const struct snd_soc_acpi_adr_device rt711_sdca_2_adr[] = { |
83 | { |
84 | .adr = 0x000230025D071101ull, |
85 | .num_endpoints = 1, |
86 | .endpoints = &single_endpoint, |
87 | .name_prefix = "rt711" |
88 | } |
89 | }; |
90 | |
91 | static const struct snd_soc_acpi_adr_device rt1316_1_group1_adr[] = { |
92 | { |
93 | .adr = 0x000131025D131601ull, /* unique ID is set for some reason */ |
94 | .num_endpoints = 1, |
95 | .endpoints = &spk_l_endpoint, |
96 | .name_prefix = "rt1316-1" |
97 | } |
98 | }; |
99 | |
100 | static const struct snd_soc_acpi_adr_device rt1316_2_group1_adr[] = { |
101 | { |
102 | .adr = 0x000230025D131601ull, |
103 | .num_endpoints = 1, |
104 | .endpoints = &spk_r_endpoint, |
105 | .name_prefix = "rt1316-2" |
106 | } |
107 | }; |
108 | |
109 | static const struct snd_soc_acpi_adr_device rt1316_3_group1_adr[] = { |
110 | { |
111 | .adr = 0x000330025D131601ull, |
112 | .num_endpoints = 1, |
113 | .endpoints = &spk_r_endpoint, |
114 | .name_prefix = "rt1316-2" |
115 | } |
116 | }; |
117 | |
118 | static const struct snd_soc_acpi_adr_device rt1316_0_group2_adr[] = { |
119 | { |
120 | .adr = 0x000031025D131601ull, |
121 | .num_endpoints = 1, |
122 | .endpoints = &spk_l_endpoint, |
123 | .name_prefix = "rt1316-1" |
124 | } |
125 | }; |
126 | |
127 | static const struct snd_soc_acpi_adr_device rt1316_1_group2_adr[] = { |
128 | { |
129 | .adr = 0x000130025D131601ull, |
130 | .num_endpoints = 1, |
131 | .endpoints = &spk_r_endpoint, |
132 | .name_prefix = "rt1316-2" |
133 | } |
134 | }; |
135 | |
136 | static const struct snd_soc_acpi_adr_device rt1316_1_single_adr[] = { |
137 | { |
138 | .adr = 0x000130025D131601ull, |
139 | .num_endpoints = 1, |
140 | .endpoints = &single_endpoint, |
141 | .name_prefix = "rt1316-1" |
142 | } |
143 | }; |
144 | |
145 | static const struct snd_soc_acpi_adr_device rt1316_2_single_adr[] = { |
146 | { |
147 | .adr = 0x000230025D131601ull, |
148 | .num_endpoints = 1, |
149 | .endpoints = &single_endpoint, |
150 | .name_prefix = "rt1316-1" |
151 | } |
152 | }; |
153 | |
154 | static const struct snd_soc_acpi_adr_device rt1316_3_single_adr[] = { |
155 | { |
156 | .adr = 0x000330025D131601ull, |
157 | .num_endpoints = 1, |
158 | .endpoints = &single_endpoint, |
159 | .name_prefix = "rt1316-1" |
160 | } |
161 | }; |
162 | |
163 | static const struct snd_soc_acpi_adr_device rt714_0_adr[] = { |
164 | { |
165 | .adr = 0x000030025D071401ull, |
166 | .num_endpoints = 1, |
167 | .endpoints = &single_endpoint, |
168 | .name_prefix = "rt714" |
169 | } |
170 | }; |
171 | |
172 | static const struct snd_soc_acpi_adr_device rt714_2_adr[] = { |
173 | { |
174 | .adr = 0x000230025D071401ull, |
175 | .num_endpoints = 1, |
176 | .endpoints = &single_endpoint, |
177 | .name_prefix = "rt714" |
178 | } |
179 | }; |
180 | |
181 | static const struct snd_soc_acpi_adr_device rt714_3_adr[] = { |
182 | { |
183 | .adr = 0x000330025D071401ull, |
184 | .num_endpoints = 1, |
185 | .endpoints = &single_endpoint, |
186 | .name_prefix = "rt714" |
187 | } |
188 | }; |
189 | |
190 | static const struct snd_soc_acpi_link_adr adl_default[] = { |
191 | { |
192 | .mask = BIT(0), |
193 | .num_adr = ARRAY_SIZE(rt711_0_adr), |
194 | .adr_d = rt711_0_adr, |
195 | }, |
196 | { |
197 | .mask = BIT(1), |
198 | .num_adr = ARRAY_SIZE(rt1308_1_group1_adr), |
199 | .adr_d = rt1308_1_group1_adr, |
200 | }, |
201 | { |
202 | .mask = BIT(2), |
203 | .num_adr = ARRAY_SIZE(rt1308_2_group1_adr), |
204 | .adr_d = rt1308_2_group1_adr, |
205 | }, |
206 | { |
207 | .mask = BIT(3), |
208 | .num_adr = ARRAY_SIZE(rt715_3_adr), |
209 | .adr_d = rt715_3_adr, |
210 | }, |
211 | {} |
212 | }; |
213 | |
214 | static const struct snd_soc_acpi_link_adr adl_sdca_default[] = { |
215 | { |
216 | .mask = BIT(0), |
217 | .num_adr = ARRAY_SIZE(rt711_sdca_0_adr), |
218 | .adr_d = rt711_sdca_0_adr, |
219 | }, |
220 | { |
221 | .mask = BIT(1), |
222 | .num_adr = ARRAY_SIZE(rt1316_1_group1_adr), |
223 | .adr_d = rt1316_1_group1_adr, |
224 | }, |
225 | { |
226 | .mask = BIT(2), |
227 | .num_adr = ARRAY_SIZE(rt1316_2_group1_adr), |
228 | .adr_d = rt1316_2_group1_adr, |
229 | }, |
230 | { |
231 | .mask = BIT(3), |
232 | .num_adr = ARRAY_SIZE(rt714_3_adr), |
233 | .adr_d = rt714_3_adr, |
234 | }, |
235 | {} |
236 | }; |
237 | |
238 | static const struct snd_soc_acpi_link_adr adl_sdca_3_in_1[] = { |
239 | { |
240 | .mask = BIT(0), |
241 | .num_adr = ARRAY_SIZE(rt711_sdca_0_adr), |
242 | .adr_d = rt711_sdca_0_adr, |
243 | }, |
244 | { |
245 | .mask = BIT(1), |
246 | .num_adr = ARRAY_SIZE(rt1316_1_group1_adr), |
247 | .adr_d = rt1316_1_group1_adr, |
248 | }, |
249 | { |
250 | .mask = BIT(2), |
251 | .num_adr = ARRAY_SIZE(rt714_2_adr), |
252 | .adr_d = rt714_2_adr, |
253 | }, |
254 | { |
255 | .mask = BIT(3), |
256 | .num_adr = ARRAY_SIZE(rt1316_3_group1_adr), |
257 | .adr_d = rt1316_3_group1_adr, |
258 | }, |
259 | {} |
260 | }; |
261 | |
262 | static const struct snd_soc_acpi_link_adr adl_sdw_rt711_link2_rt1316_link01_rt714_link3[] = { |
263 | { |
264 | .mask = BIT(2), |
265 | .num_adr = ARRAY_SIZE(rt711_sdca_2_adr), |
266 | .adr_d = rt711_sdca_2_adr, |
267 | }, |
268 | { |
269 | .mask = BIT(0), |
270 | .num_adr = ARRAY_SIZE(rt1316_0_group2_adr), |
271 | .adr_d = rt1316_0_group2_adr, |
272 | }, |
273 | { |
274 | .mask = BIT(1), |
275 | .num_adr = ARRAY_SIZE(rt1316_1_group2_adr), |
276 | .adr_d = rt1316_1_group2_adr, |
277 | }, |
278 | { |
279 | .mask = BIT(3), |
280 | .num_adr = ARRAY_SIZE(rt714_3_adr), |
281 | .adr_d = rt714_3_adr, |
282 | }, |
283 | {} |
284 | }; |
285 | |
286 | static const struct snd_soc_acpi_link_adr adl_sdw_rt711_link2_rt1316_link01[] = { |
287 | { |
288 | .mask = BIT(2), |
289 | .num_adr = ARRAY_SIZE(rt711_sdca_2_adr), |
290 | .adr_d = rt711_sdca_2_adr, |
291 | }, |
292 | { |
293 | .mask = BIT(0), |
294 | .num_adr = ARRAY_SIZE(rt1316_0_group2_adr), |
295 | .adr_d = rt1316_0_group2_adr, |
296 | }, |
297 | { |
298 | .mask = BIT(1), |
299 | .num_adr = ARRAY_SIZE(rt1316_1_group2_adr), |
300 | .adr_d = rt1316_1_group2_adr, |
301 | }, |
302 | {} |
303 | }; |
304 | |
305 | static const struct snd_soc_acpi_link_adr adl_sdw_rt1316_link12_rt714_link0[] = { |
306 | { |
307 | .mask = BIT(1), |
308 | .num_adr = ARRAY_SIZE(rt1316_1_group1_adr), |
309 | .adr_d = rt1316_1_group1_adr, |
310 | }, |
311 | { |
312 | .mask = BIT(2), |
313 | .num_adr = ARRAY_SIZE(rt1316_2_group1_adr), |
314 | .adr_d = rt1316_2_group1_adr, |
315 | }, |
316 | { |
317 | .mask = BIT(0), |
318 | .num_adr = ARRAY_SIZE(rt714_0_adr), |
319 | .adr_d = rt714_0_adr, |
320 | }, |
321 | {} |
322 | }; |
323 | |
324 | static const struct snd_soc_acpi_link_adr adl_sdw_rt1316_link1_rt714_link0[] = { |
325 | { |
326 | .mask = BIT(1), |
327 | .num_adr = ARRAY_SIZE(rt1316_1_single_adr), |
328 | .adr_d = rt1316_1_single_adr, |
329 | }, |
330 | { |
331 | .mask = BIT(0), |
332 | .num_adr = ARRAY_SIZE(rt714_0_adr), |
333 | .adr_d = rt714_0_adr, |
334 | }, |
335 | {} |
336 | }; |
337 | |
338 | static const struct snd_soc_acpi_link_adr adl_sdw_rt1316_link2_rt714_link3[] = { |
339 | { |
340 | .mask = BIT(2), |
341 | .num_adr = ARRAY_SIZE(rt1316_2_single_adr), |
342 | .adr_d = rt1316_2_single_adr, |
343 | }, |
344 | { |
345 | .mask = BIT(3), |
346 | .num_adr = ARRAY_SIZE(rt714_3_adr), |
347 | .adr_d = rt714_3_adr, |
348 | }, |
349 | {} |
350 | }; |
351 | |
352 | static const struct snd_soc_acpi_link_adr adl_sdw_rt1316_link2_rt714_link0[] = { |
353 | { |
354 | .mask = BIT(2), |
355 | .num_adr = ARRAY_SIZE(rt1316_2_single_adr), |
356 | .adr_d = rt1316_2_single_adr, |
357 | }, |
358 | { |
359 | .mask = BIT(0), |
360 | .num_adr = ARRAY_SIZE(rt714_0_adr), |
361 | .adr_d = rt714_0_adr, |
362 | }, |
363 | {} |
364 | }; |
365 | |
366 | static const struct snd_soc_acpi_link_adr adl_sdw_rt711_link0_rt1316_link3[] = { |
367 | { |
368 | .mask = BIT(0), |
369 | .num_adr = ARRAY_SIZE(rt711_sdca_0_adr), |
370 | .adr_d = rt711_sdca_0_adr, |
371 | }, |
372 | { |
373 | .mask = BIT(3), |
374 | .num_adr = ARRAY_SIZE(rt1316_3_single_adr), |
375 | .adr_d = rt1316_3_single_adr, |
376 | }, |
377 | {} |
378 | }; |
379 | |
380 | static const struct snd_soc_acpi_link_adr adl_sdw_rt711_link0_rt1316_link2[] = { |
381 | { |
382 | .mask = BIT(0), |
383 | .num_adr = ARRAY_SIZE(rt711_sdca_0_adr), |
384 | .adr_d = rt711_sdca_0_adr, |
385 | }, |
386 | { |
387 | .mask = BIT(2), |
388 | .num_adr = ARRAY_SIZE(rt1316_2_single_adr), |
389 | .adr_d = rt1316_2_single_adr, |
390 | }, |
391 | {} |
392 | }; |
393 | |
394 | static const struct snd_soc_acpi_adr_device mx8373_2_adr[] = { |
395 | { |
396 | .adr = 0x000223019F837300ull, |
397 | .num_endpoints = 1, |
398 | .endpoints = &spk_l_endpoint, |
399 | .name_prefix = "Left" |
400 | }, |
401 | { |
402 | .adr = 0x000227019F837300ull, |
403 | .num_endpoints = 1, |
404 | .endpoints = &spk_r_endpoint, |
405 | .name_prefix = "Right" |
406 | } |
407 | }; |
408 | |
409 | static const struct snd_soc_acpi_adr_device rt5682_0_adr[] = { |
410 | { |
411 | .adr = 0x000021025D568200ull, |
412 | .num_endpoints = 1, |
413 | .endpoints = &single_endpoint, |
414 | .name_prefix = "rt5682" |
415 | } |
416 | }; |
417 | |
418 | static const struct snd_soc_acpi_link_adr adl_rvp[] = { |
419 | { |
420 | .mask = BIT(0), |
421 | .num_adr = ARRAY_SIZE(rt711_0_adr), |
422 | .adr_d = rt711_0_adr, |
423 | }, |
424 | {} |
425 | }; |
426 | |
427 | static const struct snd_soc_acpi_link_adr adlps_rvp[] = { |
428 | { |
429 | .mask = BIT(0), |
430 | .num_adr = ARRAY_SIZE(rt711_sdca_0_adr), |
431 | .adr_d = rt711_sdca_0_adr, |
432 | }, |
433 | {} |
434 | }; |
435 | |
436 | static const struct snd_soc_acpi_link_adr adl_chromebook_base[] = { |
437 | { |
438 | .mask = BIT(0), |
439 | .num_adr = ARRAY_SIZE(rt5682_0_adr), |
440 | .adr_d = rt5682_0_adr, |
441 | }, |
442 | { |
443 | .mask = BIT(2), |
444 | .num_adr = ARRAY_SIZE(mx8373_2_adr), |
445 | .adr_d = mx8373_2_adr, |
446 | }, |
447 | {} |
448 | }; |
449 | |
450 | static const struct snd_soc_acpi_codecs adl_max98373_amp = { |
451 | .num_codecs = 1, |
452 | .codecs = {"MX98373" } |
453 | }; |
454 | |
455 | static const struct snd_soc_acpi_codecs adl_max98357a_amp = { |
456 | .num_codecs = 1, |
457 | .codecs = {"MX98357A" } |
458 | }; |
459 | |
460 | static const struct snd_soc_acpi_codecs adl_max98360a_amp = { |
461 | .num_codecs = 1, |
462 | .codecs = {"MX98360A" } |
463 | }; |
464 | |
465 | static const struct snd_soc_acpi_codecs adl_rt5682_rt5682s_hp = { |
466 | .num_codecs = 2, |
467 | .codecs = {"10EC5682" , "RTL5682" }, |
468 | }; |
469 | |
470 | static const struct snd_soc_acpi_codecs adl_rt1015p_amp = { |
471 | .num_codecs = 1, |
472 | .codecs = {"RTL1015" } |
473 | }; |
474 | |
475 | static const struct snd_soc_acpi_codecs adl_rt1019p_amp = { |
476 | .num_codecs = 1, |
477 | .codecs = {"RTL1019" } |
478 | }; |
479 | |
480 | static const struct snd_soc_acpi_codecs adl_max98390_amp = { |
481 | .num_codecs = 1, |
482 | .codecs = {"MX98390" } |
483 | }; |
484 | |
485 | static const struct snd_soc_acpi_codecs adl_lt6911_hdmi = { |
486 | .num_codecs = 1, |
487 | .codecs = {"INTC10B0" } |
488 | }; |
489 | |
490 | static const struct snd_soc_acpi_codecs adl_nau8318_amp = { |
491 | .num_codecs = 1, |
492 | .codecs = {"NVTN2012" } |
493 | }; |
494 | |
495 | static struct snd_soc_acpi_codecs adl_rt5650_amp = { |
496 | .num_codecs = 1, |
497 | .codecs = {"10EC5650" } |
498 | }; |
499 | |
500 | struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_machines[] = { |
501 | { |
502 | .comp_ids = &adl_rt5682_rt5682s_hp, |
503 | .drv_name = "adl_rt5682_def" , |
504 | .machine_quirk = snd_soc_acpi_codec_list, |
505 | .quirk_data = &adl_max98373_amp, |
506 | .sof_tplg_filename = "sof-adl-max98373-rt5682.tplg" , |
507 | }, |
508 | { |
509 | .comp_ids = &adl_rt5682_rt5682s_hp, |
510 | .drv_name = "adl_mx98357_rt5682" , |
511 | .machine_quirk = snd_soc_acpi_codec_list, |
512 | .quirk_data = &adl_max98357a_amp, |
513 | .sof_tplg_filename = "sof-adl-max98357a-rt5682.tplg" , |
514 | }, |
515 | { |
516 | .comp_ids = &adl_rt5682_rt5682s_hp, |
517 | .drv_name = "adl_rt5682_def" , |
518 | .machine_quirk = snd_soc_acpi_codec_list, |
519 | .quirk_data = &adl_max98360a_amp, |
520 | .sof_tplg_filename = "sof-adl-max98360a-rt5682.tplg" , |
521 | }, |
522 | { |
523 | .id = "10508825" , |
524 | .drv_name = "adl_rt1019p_8825" , |
525 | .machine_quirk = snd_soc_acpi_codec_list, |
526 | .quirk_data = &adl_rt1019p_amp, |
527 | .sof_tplg_filename = "sof-adl-rt1019-nau8825.tplg" , |
528 | }, |
529 | { |
530 | .id = "10508825" , |
531 | .drv_name = "adl_nau8825_def" , |
532 | .machine_quirk = snd_soc_acpi_codec_list, |
533 | .quirk_data = &adl_max98373_amp, |
534 | .sof_tplg_filename = "sof-adl-max98373-nau8825.tplg" , |
535 | }, |
536 | { |
537 | .id = "10508825" , |
538 | .drv_name = "adl_nau8825_def" , |
539 | .machine_quirk = snd_soc_acpi_codec_list, |
540 | .quirk_data = &adl_max98360a_amp, |
541 | .sof_tplg_filename = "sof-adl-max98360a-nau8825.tplg" , |
542 | }, |
543 | { |
544 | .comp_ids = &adl_rt5682_rt5682s_hp, |
545 | .drv_name = "adl_rt5682_def" , |
546 | .machine_quirk = snd_soc_acpi_codec_list, |
547 | .quirk_data = &adl_rt1019p_amp, |
548 | .sof_tplg_filename = "sof-adl-rt1019-rt5682.tplg" , |
549 | }, |
550 | { |
551 | .id = "10508825" , |
552 | .drv_name = "adl_nau8825_def" , |
553 | .machine_quirk = snd_soc_acpi_codec_list, |
554 | .quirk_data = &adl_rt1015p_amp, |
555 | .sof_tplg_filename = "sof-adl-rt1015-nau8825.tplg" , |
556 | }, |
557 | { |
558 | .id = "10508825" , |
559 | .drv_name = "adl_nau8825_def" , |
560 | .machine_quirk = snd_soc_acpi_codec_list, |
561 | .quirk_data = &adl_nau8318_amp, |
562 | .sof_tplg_filename = "sof-adl-nau8318-nau8825.tplg" , |
563 | }, |
564 | { |
565 | .id = "10508825" , |
566 | .drv_name = "sof_nau8825" , |
567 | .sof_tplg_filename = "sof-adl-nau8825.tplg" , |
568 | }, |
569 | { |
570 | .comp_ids = &adl_rt5682_rt5682s_hp, |
571 | .drv_name = "adl_rt5682_def" , |
572 | .machine_quirk = snd_soc_acpi_codec_list, |
573 | .quirk_data = &adl_max98390_amp, |
574 | .sof_tplg_filename = "sof-adl-max98390-rt5682.tplg" , |
575 | }, |
576 | { |
577 | .comp_ids = &adl_rt5682_rt5682s_hp, |
578 | .drv_name = "adl_rt5682_c1_h02" , |
579 | .machine_quirk = snd_soc_acpi_codec_list, |
580 | .quirk_data = &adl_lt6911_hdmi, |
581 | .sof_tplg_filename = "sof-adl-rt5682-ssp1-hdmi-ssp02.tplg" , |
582 | }, |
583 | { |
584 | .comp_ids = &adl_rt5682_rt5682s_hp, |
585 | .drv_name = "adl_rt5682_def" , |
586 | .sof_tplg_filename = "sof-adl-rt5682.tplg" , |
587 | }, |
588 | { |
589 | .id = "10134242" , |
590 | .drv_name = "adl_mx98360a_cs4242" , |
591 | .machine_quirk = snd_soc_acpi_codec_list, |
592 | .quirk_data = &adl_max98360a_amp, |
593 | .sof_tplg_filename = "sof-adl-max98360a-cs42l42.tplg" , |
594 | }, |
595 | { |
596 | .comp_ids = &essx_83x6, |
597 | .drv_name = "adl_es83x6_c1_h02" , |
598 | .machine_quirk = snd_soc_acpi_codec_list, |
599 | .quirk_data = &adl_lt6911_hdmi, |
600 | .sof_tplg_filename = "sof-adl-es83x6-ssp1-hdmi-ssp02.tplg" , |
601 | }, |
602 | { |
603 | .comp_ids = &essx_83x6, |
604 | .drv_name = "sof-essx8336" , |
605 | .sof_tplg_filename = "sof-adl-es8336" , /* the tplg suffix is added at run time */ |
606 | .tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER | |
607 | SND_SOC_ACPI_TPLG_INTEL_SSP_MSB | |
608 | SND_SOC_ACPI_TPLG_INTEL_DMIC_NUMBER, |
609 | }, |
610 | { |
611 | .id = "10EC5650" , |
612 | .drv_name = "adl_rt5682_def" , |
613 | .machine_quirk = snd_soc_acpi_codec_list, |
614 | .quirk_data = &adl_rt5650_amp, |
615 | .sof_tplg_filename = "sof-adl-rt5650.tplg" , |
616 | }, |
617 | { |
618 | .id = "DLGS7219" , |
619 | .drv_name = "adl_mx98360_da7219" , |
620 | .machine_quirk = snd_soc_acpi_codec_list, |
621 | .quirk_data = &adl_max98360a_amp, |
622 | .sof_tplg_filename = "sof-adl-max98360a-da7219.tplg" , |
623 | }, |
624 | /* place amp-only boards in the end of table */ |
625 | { |
626 | .id = "CSC3541" , |
627 | .drv_name = "adl_cs35l41" , |
628 | .sof_tplg_filename = "sof-adl-cs35l41.tplg" , |
629 | }, |
630 | { |
631 | .id = "INTC10B0" , |
632 | .drv_name = "adl_lt6911_hdmi_ssp" , |
633 | .sof_tplg_filename = "sof-adl-nocodec-hdmi-ssp02.tplg" |
634 | }, |
635 | {}, |
636 | }; |
637 | EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_adl_machines); |
638 | |
639 | /* this table is used when there is no I2S codec present */ |
640 | struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_sdw_machines[] = { |
641 | { |
642 | .link_mask = 0xF, /* 4 active links required */ |
643 | .links = adl_default, |
644 | .drv_name = "sof_sdw" , |
645 | .sof_tplg_filename = "sof-adl-rt711-l0-rt1308-l12-rt715-l3.tplg" , |
646 | }, |
647 | { |
648 | .link_mask = 0xF, /* 4 active links required */ |
649 | .links = adl_sdca_default, |
650 | .drv_name = "sof_sdw" , |
651 | .sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l12-rt714-l3.tplg" , |
652 | }, |
653 | { |
654 | .link_mask = 0xF, /* 4 active links required */ |
655 | .links = adl_sdca_3_in_1, |
656 | .drv_name = "sof_sdw" , |
657 | .sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l13-rt714-l2.tplg" , |
658 | }, |
659 | { |
660 | .link_mask = 0xF, /* 4 active links required */ |
661 | .links = adl_sdw_rt711_link2_rt1316_link01_rt714_link3, |
662 | .drv_name = "sof_sdw" , |
663 | .sof_tplg_filename = "sof-adl-rt711-l2-rt1316-l01-rt714-l3.tplg" , |
664 | }, |
665 | { |
666 | .link_mask = 0x7, /* rt1316 on link0 and link1 & rt711 on link2*/ |
667 | .links = adl_sdw_rt711_link2_rt1316_link01, |
668 | .drv_name = "sof_sdw" , |
669 | .sof_tplg_filename = "sof-adl-rt711-l2-rt1316-l01.tplg" , |
670 | }, |
671 | { |
672 | .link_mask = 0xC, /* rt1316 on link2 & rt714 on link3 */ |
673 | .links = adl_sdw_rt1316_link2_rt714_link3, |
674 | .drv_name = "sof_sdw" , |
675 | .sof_tplg_filename = "sof-adl-rt1316-l2-mono-rt714-l3.tplg" , |
676 | }, |
677 | { |
678 | .link_mask = 0x7, /* rt714 on link0 & two rt1316s on link1 and link2 */ |
679 | .links = adl_sdw_rt1316_link12_rt714_link0, |
680 | .drv_name = "sof_sdw" , |
681 | .sof_tplg_filename = "sof-adl-rt1316-l12-rt714-l0.tplg" , |
682 | }, |
683 | { |
684 | .link_mask = 0x3, /* rt1316 on link1 & rt714 on link0 */ |
685 | .links = adl_sdw_rt1316_link1_rt714_link0, |
686 | .drv_name = "sof_sdw" , |
687 | .sof_tplg_filename = "sof-adl-rt1316-l1-mono-rt714-l0.tplg" , |
688 | }, |
689 | { |
690 | .link_mask = 0x5, /* 2 active links required */ |
691 | .links = adl_sdw_rt1316_link2_rt714_link0, |
692 | .drv_name = "sof_sdw" , |
693 | .sof_tplg_filename = "sof-adl-rt1316-l2-mono-rt714-l0.tplg" , |
694 | }, |
695 | { |
696 | .link_mask = 0x9, /* 2 active links required */ |
697 | .links = adl_sdw_rt711_link0_rt1316_link3, |
698 | .drv_name = "sof_sdw" , |
699 | .sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l3.tplg" , |
700 | }, |
701 | { |
702 | .link_mask = 0x5, /* 2 active links required */ |
703 | .links = adl_sdw_rt711_link0_rt1316_link2, |
704 | .drv_name = "sof_sdw" , |
705 | .sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l2.tplg" , |
706 | }, |
707 | { |
708 | .link_mask = 0x1, /* link0 required */ |
709 | .links = adl_rvp, |
710 | .drv_name = "sof_sdw" , |
711 | .sof_tplg_filename = "sof-adl-rt711.tplg" , |
712 | }, |
713 | { |
714 | .link_mask = 0x1, /* link0 required */ |
715 | .links = adlps_rvp, |
716 | .drv_name = "sof_sdw" , |
717 | .sof_tplg_filename = "sof-adl-rt711.tplg" , |
718 | }, |
719 | { |
720 | .link_mask = 0x5, /* rt5682 on link0 & 2xmax98373 on link 2 */ |
721 | .links = adl_chromebook_base, |
722 | .drv_name = "sof_sdw" , |
723 | .sof_tplg_filename = "sof-adl-sdw-max98373-rt5682.tplg" , |
724 | }, |
725 | {}, |
726 | }; |
727 | EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_adl_sdw_machines); |
728 | |