1 | // SPDX-License-Identifier: GPL-2.0-only |
2 | /* |
3 | * soc-acpi-intel-mtl-match.c - tables and support for MTL ACPI enumeration. |
4 | * |
5 | * Copyright (c) 2022, Intel Corporation. |
6 | * |
7 | */ |
8 | |
9 | #include <sound/soc-acpi.h> |
10 | #include <sound/soc-acpi-intel-match.h> |
11 | #include "soc-acpi-intel-sdw-mockup-match.h" |
12 | |
13 | static const struct snd_soc_acpi_codecs mtl_max98357a_amp = { |
14 | .num_codecs = 1, |
15 | .codecs = {"MX98357A" } |
16 | }; |
17 | |
18 | static const struct snd_soc_acpi_codecs mtl_max98360a_amp = { |
19 | .num_codecs = 1, |
20 | .codecs = {"MX98360A" } |
21 | }; |
22 | |
23 | static const struct snd_soc_acpi_codecs mtl_rt1019p_amp = { |
24 | .num_codecs = 1, |
25 | .codecs = {"RTL1019" } |
26 | }; |
27 | |
28 | static const struct snd_soc_acpi_codecs mtl_rt5682_rt5682s_hp = { |
29 | .num_codecs = 2, |
30 | .codecs = {"10EC5682" , "RTL5682" }, |
31 | }; |
32 | |
33 | static const struct snd_soc_acpi_codecs mtl_essx_83x6 = { |
34 | .num_codecs = 3, |
35 | .codecs = { "ESSX8316" , "ESSX8326" , "ESSX8336" }, |
36 | }; |
37 | |
38 | static const struct snd_soc_acpi_codecs mtl_lt6911_hdmi = { |
39 | .num_codecs = 1, |
40 | .codecs = {"INTC10B0" } |
41 | }; |
42 | |
43 | static const struct snd_soc_acpi_codecs mtl_rt5650_amp = { |
44 | .num_codecs = 1, |
45 | .codecs = {"10EC5650" } |
46 | }; |
47 | |
48 | struct snd_soc_acpi_mach snd_soc_acpi_intel_mtl_machines[] = { |
49 | { |
50 | .comp_ids = &mtl_rt5682_rt5682s_hp, |
51 | .drv_name = "mtl_mx98357_rt5682" , |
52 | .machine_quirk = snd_soc_acpi_codec_list, |
53 | .quirk_data = &mtl_max98357a_amp, |
54 | .sof_tplg_filename = "sof-mtl-max98357a-rt5682.tplg" , |
55 | }, |
56 | { |
57 | .comp_ids = &mtl_rt5682_rt5682s_hp, |
58 | .drv_name = "mtl_mx98360_rt5682" , |
59 | .machine_quirk = snd_soc_acpi_codec_list, |
60 | .quirk_data = &mtl_max98360a_amp, |
61 | .sof_tplg_filename = "sof-mtl-max98360a-rt5682.tplg" , |
62 | }, |
63 | { |
64 | .comp_ids = &mtl_rt5682_rt5682s_hp, |
65 | .drv_name = "mtl_rt5682_def" , |
66 | .machine_quirk = snd_soc_acpi_codec_list, |
67 | .quirk_data = &mtl_rt1019p_amp, |
68 | .sof_tplg_filename = "sof-mtl-rt1019-rt5682.tplg" , |
69 | }, |
70 | { |
71 | .comp_ids = &mtl_essx_83x6, |
72 | .drv_name = "mtl_es83x6_c1_h02" , |
73 | .machine_quirk = snd_soc_acpi_codec_list, |
74 | .quirk_data = &mtl_lt6911_hdmi, |
75 | .sof_tplg_filename = "sof-mtl-es83x6-ssp1-hdmi-ssp02.tplg" , |
76 | }, |
77 | { |
78 | .comp_ids = &mtl_essx_83x6, |
79 | .drv_name = "sof-essx8336" , |
80 | .sof_tplg_filename = "sof-mtl-es8336" , /* the tplg suffix is added at run time */ |
81 | .tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER | |
82 | SND_SOC_ACPI_TPLG_INTEL_SSP_MSB | |
83 | SND_SOC_ACPI_TPLG_INTEL_DMIC_NUMBER, |
84 | }, |
85 | { |
86 | .id = "10EC5650" , |
87 | .drv_name = "mtl_rt5682_def" , |
88 | .machine_quirk = snd_soc_acpi_codec_list, |
89 | .quirk_data = &mtl_rt5650_amp, |
90 | .sof_tplg_filename = "sof-mtl-rt5650.tplg" , |
91 | }, |
92 | /* place amp-only boards in the end of table */ |
93 | { |
94 | .id = "INTC10B0" , |
95 | .drv_name = "mtl_lt6911_hdmi_ssp" , |
96 | .sof_tplg_filename = "sof-mtl-hdmi-ssp02.tplg" , |
97 | }, |
98 | {}, |
99 | }; |
100 | EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_mtl_machines); |
101 | |
102 | static const struct snd_soc_acpi_endpoint single_endpoint = { |
103 | .num = 0, |
104 | .aggregated = 0, |
105 | .group_position = 0, |
106 | .group_id = 0, |
107 | }; |
108 | |
109 | static const struct snd_soc_acpi_endpoint spk_l_endpoint = { |
110 | .num = 0, |
111 | .aggregated = 1, |
112 | .group_position = 0, |
113 | .group_id = 1, |
114 | }; |
115 | |
116 | static const struct snd_soc_acpi_endpoint spk_r_endpoint = { |
117 | .num = 0, |
118 | .aggregated = 1, |
119 | .group_position = 1, |
120 | .group_id = 1, |
121 | }; |
122 | |
123 | static const struct snd_soc_acpi_endpoint rt712_endpoints[] = { |
124 | { |
125 | .num = 0, |
126 | .aggregated = 0, |
127 | .group_position = 0, |
128 | .group_id = 0, |
129 | }, |
130 | { |
131 | .num = 1, |
132 | .aggregated = 0, |
133 | .group_position = 0, |
134 | .group_id = 0, |
135 | }, |
136 | }; |
137 | |
138 | /* |
139 | * RT722 is a multi-function codec, three endpoints are created for |
140 | * its headset, amp and dmic functions. |
141 | */ |
142 | static const struct snd_soc_acpi_endpoint rt722_endpoints[] = { |
143 | { |
144 | .num = 0, |
145 | .aggregated = 0, |
146 | .group_position = 0, |
147 | .group_id = 0, |
148 | }, |
149 | { |
150 | .num = 1, |
151 | .aggregated = 0, |
152 | .group_position = 0, |
153 | .group_id = 0, |
154 | }, |
155 | { |
156 | .num = 2, |
157 | .aggregated = 0, |
158 | .group_position = 0, |
159 | .group_id = 0, |
160 | }, |
161 | }; |
162 | |
163 | static const struct snd_soc_acpi_endpoint spk_2_endpoint = { |
164 | .num = 0, |
165 | .aggregated = 1, |
166 | .group_position = 2, |
167 | .group_id = 1, |
168 | }; |
169 | |
170 | static const struct snd_soc_acpi_endpoint spk_3_endpoint = { |
171 | .num = 0, |
172 | .aggregated = 1, |
173 | .group_position = 3, |
174 | .group_id = 1, |
175 | }; |
176 | |
177 | static const struct snd_soc_acpi_adr_device rt711_sdca_0_adr[] = { |
178 | { |
179 | .adr = 0x000030025D071101ull, |
180 | .num_endpoints = 1, |
181 | .endpoints = &single_endpoint, |
182 | .name_prefix = "rt711" |
183 | } |
184 | }; |
185 | |
186 | static const struct snd_soc_acpi_adr_device rt712_0_single_adr[] = { |
187 | { |
188 | .adr = 0x000030025D071201ull, |
189 | .num_endpoints = ARRAY_SIZE(rt712_endpoints), |
190 | .endpoints = rt712_endpoints, |
191 | .name_prefix = "rt712" |
192 | } |
193 | }; |
194 | |
195 | static const struct snd_soc_acpi_adr_device rt1712_3_single_adr[] = { |
196 | { |
197 | .adr = 0x000330025D171201ull, |
198 | .num_endpoints = 1, |
199 | .endpoints = &single_endpoint, |
200 | .name_prefix = "rt712-dmic" |
201 | } |
202 | }; |
203 | |
204 | static const struct snd_soc_acpi_adr_device rt722_0_single_adr[] = { |
205 | { |
206 | .adr = 0x000030025d072201ull, |
207 | .num_endpoints = ARRAY_SIZE(rt722_endpoints), |
208 | .endpoints = rt722_endpoints, |
209 | .name_prefix = "rt722" |
210 | } |
211 | }; |
212 | |
213 | static const struct snd_soc_acpi_adr_device rt713_0_single_adr[] = { |
214 | { |
215 | .adr = 0x000031025D071301ull, |
216 | .num_endpoints = 1, |
217 | .endpoints = &single_endpoint, |
218 | .name_prefix = "rt713" |
219 | } |
220 | }; |
221 | |
222 | static const struct snd_soc_acpi_adr_device rt1713_3_single_adr[] = { |
223 | { |
224 | .adr = 0x000331025D171301ull, |
225 | .num_endpoints = 1, |
226 | .endpoints = &single_endpoint, |
227 | .name_prefix = "rt713-dmic" |
228 | } |
229 | }; |
230 | |
231 | static const struct snd_soc_acpi_adr_device mx8373_0_adr[] = { |
232 | { |
233 | .adr = 0x000023019F837300ull, |
234 | .num_endpoints = 1, |
235 | .endpoints = &spk_l_endpoint, |
236 | .name_prefix = "Left" |
237 | }, |
238 | { |
239 | .adr = 0x000027019F837300ull, |
240 | .num_endpoints = 1, |
241 | .endpoints = &spk_r_endpoint, |
242 | .name_prefix = "Right" |
243 | } |
244 | }; |
245 | |
246 | static const struct snd_soc_acpi_adr_device rt5682_2_adr[] = { |
247 | { |
248 | .adr = 0x000221025D568200ull, |
249 | .num_endpoints = 1, |
250 | .endpoints = &single_endpoint, |
251 | .name_prefix = "rt5682" |
252 | } |
253 | }; |
254 | |
255 | static const struct snd_soc_acpi_adr_device rt1316_2_group1_adr[] = { |
256 | { |
257 | .adr = 0x000230025D131601ull, |
258 | .num_endpoints = 1, |
259 | .endpoints = &spk_l_endpoint, |
260 | .name_prefix = "rt1316-1" |
261 | } |
262 | }; |
263 | |
264 | static const struct snd_soc_acpi_adr_device rt1316_3_group1_adr[] = { |
265 | { |
266 | .adr = 0x000331025D131601ull, |
267 | .num_endpoints = 1, |
268 | .endpoints = &spk_r_endpoint, |
269 | .name_prefix = "rt1316-2" |
270 | } |
271 | }; |
272 | |
273 | static const struct snd_soc_acpi_adr_device rt1316_1_group2_adr[] = { |
274 | { |
275 | .adr = 0x000131025D131601ull, |
276 | .num_endpoints = 1, |
277 | .endpoints = &spk_l_endpoint, |
278 | .name_prefix = "rt1316-1" |
279 | } |
280 | }; |
281 | |
282 | static const struct snd_soc_acpi_adr_device rt1316_2_group2_adr[] = { |
283 | { |
284 | .adr = 0x000230025D131601ull, |
285 | .num_endpoints = 1, |
286 | .endpoints = &spk_r_endpoint, |
287 | .name_prefix = "rt1316-2" |
288 | } |
289 | }; |
290 | |
291 | static const struct snd_soc_acpi_adr_device rt1318_1_group1_adr[] = { |
292 | { |
293 | .adr = 0x000130025D131801ull, |
294 | .num_endpoints = 1, |
295 | .endpoints = &spk_l_endpoint, |
296 | .name_prefix = "rt1318-1" |
297 | } |
298 | }; |
299 | |
300 | static const struct snd_soc_acpi_adr_device rt1318_2_group1_adr[] = { |
301 | { |
302 | .adr = 0x000232025D131801ull, |
303 | .num_endpoints = 1, |
304 | .endpoints = &spk_r_endpoint, |
305 | .name_prefix = "rt1318-2" |
306 | } |
307 | }; |
308 | |
309 | static const struct snd_soc_acpi_adr_device rt714_0_adr[] = { |
310 | { |
311 | .adr = 0x000030025D071401ull, |
312 | .num_endpoints = 1, |
313 | .endpoints = &single_endpoint, |
314 | .name_prefix = "rt714" |
315 | } |
316 | }; |
317 | |
318 | static const struct snd_soc_acpi_adr_device rt714_1_adr[] = { |
319 | { |
320 | .adr = 0x000130025D071401ull, |
321 | .num_endpoints = 1, |
322 | .endpoints = &single_endpoint, |
323 | .name_prefix = "rt714" |
324 | } |
325 | }; |
326 | |
327 | static const struct snd_soc_acpi_link_adr mtl_712_only[] = { |
328 | { |
329 | .mask = BIT(0), |
330 | .num_adr = ARRAY_SIZE(rt712_0_single_adr), |
331 | .adr_d = rt712_0_single_adr, |
332 | }, |
333 | { |
334 | .mask = BIT(3), |
335 | .num_adr = ARRAY_SIZE(rt1712_3_single_adr), |
336 | .adr_d = rt1712_3_single_adr, |
337 | }, |
338 | {} |
339 | }; |
340 | |
341 | static const struct snd_soc_acpi_adr_device cs42l43_0_adr[] = { |
342 | { |
343 | .adr = 0x00003001FA424301ull, |
344 | .num_endpoints = 1, |
345 | .endpoints = &single_endpoint, |
346 | .name_prefix = "cs42l43" |
347 | } |
348 | }; |
349 | |
350 | static const struct snd_soc_acpi_adr_device cs35l56_1_adr[] = { |
351 | { |
352 | .adr = 0x00013701FA355601ull, |
353 | .num_endpoints = 1, |
354 | .endpoints = &spk_r_endpoint, |
355 | .name_prefix = "AMP8" |
356 | }, |
357 | { |
358 | .adr = 0x00013601FA355601ull, |
359 | .num_endpoints = 1, |
360 | .endpoints = &spk_3_endpoint, |
361 | .name_prefix = "AMP7" |
362 | } |
363 | }; |
364 | |
365 | static const struct snd_soc_acpi_adr_device cs35l56_2_adr[] = { |
366 | { |
367 | .adr = 0x00023301FA355601ull, |
368 | .num_endpoints = 1, |
369 | .endpoints = &spk_l_endpoint, |
370 | .name_prefix = "AMP1" |
371 | }, |
372 | { |
373 | .adr = 0x00023201FA355601ull, |
374 | .num_endpoints = 1, |
375 | .endpoints = &spk_2_endpoint, |
376 | .name_prefix = "AMP2" |
377 | } |
378 | }; |
379 | |
380 | static const struct snd_soc_acpi_adr_device cs35l56_2_r_adr[] = { |
381 | { |
382 | .adr = 0x00023201FA355601ull, |
383 | .num_endpoints = 1, |
384 | .endpoints = &spk_r_endpoint, |
385 | .name_prefix = "AMP3" |
386 | }, |
387 | { |
388 | .adr = 0x00023301FA355601ull, |
389 | .num_endpoints = 1, |
390 | .endpoints = &spk_3_endpoint, |
391 | .name_prefix = "AMP4" |
392 | } |
393 | |
394 | }; |
395 | |
396 | static const struct snd_soc_acpi_adr_device cs35l56_3_l_adr[] = { |
397 | { |
398 | .adr = 0x00033001fa355601ull, |
399 | .num_endpoints = 1, |
400 | .endpoints = &spk_l_endpoint, |
401 | .name_prefix = "AMP1" |
402 | }, |
403 | { |
404 | .adr = 0x00033101fa355601ull, |
405 | .num_endpoints = 1, |
406 | .endpoints = &spk_2_endpoint, |
407 | .name_prefix = "AMP2" |
408 | } |
409 | }; |
410 | |
411 | static const struct snd_soc_acpi_link_adr rt5682_link2_max98373_link0[] = { |
412 | /* Expected order: jack -> amp */ |
413 | { |
414 | .mask = BIT(2), |
415 | .num_adr = ARRAY_SIZE(rt5682_2_adr), |
416 | .adr_d = rt5682_2_adr, |
417 | }, |
418 | { |
419 | .mask = BIT(0), |
420 | .num_adr = ARRAY_SIZE(mx8373_0_adr), |
421 | .adr_d = mx8373_0_adr, |
422 | }, |
423 | {} |
424 | }; |
425 | |
426 | static const struct snd_soc_acpi_link_adr mtl_rvp[] = { |
427 | { |
428 | .mask = BIT(0), |
429 | .num_adr = ARRAY_SIZE(rt711_sdca_0_adr), |
430 | .adr_d = rt711_sdca_0_adr, |
431 | }, |
432 | {} |
433 | }; |
434 | |
435 | static const struct snd_soc_acpi_link_adr mtl_rt722_only[] = { |
436 | { |
437 | .mask = BIT(0), |
438 | .num_adr = ARRAY_SIZE(rt722_0_single_adr), |
439 | .adr_d = rt722_0_single_adr, |
440 | }, |
441 | {} |
442 | }; |
443 | |
444 | static const struct snd_soc_acpi_link_adr mtl_3_in_1_sdca[] = { |
445 | { |
446 | .mask = BIT(0), |
447 | .num_adr = ARRAY_SIZE(rt711_sdca_0_adr), |
448 | .adr_d = rt711_sdca_0_adr, |
449 | }, |
450 | { |
451 | .mask = BIT(2), |
452 | .num_adr = ARRAY_SIZE(rt1316_2_group1_adr), |
453 | .adr_d = rt1316_2_group1_adr, |
454 | }, |
455 | { |
456 | .mask = BIT(3), |
457 | .num_adr = ARRAY_SIZE(rt1316_3_group1_adr), |
458 | .adr_d = rt1316_3_group1_adr, |
459 | }, |
460 | { |
461 | .mask = BIT(1), |
462 | .num_adr = ARRAY_SIZE(rt714_1_adr), |
463 | .adr_d = rt714_1_adr, |
464 | }, |
465 | {} |
466 | }; |
467 | |
468 | static const struct snd_soc_acpi_link_adr mtl_sdw_rt1318_l12_rt714_l0[] = { |
469 | { |
470 | .mask = BIT(1), |
471 | .num_adr = ARRAY_SIZE(rt1318_1_group1_adr), |
472 | .adr_d = rt1318_1_group1_adr, |
473 | }, |
474 | { |
475 | .mask = BIT(2), |
476 | .num_adr = ARRAY_SIZE(rt1318_2_group1_adr), |
477 | .adr_d = rt1318_2_group1_adr, |
478 | }, |
479 | { |
480 | .mask = BIT(0), |
481 | .num_adr = ARRAY_SIZE(rt714_0_adr), |
482 | .adr_d = rt714_0_adr, |
483 | }, |
484 | {} |
485 | }; |
486 | |
487 | static const struct snd_soc_acpi_link_adr mtl_rt713_l0_rt1316_l12_rt1713_l3[] = { |
488 | { |
489 | .mask = BIT(0), |
490 | .num_adr = ARRAY_SIZE(rt713_0_single_adr), |
491 | .adr_d = rt713_0_single_adr, |
492 | }, |
493 | { |
494 | .mask = BIT(1), |
495 | .num_adr = ARRAY_SIZE(rt1316_1_group2_adr), |
496 | .adr_d = rt1316_1_group2_adr, |
497 | }, |
498 | { |
499 | .mask = BIT(2), |
500 | .num_adr = ARRAY_SIZE(rt1316_2_group2_adr), |
501 | .adr_d = rt1316_2_group2_adr, |
502 | }, |
503 | { |
504 | .mask = BIT(3), |
505 | .num_adr = ARRAY_SIZE(rt1713_3_single_adr), |
506 | .adr_d = rt1713_3_single_adr, |
507 | }, |
508 | {} |
509 | }; |
510 | |
511 | static const struct snd_soc_acpi_link_adr mtl_rt713_l0_rt1316_l12[] = { |
512 | { |
513 | .mask = BIT(0), |
514 | .num_adr = ARRAY_SIZE(rt713_0_single_adr), |
515 | .adr_d = rt713_0_single_adr, |
516 | }, |
517 | { |
518 | .mask = BIT(1), |
519 | .num_adr = ARRAY_SIZE(rt1316_1_group2_adr), |
520 | .adr_d = rt1316_1_group2_adr, |
521 | }, |
522 | { |
523 | .mask = BIT(2), |
524 | .num_adr = ARRAY_SIZE(rt1316_2_group2_adr), |
525 | .adr_d = rt1316_2_group2_adr, |
526 | }, |
527 | {} |
528 | }; |
529 | |
530 | static const struct snd_soc_acpi_adr_device mx8363_2_adr[] = { |
531 | { |
532 | .adr = 0x000230019F836300ull, |
533 | .num_endpoints = 1, |
534 | .endpoints = &spk_l_endpoint, |
535 | .name_prefix = "Left" |
536 | }, |
537 | { |
538 | .adr = 0x000231019F836300ull, |
539 | .num_endpoints = 1, |
540 | .endpoints = &spk_r_endpoint, |
541 | .name_prefix = "Right" |
542 | } |
543 | }; |
544 | |
545 | static const struct snd_soc_acpi_adr_device cs42l42_0_adr[] = { |
546 | { |
547 | .adr = 0x00001001FA424200ull, |
548 | .num_endpoints = 1, |
549 | .endpoints = &single_endpoint, |
550 | .name_prefix = "cs42l42" |
551 | } |
552 | }; |
553 | |
554 | static const struct snd_soc_acpi_link_adr cs42l42_link0_max98363_link2[] = { |
555 | /* Expected order: jack -> amp */ |
556 | { |
557 | .mask = BIT(0), |
558 | .num_adr = ARRAY_SIZE(cs42l42_0_adr), |
559 | .adr_d = cs42l42_0_adr, |
560 | }, |
561 | { |
562 | .mask = BIT(2), |
563 | .num_adr = ARRAY_SIZE(mx8363_2_adr), |
564 | .adr_d = mx8363_2_adr, |
565 | }, |
566 | {} |
567 | }; |
568 | |
569 | static const struct snd_soc_acpi_link_adr mtl_cs42l43_cs35l56[] = { |
570 | { |
571 | .mask = BIT(0), |
572 | .num_adr = ARRAY_SIZE(cs42l43_0_adr), |
573 | .adr_d = cs42l43_0_adr, |
574 | }, |
575 | { |
576 | .mask = BIT(1), |
577 | .num_adr = ARRAY_SIZE(cs35l56_1_adr), |
578 | .adr_d = cs35l56_1_adr, |
579 | }, |
580 | { |
581 | .mask = BIT(2), |
582 | .num_adr = ARRAY_SIZE(cs35l56_2_adr), |
583 | .adr_d = cs35l56_2_adr, |
584 | }, |
585 | {} |
586 | }; |
587 | |
588 | static const struct snd_soc_acpi_link_adr cs42l43_link0_cs35l56_link2_link3[] = { |
589 | /* Expected order: jack -> amp */ |
590 | { |
591 | .mask = BIT(0), |
592 | .num_adr = ARRAY_SIZE(cs42l43_0_adr), |
593 | .adr_d = cs42l43_0_adr, |
594 | }, |
595 | { |
596 | .mask = BIT(2), |
597 | .num_adr = ARRAY_SIZE(cs35l56_2_r_adr), |
598 | .adr_d = cs35l56_2_r_adr, |
599 | }, |
600 | { |
601 | .mask = BIT(3), |
602 | .num_adr = ARRAY_SIZE(cs35l56_3_l_adr), |
603 | .adr_d = cs35l56_3_l_adr, |
604 | }, |
605 | {} |
606 | }; |
607 | |
608 | /* this table is used when there is no I2S codec present */ |
609 | struct snd_soc_acpi_mach snd_soc_acpi_intel_mtl_sdw_machines[] = { |
610 | /* mockup tests need to be first */ |
611 | { |
612 | .link_mask = GENMASK(3, 0), |
613 | .links = sdw_mockup_headset_2amps_mic, |
614 | .drv_name = "sof_sdw" , |
615 | .sof_tplg_filename = "sof-mtl-rt711-rt1308-rt715.tplg" , |
616 | }, |
617 | { |
618 | .link_mask = BIT(0) | BIT(1) | BIT(3), |
619 | .links = sdw_mockup_headset_1amp_mic, |
620 | .drv_name = "sof_sdw" , |
621 | .sof_tplg_filename = "sof-mtl-rt711-rt1308-mono-rt715.tplg" , |
622 | }, |
623 | { |
624 | .link_mask = GENMASK(2, 0), |
625 | .links = sdw_mockup_mic_headset_1amp, |
626 | .drv_name = "sof_sdw" , |
627 | .sof_tplg_filename = "sof-mtl-rt715-rt711-rt1308-mono.tplg" , |
628 | }, |
629 | { |
630 | .link_mask = GENMASK(3, 0), |
631 | .links = mtl_rt713_l0_rt1316_l12_rt1713_l3, |
632 | .drv_name = "sof_sdw" , |
633 | .sof_tplg_filename = "sof-mtl-rt713-l0-rt1316-l12-rt1713-l3.tplg" , |
634 | }, |
635 | { |
636 | .link_mask = GENMASK(2, 0), |
637 | .links = mtl_rt713_l0_rt1316_l12, |
638 | .drv_name = "sof_sdw" , |
639 | .sof_tplg_filename = "sof-mtl-rt713-l0-rt1316-l12.tplg" , |
640 | }, |
641 | { |
642 | .link_mask = BIT(3) | BIT(0), |
643 | .links = mtl_712_only, |
644 | .drv_name = "sof_sdw" , |
645 | .sof_tplg_filename = "sof-mtl-rt712-l0-rt1712-l3.tplg" , |
646 | }, |
647 | { |
648 | .link_mask = GENMASK(2, 0), |
649 | .links = mtl_sdw_rt1318_l12_rt714_l0, |
650 | .drv_name = "sof_sdw" , |
651 | .sof_tplg_filename = "sof-mtl-rt1318-l12-rt714-l0.tplg" |
652 | }, |
653 | { |
654 | .link_mask = BIT(0) | BIT(2) | BIT(3), |
655 | .links = cs42l43_link0_cs35l56_link2_link3, |
656 | .drv_name = "sof_sdw" , |
657 | .sof_tplg_filename = "sof-mtl-cs42l43-l0-cs35l56-l23.tplg" , |
658 | }, |
659 | { |
660 | .link_mask = GENMASK(2, 0), |
661 | .links = mtl_cs42l43_cs35l56, |
662 | .drv_name = "sof_sdw" , |
663 | .sof_tplg_filename = "sof-mtl-cs42l43-l0-cs35l56-l12.tplg" , |
664 | }, |
665 | { |
666 | .link_mask = GENMASK(3, 0), |
667 | .links = mtl_3_in_1_sdca, |
668 | .drv_name = "sof_sdw" , |
669 | .sof_tplg_filename = "sof-mtl-rt711-l0-rt1316-l23-rt714-l1.tplg" , |
670 | }, |
671 | { |
672 | .link_mask = BIT(0), |
673 | .links = mtl_rt722_only, |
674 | .drv_name = "sof_sdw" , |
675 | .sof_tplg_filename = "sof-mtl-rt722-l0.tplg" , |
676 | }, |
677 | { |
678 | .link_mask = BIT(0), |
679 | .links = mtl_rvp, |
680 | .drv_name = "sof_sdw" , |
681 | .sof_tplg_filename = "sof-mtl-rt711.tplg" , |
682 | }, |
683 | { |
684 | .link_mask = BIT(0) | BIT(2), |
685 | .links = rt5682_link2_max98373_link0, |
686 | .drv_name = "sof_sdw" , |
687 | .sof_tplg_filename = "sof-mtl-sdw-rt5682-l2-max98373-l0.tplg" , |
688 | }, |
689 | { |
690 | .link_mask = BIT(0) | BIT(2), |
691 | .links = cs42l42_link0_max98363_link2, |
692 | .drv_name = "sof_sdw" , |
693 | .sof_tplg_filename = "sof-mtl-sdw-cs42l42-l0-max98363-l2.tplg" , |
694 | }, |
695 | {}, |
696 | }; |
697 | EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_mtl_sdw_machines); |
698 | |