File Index
Files and directories
Sign in
FILE

soc-acpi-intel-adl-match.c

File preview with syntax highlighting.

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