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