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
11static const struct snd_soc_acpi_codecs essx_83x6 = {
12	.num_codecs = 3,
13	.codecs = { "ESSX8316", "ESSX8326", "ESSX8336"},
14};
15
16static const struct snd_soc_acpi_endpoint single_endpoint = {
17	.num = 0,
18	.aggregated = 0,
19	.group_position = 0,
20	.group_id = 0,
21};
22
23static 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
30static 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
37static 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
46static 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
55static 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
64static 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
73static 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
82static 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
91static 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
100static 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
109static 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
118static 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
127static 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
136static 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
145static 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
154static 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
163static 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
172static 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
181static 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
190static 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
214static 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
238static 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
262static 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
286static 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
305static 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
324static 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
338static 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
352static 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
366static 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
380static 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
394static 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
409static 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
418static 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
427static 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
436static 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
450static const struct snd_soc_acpi_codecs adl_max98373_amp = {
451	.num_codecs = 1,
452	.codecs = {"MX98373"}
453};
454
455static const struct snd_soc_acpi_codecs adl_max98357a_amp = {
456	.num_codecs = 1,
457	.codecs = {"MX98357A"}
458};
459
460static const struct snd_soc_acpi_codecs adl_max98360a_amp = {
461	.num_codecs = 1,
462	.codecs = {"MX98360A"}
463};
464
465static const struct snd_soc_acpi_codecs adl_rt5682_rt5682s_hp = {
466	.num_codecs = 2,
467	.codecs = {"10EC5682", "RTL5682"},
468};
469
470static const struct snd_soc_acpi_codecs adl_rt1015p_amp = {
471	.num_codecs = 1,
472	.codecs = {"RTL1015"}
473};
474
475static const struct snd_soc_acpi_codecs adl_rt1019p_amp = {
476	.num_codecs = 1,
477	.codecs = {"RTL1019"}
478};
479
480static const struct snd_soc_acpi_codecs adl_max98390_amp = {
481	.num_codecs = 1,
482	.codecs = {"MX98390"}
483};
484
485static const struct snd_soc_acpi_codecs adl_lt6911_hdmi = {
486	.num_codecs = 1,
487	.codecs = {"INTC10B0"}
488};
489
490static const struct snd_soc_acpi_codecs adl_nau8318_amp = {
491	.num_codecs = 1,
492	.codecs = {"NVTN2012"}
493};
494
495struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_machines[] = {
496	{
497		.comp_ids = &adl_rt5682_rt5682s_hp,
498		.drv_name = "adl_mx98373_rt5682",
499		.machine_quirk = snd_soc_acpi_codec_list,
500		.quirk_data = &adl_max98373_amp,
501		.sof_tplg_filename = "sof-adl-max98373-rt5682.tplg",
502	},
503	{
504		.comp_ids = &adl_rt5682_rt5682s_hp,
505		.drv_name = "adl_mx98357_rt5682",
506		.machine_quirk = snd_soc_acpi_codec_list,
507		.quirk_data = &adl_max98357a_amp,
508		.sof_tplg_filename = "sof-adl-max98357a-rt5682.tplg",
509	},
510	{
511		.comp_ids = &adl_rt5682_rt5682s_hp,
512		.drv_name = "adl_mx98360_rt5682",
513		.machine_quirk = snd_soc_acpi_codec_list,
514		.quirk_data = &adl_max98360a_amp,
515		.sof_tplg_filename = "sof-adl-max98360a-rt5682.tplg",
516	},
517	{
518		.id = "10508825",
519		.drv_name = "adl_rt1019p_8825",
520		.machine_quirk = snd_soc_acpi_codec_list,
521		.quirk_data = &adl_rt1019p_amp,
522		.sof_tplg_filename = "sof-adl-rt1019-nau8825.tplg",
523	},
524	{
525		.id = "10508825",
526		.drv_name = "adl_max98373_8825",
527		.machine_quirk = snd_soc_acpi_codec_list,
528		.quirk_data = &adl_max98373_amp,
529		.sof_tplg_filename = "sof-adl-max98373-nau8825.tplg",
530	},
531	{
532		.id = "10508825",
533		.drv_name = "adl_mx98360a_8825",
534		.machine_quirk = snd_soc_acpi_codec_list,
535		.quirk_data = &adl_max98360a_amp,
536		.sof_tplg_filename = "sof-adl-max98360a-nau8825.tplg",
537	},
538	{
539		.comp_ids = &adl_rt5682_rt5682s_hp,
540		.drv_name = "adl_rt1019_rt5682",
541		.machine_quirk = snd_soc_acpi_codec_list,
542		.quirk_data = &adl_rt1019p_amp,
543		.sof_tplg_filename = "sof-adl-rt1019-rt5682.tplg",
544	},
545	{
546		.id = "10508825",
547		.drv_name = "adl_rt1015p_8825",
548		.machine_quirk = snd_soc_acpi_codec_list,
549		.quirk_data = &adl_rt1015p_amp,
550		.sof_tplg_filename = "sof-adl-rt1015-nau8825.tplg",
551	},
552	{
553		.id = "10508825",
554		.drv_name = "adl_nau8318_8825",
555		.machine_quirk = snd_soc_acpi_codec_list,
556		.quirk_data = &adl_nau8318_amp,
557		.sof_tplg_filename = "sof-adl-nau8318-nau8825.tplg",
558	},
559	{
560		.id = "10508825",
561		.drv_name = "sof_nau8825",
562		.sof_tplg_filename = "sof-adl-nau8825.tplg",
563	},
564	{
565		.comp_ids = &adl_rt5682_rt5682s_hp,
566		.drv_name = "adl_max98390_rt5682",
567		.machine_quirk = snd_soc_acpi_codec_list,
568		.quirk_data = &adl_max98390_amp,
569		.sof_tplg_filename = "sof-adl-max98390-rt5682.tplg",
570	},
571	{
572		.comp_ids = &adl_rt5682_rt5682s_hp,
573		.drv_name = "adl_rt5682_c1_h02",
574		.machine_quirk = snd_soc_acpi_codec_list,
575		.quirk_data = &adl_lt6911_hdmi,
576		.sof_tplg_filename = "sof-adl-rt5682-ssp1-hdmi-ssp02.tplg",
577	},
578	{
579		.comp_ids = &adl_rt5682_rt5682s_hp,
580		.drv_name = "adl_rt5682",
581		.sof_tplg_filename = "sof-adl-rt5682.tplg",
582	},
583	{
584		.id = "10134242",
585		.drv_name = "adl_mx98360a_cs4242",
586		.machine_quirk = snd_soc_acpi_codec_list,
587		.quirk_data = &adl_max98360a_amp,
588		.sof_tplg_filename = "sof-adl-max98360a-cs42l42.tplg",
589	},
590	{
591		.comp_ids = &essx_83x6,
592		.drv_name = "adl_es83x6_c1_h02",
593		.machine_quirk = snd_soc_acpi_codec_list,
594		.quirk_data = &adl_lt6911_hdmi,
595		.sof_tplg_filename = "sof-adl-es83x6-ssp1-hdmi-ssp02.tplg",
596	},
597	{
598		.comp_ids = &essx_83x6,
599		.drv_name = "sof-essx8336",
600		.sof_tplg_filename = "sof-adl-es8336", /* the tplg suffix is added at run time */
601		.tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER |
602					SND_SOC_ACPI_TPLG_INTEL_SSP_MSB |
603					SND_SOC_ACPI_TPLG_INTEL_DMIC_NUMBER,
604	},
605	/* place amp-only boards in the end of table */
606	{
607		.id = "CSC3541",
608		.drv_name = "adl_cs35l41",
609		.sof_tplg_filename = "sof-adl-cs35l41.tplg",
610	},
611	{
612		.id = "INTC10B0",
613		.drv_name = "adl_lt6911_hdmi_ssp",
614		.sof_tplg_filename = "sof-adl-nocodec-hdmi-ssp02.tplg"
615	},
616	{},
617};
618EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_adl_machines);
619
620/* this table is used when there is no I2S codec present */
621struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_sdw_machines[] = {
622	{
623		.link_mask = 0xF, /* 4 active links required */
624		.links = adl_default,
625		.drv_name = "sof_sdw",
626		.sof_tplg_filename = "sof-adl-rt711-l0-rt1308-l12-rt715-l3.tplg",
627	},
628	{
629		.link_mask = 0xF, /* 4 active links required */
630		.links = adl_sdca_default,
631		.drv_name = "sof_sdw",
632		.sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l12-rt714-l3.tplg",
633	},
634	{
635		.link_mask = 0xF, /* 4 active links required */
636		.links = adl_sdca_3_in_1,
637		.drv_name = "sof_sdw",
638		.sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l13-rt714-l2.tplg",
639	},
640	{
641		.link_mask = 0xF, /* 4 active links required */
642		.links = adl_sdw_rt711_link2_rt1316_link01_rt714_link3,
643		.drv_name = "sof_sdw",
644		.sof_tplg_filename = "sof-adl-rt711-l2-rt1316-l01-rt714-l3.tplg",
645	},
646	{
647		.link_mask = 0x7, /* rt1316 on link0 and link1 & rt711 on link2*/
648		.links = adl_sdw_rt711_link2_rt1316_link01,
649		.drv_name = "sof_sdw",
650		.sof_tplg_filename = "sof-adl-rt711-l2-rt1316-l01.tplg",
651	},
652	{
653		.link_mask = 0xC, /* rt1316 on link2 & rt714 on link3 */
654		.links = adl_sdw_rt1316_link2_rt714_link3,
655		.drv_name = "sof_sdw",
656		.sof_tplg_filename = "sof-adl-rt1316-l2-mono-rt714-l3.tplg",
657	},
658	{
659		.link_mask = 0x7, /* rt714 on link0 & two rt1316s on link1 and link2 */
660		.links = adl_sdw_rt1316_link12_rt714_link0,
661		.drv_name = "sof_sdw",
662		.sof_tplg_filename = "sof-adl-rt1316-l12-rt714-l0.tplg",
663	},
664	{
665		.link_mask = 0x3, /* rt1316 on link1 & rt714 on link0 */
666		.links = adl_sdw_rt1316_link1_rt714_link0,
667		.drv_name = "sof_sdw",
668		.sof_tplg_filename = "sof-adl-rt1316-l1-mono-rt714-l0.tplg",
669	},
670	{
671		.link_mask = 0x5, /* 2 active links required */
672		.links = adl_sdw_rt1316_link2_rt714_link0,
673		.drv_name = "sof_sdw",
674		.sof_tplg_filename = "sof-adl-rt1316-l2-mono-rt714-l0.tplg",
675	},
676	{
677		.link_mask = 0x9, /* 2 active links required */
678		.links = adl_sdw_rt711_link0_rt1316_link3,
679		.drv_name = "sof_sdw",
680		.sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l3.tplg",
681	},
682	{
683		.link_mask = 0x5, /* 2 active links required */
684		.links = adl_sdw_rt711_link0_rt1316_link2,
685		.drv_name = "sof_sdw",
686		.sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l2.tplg",
687	},
688	{
689		.link_mask = 0x1, /* link0 required */
690		.links = adl_rvp,
691		.drv_name = "sof_sdw",
692		.sof_tplg_filename = "sof-adl-rt711.tplg",
693	},
694	{
695		.link_mask = 0x1, /* link0 required */
696		.links = adlps_rvp,
697		.drv_name = "sof_sdw",
698		.sof_tplg_filename = "sof-adl-rt711.tplg",
699	},
700	{
701		.link_mask = 0x5, /* rt5682 on link0 & 2xmax98373 on link 2 */
702		.links = adl_chromebook_base,
703		.drv_name = "sof_sdw",
704		.sof_tplg_filename = "sof-adl-sdw-max98373-rt5682.tplg",
705	},
706	{},
707};
708EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_adl_sdw_machines);
709