File Index
Files and directories
Sign in
FILE

soc-acpi-intel-lnl-match.c

File preview with syntax highlighting.

linux-6.19.14/sound/soc/intel/common/soc-acpi-intel-lnl-match.c C
  1// SPDX-License-Identifier: GPL-2.0-only
  2/*
  3 * soc-acpi-intel-lnl-match.c - tables and support for LNL ACPI enumeration.
  4 *
  5 * Copyright (c) 2023, Intel Corporation
  6 *
  7 */
  8
  9#include <sound/soc-acpi.h>
 10#include <sound/soc-acpi-intel-match.h>
 11#include "sof-function-topology-lib.h"
 12#include "soc-acpi-intel-sdca-quirks.h"
 13#include "soc-acpi-intel-sdw-mockup-match.h"
 14
 15struct snd_soc_acpi_mach snd_soc_acpi_intel_lnl_machines[] = {
 16	{},
 17};
 18EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_lnl_machines);
 19
 20static const struct snd_soc_acpi_endpoint single_endpoint = {
 21	.num = 0,
 22	.aggregated = 0,
 23	.group_position = 0,
 24	.group_id = 0,
 25};
 26
 27static const struct snd_soc_acpi_endpoint spk_l_endpoint = {
 28	.num = 0,
 29	.aggregated = 1,
 30	.group_position = 0,
 31	.group_id = 1,
 32};
 33
 34static const struct snd_soc_acpi_endpoint spk_r_endpoint = {
 35	.num = 0,
 36	.aggregated = 1,
 37	.group_position = 1,
 38	.group_id = 1,
 39};
 40
 41static const struct snd_soc_acpi_endpoint spk_1_endpoint = {
 42	.num = 0,
 43	.aggregated = 1,
 44	.group_position = 1,
 45	.group_id = 1,
 46};
 47
 48static const struct snd_soc_acpi_endpoint spk_2_endpoint = {
 49	.num = 0,
 50	.aggregated = 1,
 51	.group_position = 2,
 52	.group_id = 1,
 53};
 54
 55static const struct snd_soc_acpi_endpoint spk_3_endpoint = {
 56	.num = 0,
 57	.aggregated = 1,
 58	.group_position = 3,
 59	.group_id = 1,
 60};
 61
 62static const struct snd_soc_acpi_endpoint spk_4_endpoint = {
 63	.num = 0,
 64	.aggregated = 1,
 65	.group_position = 4,
 66	.group_id = 1,
 67};
 68
 69static const struct snd_soc_acpi_endpoint spk_5_endpoint = {
 70	.num = 0,
 71	.aggregated = 1,
 72	.group_position = 5,
 73	.group_id = 1,
 74};
 75
 76static const struct snd_soc_acpi_endpoint spk_6_endpoint = {
 77	.num = 0,
 78	.aggregated = 1,
 79	.group_position = 6,
 80	.group_id = 1,
 81};
 82
 83static const struct snd_soc_acpi_endpoint rt712_endpoints[] = {
 84	{
 85		.num = 0,
 86		.aggregated = 0,
 87		.group_position = 0,
 88		.group_id = 0,
 89	},
 90	{
 91		.num = 1,
 92		.aggregated = 0,
 93		.group_position = 0,
 94		.group_id = 0,
 95	},
 96};
 97
 98/*
 99 * RT722 is a multi-function codec, three endpoints are created for
100 * its headset, amp and dmic functions.
101 */
102static const struct snd_soc_acpi_endpoint rt722_endpoints[] = {
103	{
104		.num = 0,
105		.aggregated = 0,
106		.group_position = 0,
107		.group_id = 0,
108	},
109	{
110		.num = 1,
111		.aggregated = 0,
112		.group_position = 0,
113		.group_id = 0,
114	},
115	{
116		.num = 2,
117		.aggregated = 0,
118		.group_position = 0,
119		.group_id = 0,
120	},
121};
122
123static const struct snd_soc_acpi_endpoint jack_dmic_endpoints[] = {
124	/* Jack Endpoint */
125	{
126		.num = 0,
127		.aggregated = 0,
128		.group_position = 0,
129		.group_id = 0,
130	},
131	/* DMIC Endpoint */
132	{
133		.num = 1,
134		.aggregated = 0,
135		.group_position = 0,
136		.group_id = 0,
137	},
138};
139
140static const struct snd_soc_acpi_endpoint jack_amp_g1_dmic_endpoints[] = {
141	/* Jack Endpoint */
142	{
143		.num = 0,
144		.aggregated = 0,
145		.group_position = 0,
146		.group_id = 0,
147	},
148	/* Amp Endpoint, work as spk_l_endpoint */
149	{
150		.num = 1,
151		.aggregated = 1,
152		.group_position = 0,
153		.group_id = 1,
154	},
155	/* DMIC Endpoint */
156	{
157		.num = 2,
158		.aggregated = 0,
159		.group_position = 0,
160		.group_id = 0,
161	},
162};
163
164static const struct snd_soc_acpi_endpoint cs42l43_endpoints[] = {
165	{ /* Jack Playback Endpoint */
166		.num = 0,
167		.aggregated = 0,
168		.group_position = 0,
169		.group_id = 0,
170	},
171	{ /* DMIC Capture Endpoint */
172		.num = 1,
173		.aggregated = 0,
174		.group_position = 0,
175		.group_id = 0,
176	},
177	{ /* Jack Capture Endpoint */
178		.num = 2,
179		.aggregated = 0,
180		.group_position = 0,
181		.group_id = 0,
182	},
183	{ /* Speaker Playback Endpoint */
184		.num = 3,
185		.aggregated = 0,
186		.group_position = 0,
187		.group_id = 0,
188	},
189};
190
191static const struct snd_soc_acpi_endpoint cs42l43_amp_spkagg_endpoints[] = {
192	{ /* Jack Playback Endpoint */
193		.num = 0,
194		.aggregated = 0,
195		.group_position = 0,
196		.group_id = 0,
197	},
198	{ /* DMIC Capture Endpoint */
199		.num = 1,
200		.aggregated = 0,
201		.group_position = 0,
202		.group_id = 0,
203	},
204	{ /* Jack Capture Endpoint */
205		.num = 2,
206		.aggregated = 0,
207		.group_position = 0,
208		.group_id = 0,
209	},
210	{ /* Speaker Playback Endpoint */
211		.num = 3,
212		.aggregated = 1,
213		.group_position = 0,
214		.group_id = 1,
215	},
216};
217
218static const struct snd_soc_acpi_adr_device cs35l56_2_l_adr[] = {
219	{
220		.adr = 0x00023001FA355601ull,
221		.num_endpoints = 1,
222		.endpoints = &spk_l_endpoint,
223		.name_prefix = "AMP1"
224	},
225	{
226		.adr = 0x00023101FA355601ull,
227		.num_endpoints = 1,
228		.endpoints = &spk_2_endpoint,
229		.name_prefix = "AMP2"
230	}
231};
232
233static const struct snd_soc_acpi_adr_device cs35l56_3_r_adr[] = {
234	{
235		.adr = 0x00033201fa355601ull,
236		.num_endpoints = 1,
237		.endpoints = &spk_r_endpoint,
238		.name_prefix = "AMP3"
239	},
240	{
241		.adr = 0x00033301fa355601ull,
242		.num_endpoints = 1,
243		.endpoints = &spk_3_endpoint,
244		.name_prefix = "AMP4"
245	}
246};
247
248static const struct snd_soc_acpi_adr_device cs35l56_3_lr_adr[] = {
249	{
250		.adr = 0x00033001fa355601ull,
251		.num_endpoints = 1,
252		.endpoints = &spk_l_endpoint,
253		.name_prefix = "AMP1"
254	},
255	{
256		.adr = 0x00033101fa355601ull,
257		.num_endpoints = 1,
258		.endpoints = &spk_r_endpoint,
259		.name_prefix = "AMP2"
260	}
261};
262
263static const struct snd_soc_acpi_adr_device cs35l56_1_3amp_adr[] = {
264	{
265		.adr = 0x00013001fa355601ull,
266		.num_endpoints = 1,
267		.endpoints = &spk_1_endpoint,
268		.name_prefix = "AMP1"
269	},
270	{
271		.adr = 0x00013101fa355601ull,
272		.num_endpoints = 1,
273		.endpoints = &spk_2_endpoint,
274		.name_prefix = "AMP2"
275	},
276	{
277		.adr = 0x00013201fa355601ull,
278		.num_endpoints = 1,
279		.endpoints = &spk_3_endpoint,
280		.name_prefix = "AMP3"
281	}
282};
283
284static const struct snd_soc_acpi_adr_device cs35l56_3_3amp_adr[] = {
285	{
286		.adr = 0x00033301fa355601ull,
287		.num_endpoints = 1,
288		.endpoints = &spk_4_endpoint,
289		.name_prefix = "AMP4"
290	},
291	{
292		.adr = 0x00033401fa355601ull,
293		.num_endpoints = 1,
294		.endpoints = &spk_5_endpoint,
295		.name_prefix = "AMP5"
296	},
297	{
298		.adr = 0x00033501fa355601ull,
299		.num_endpoints = 1,
300		.endpoints = &spk_6_endpoint,
301		.name_prefix = "AMP6"
302	}
303};
304
305static const struct snd_soc_acpi_adr_device cs42l43_0_adr[] = {
306	{
307		.adr = 0x00003001FA424301ull,
308		.num_endpoints = ARRAY_SIZE(cs42l43_endpoints),
309		.endpoints = cs42l43_endpoints,
310		.name_prefix = "cs42l43"
311	}
312};
313
314static const struct snd_soc_acpi_adr_device cs42l43_2_adr[] = {
315	{
316		.adr = 0x00023001fa424301ull,
317		.num_endpoints = ARRAY_SIZE(cs42l43_amp_spkagg_endpoints),
318		.endpoints = cs42l43_amp_spkagg_endpoints,
319		.name_prefix = "cs42l43"
320	}
321};
322
323static const struct snd_soc_acpi_adr_device rt711_sdca_0_adr[] = {
324	{
325		.adr = 0x000030025D071101ull,
326		.num_endpoints = 1,
327		.endpoints = &single_endpoint,
328		.name_prefix = "rt711"
329	}
330};
331
332static const struct snd_soc_acpi_adr_device rt712_2_single_adr[] = {
333	{
334		.adr = 0x000230025D071201ull,
335		.num_endpoints = ARRAY_SIZE(rt712_endpoints),
336		.endpoints = rt712_endpoints,
337		.name_prefix = "rt712"
338	}
339};
340
341static const struct snd_soc_acpi_adr_device rt1712_3_single_adr[] = {
342	{
343		.adr = 0x000330025D171201ull,
344		.num_endpoints = 1,
345		.endpoints = &single_endpoint,
346		.name_prefix = "rt712-dmic"
347	}
348};
349
350static const struct snd_soc_acpi_adr_device rt712_vb_2_group1_adr[] = {
351	{
352		.adr = 0x000230025D071201ull,
353		.num_endpoints = ARRAY_SIZE(jack_amp_g1_dmic_endpoints),
354		.endpoints = jack_amp_g1_dmic_endpoints,
355		.name_prefix = "rt712"
356	}
357};
358
359static const struct snd_soc_acpi_adr_device rt722_0_single_adr[] = {
360	{
361		.adr = 0x000030025d072201ull,
362		.num_endpoints = ARRAY_SIZE(rt722_endpoints),
363		.endpoints = rt722_endpoints,
364		.name_prefix = "rt722"
365	}
366};
367
368static const struct snd_soc_acpi_adr_device rt1316_2_group1_adr[] = {
369	{
370		.adr = 0x000230025D131601ull,
371		.num_endpoints = 1,
372		.endpoints = &spk_l_endpoint,
373		.name_prefix = "rt1316-1"
374	}
375};
376
377static const struct snd_soc_acpi_adr_device rt1316_3_group1_adr[] = {
378	{
379		.adr = 0x000331025D131601ull,
380		.num_endpoints = 1,
381		.endpoints = &spk_r_endpoint,
382		.name_prefix = "rt1316-2"
383	}
384};
385
386static const struct snd_soc_acpi_adr_device rt1318_1_adr[] = {
387	{
388		.adr = 0x000133025D131801ull,
389		.num_endpoints = 1,
390		.endpoints = &single_endpoint,
391		.name_prefix = "rt1318-1"
392	}
393};
394
395static const struct snd_soc_acpi_adr_device rt1318_1_group1_adr[] = {
396	{
397		.adr = 0x000130025D131801ull,
398		.num_endpoints = 1,
399		.endpoints = &spk_l_endpoint,
400		.name_prefix = "rt1318-1"
401	}
402};
403
404static const struct snd_soc_acpi_adr_device rt1318_2_group1_adr[] = {
405	{
406		.adr = 0x000232025D131801ull,
407		.num_endpoints = 1,
408		.endpoints = &spk_r_endpoint,
409		.name_prefix = "rt1318-2"
410	}
411};
412
413static const struct snd_soc_acpi_adr_device rt1320_1_group1_adr[] = {
414	{
415		.adr = 0x000130025D132001ull,
416		.num_endpoints = 1,
417		.endpoints = &spk_r_endpoint,
418		.name_prefix = "rt1320-1"
419	}
420};
421
422static const struct snd_soc_acpi_adr_device rt1320_2_group2_adr[] = {
423	{
424		.adr = 0x000231025D132001ull,
425		.num_endpoints = 1,
426		.endpoints = &spk_r_endpoint,
427		.name_prefix = "rt1320-2"
428	}
429};
430
431static const struct snd_soc_acpi_adr_device rt1320_1_group2_adr[] = {
432	{
433		.adr = 0x000130025D132001ull,
434		.num_endpoints = 1,
435		.endpoints = &spk_l_endpoint,
436		.name_prefix = "rt1320-1"
437	}
438};
439
440static const struct snd_soc_acpi_adr_device rt1320_3_group2_adr[] = {
441	{
442		.adr = 0x000330025D132001ull,
443		.num_endpoints = 1,
444		.endpoints = &spk_r_endpoint,
445		.name_prefix = "rt1320-2"
446	}
447};
448
449static const struct snd_soc_acpi_adr_device rt713_0_adr[] = {
450	{
451		.adr = 0x000031025D071301ull,
452		.num_endpoints = 1,
453		.endpoints = &single_endpoint,
454		.name_prefix = "rt713"
455	}
456};
457
458static const struct snd_soc_acpi_adr_device rt713_vb_2_adr[] = {
459	{
460		.adr = 0x000230025d071301ull,
461		.num_endpoints = ARRAY_SIZE(jack_dmic_endpoints),
462		.endpoints = jack_dmic_endpoints,
463		.name_prefix = "rt713"
464	}
465};
466
467static const struct snd_soc_acpi_adr_device rt714_0_adr[] = {
468	{
469		.adr = 0x000030025D071401ull,
470		.num_endpoints = 1,
471		.endpoints = &single_endpoint,
472		.name_prefix = "rt714"
473	}
474};
475
476static const struct snd_soc_acpi_adr_device rt714_1_adr[] = {
477	{
478		.adr = 0x000130025D071401ull,
479		.num_endpoints = 1,
480		.endpoints = &single_endpoint,
481		.name_prefix = "rt714"
482	}
483};
484
485static const struct snd_soc_acpi_link_adr lnl_cs42l43_l0[] = {
486	{
487		.mask = BIT(0),
488		.num_adr = ARRAY_SIZE(cs42l43_0_adr),
489		.adr_d = cs42l43_0_adr,
490	},
491	{}
492};
493
494static const struct snd_soc_acpi_link_adr lnl_cs42l43_l0_cs35l56_l3[] = {
495	{
496		.mask = BIT(0),
497		.num_adr = ARRAY_SIZE(cs42l43_0_adr),
498		.adr_d = cs42l43_0_adr,
499	},
500	{
501		.mask = BIT(3),
502		.num_adr = ARRAY_SIZE(cs35l56_3_lr_adr),
503		.adr_d = cs35l56_3_lr_adr,
504	},
505	{}
506};
507
508static const struct snd_soc_acpi_link_adr lnl_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_l_adr),
517		.adr_d = cs35l56_2_l_adr,
518	},
519	{
520		.mask = BIT(3),
521		.num_adr = ARRAY_SIZE(cs35l56_3_r_adr),
522		.adr_d = cs35l56_3_r_adr,
523	},
524	{}
525};
526
527static const struct snd_soc_acpi_link_adr lnl_cs42l43_l2_cs35l56x6_l13[] = {
528	{
529		.mask = BIT(2),
530		.num_adr = ARRAY_SIZE(cs42l43_2_adr),
531		.adr_d = cs42l43_2_adr,
532	},
533	{
534		.mask = BIT(1),
535		.num_adr = ARRAY_SIZE(cs35l56_1_3amp_adr),
536		.adr_d = cs35l56_1_3amp_adr,
537	},
538	{
539		.mask = BIT(3),
540		.num_adr = ARRAY_SIZE(cs35l56_3_3amp_adr),
541		.adr_d = cs35l56_3_3amp_adr,
542	},
543	{}
544};
545
546static const struct snd_soc_acpi_link_adr lnl_rvp[] = {
547	{
548		.mask = BIT(0),
549		.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),
550		.adr_d = rt711_sdca_0_adr,
551	},
552	{}
553};
554
555static const struct snd_soc_acpi_link_adr lnl_712_only[] = {
556	{
557		.mask = BIT(2),
558		.num_adr = ARRAY_SIZE(rt712_2_single_adr),
559		.adr_d = rt712_2_single_adr,
560	},
561	{
562		.mask = BIT(3),
563		.num_adr = ARRAY_SIZE(rt1712_3_single_adr),
564		.adr_d = rt1712_3_single_adr,
565	},
566	{}
567};
568
569static const struct snd_soc_acpi_link_adr lnl_rt722_only[] = {
570	{
571		.mask = BIT(0),
572		.num_adr = ARRAY_SIZE(rt722_0_single_adr),
573		.adr_d = rt722_0_single_adr,
574	},
575	{}
576};
577
578static const struct snd_soc_acpi_link_adr lnl_3_in_1_sdca[] = {
579	{
580		.mask = BIT(0),
581		.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),
582		.adr_d = rt711_sdca_0_adr,
583	},
584	{
585		.mask = BIT(2),
586		.num_adr = ARRAY_SIZE(rt1316_2_group1_adr),
587		.adr_d = rt1316_2_group1_adr,
588	},
589	{
590		.mask = BIT(3),
591		.num_adr = ARRAY_SIZE(rt1316_3_group1_adr),
592		.adr_d = rt1316_3_group1_adr,
593	},
594	{
595		.mask = BIT(1),
596		.num_adr = ARRAY_SIZE(rt714_1_adr),
597		.adr_d = rt714_1_adr,
598	},
599	{}
600};
601
602static const struct snd_soc_acpi_link_adr lnl_sdw_rt1318_l12_rt714_l0[] = {
603	{
604		.mask = BIT(1),
605		.num_adr = ARRAY_SIZE(rt1318_1_group1_adr),
606		.adr_d = rt1318_1_group1_adr,
607	},
608	{
609		.mask = BIT(2),
610		.num_adr = ARRAY_SIZE(rt1318_2_group1_adr),
611		.adr_d = rt1318_2_group1_adr,
612	},
613	{
614		.mask = BIT(0),
615		.num_adr = ARRAY_SIZE(rt714_0_adr),
616		.adr_d = rt714_0_adr,
617	},
618	{}
619};
620
621static const struct snd_soc_acpi_link_adr lnl_sdw_rt1320_l12_rt714_l0[] = {
622	{
623		.mask = BIT(1),
624		.num_adr = ARRAY_SIZE(rt1320_1_group2_adr),
625		.adr_d = rt1320_1_group2_adr,
626	},
627	{
628		.mask = BIT(2),
629		.num_adr = ARRAY_SIZE(rt1320_2_group2_adr),
630		.adr_d = rt1320_2_group2_adr,
631	},
632	{
633		.mask = BIT(0),
634		.num_adr = ARRAY_SIZE(rt714_0_adr),
635		.adr_d = rt714_0_adr,
636	},
637	{}
638};
639
640static const struct snd_soc_acpi_link_adr lnl_sdw_rt713_l0_rt1318_l1[] = {
641	{
642		.mask = BIT(0),
643		.num_adr = ARRAY_SIZE(rt713_0_adr),
644		.adr_d = rt713_0_adr,
645	},
646	{
647		.mask = BIT(1),
648		.num_adr = ARRAY_SIZE(rt1318_1_adr),
649		.adr_d = rt1318_1_adr,
650	},
651	{}
652};
653
654static const struct snd_soc_acpi_link_adr lnl_sdw_rt713_vb_l2_rt1320_l13[] = {
655	{
656		.mask = BIT(2),
657		.num_adr = ARRAY_SIZE(rt713_vb_2_adr),
658		.adr_d = rt713_vb_2_adr,
659	},
660	{
661		.mask = BIT(1),
662		.num_adr = ARRAY_SIZE(rt1320_1_group2_adr),
663		.adr_d = rt1320_1_group2_adr,
664	},
665	{
666		.mask = BIT(3),
667		.num_adr = ARRAY_SIZE(rt1320_3_group2_adr),
668		.adr_d = rt1320_3_group2_adr,
669	},
670	{}
671};
672
673static const struct snd_soc_acpi_link_adr lnl_sdw_rt712_vb_l2_rt1320_l1[] = {
674	{
675		.mask = BIT(2),
676		.num_adr = ARRAY_SIZE(rt712_vb_2_group1_adr),
677		.adr_d = rt712_vb_2_group1_adr,
678	},
679	{
680		.mask = BIT(1),
681		.num_adr = ARRAY_SIZE(rt1320_1_group1_adr),
682		.adr_d = rt1320_1_group1_adr,
683	},
684	{}
685};
686
687/* this table is used when there is no I2S codec present */
688/* this table is used when there is no I2S codec present */
689struct snd_soc_acpi_mach snd_soc_acpi_intel_lnl_sdw_machines[] = {
690	/* mockup tests need to be first */
691	{
692		.link_mask = GENMASK(3, 0),
693		.links = sdw_mockup_headset_2amps_mic,
694		.drv_name = "sof_sdw",
695		.sof_tplg_filename = "sof-lnl-rt711-rt1308-rt715.tplg",
696	},
697	{
698		.link_mask = BIT(0) | BIT(1) | BIT(3),
699		.links = sdw_mockup_headset_1amp_mic,
700		.drv_name = "sof_sdw",
701		.sof_tplg_filename = "sof-lnl-rt711-rt1308-mono-rt715.tplg",
702	},
703	{
704		.link_mask = GENMASK(2, 0),
705		.links = sdw_mockup_mic_headset_1amp,
706		.drv_name = "sof_sdw",
707		.sof_tplg_filename = "sof-lnl-rt715-rt711-rt1308-mono.tplg",
708	},
709	{
710		.link_mask = BIT(0),
711		.links = sdw_mockup_multi_func,
712		.drv_name = "sof_sdw",
713		.sof_tplg_filename = "sof-lnl-rt722-l0.tplg", /* Reuse the existing tplg file */
714	},
715	{
716		.link_mask = GENMASK(3, 0),
717		.links = lnl_3_in_1_sdca,
718		.drv_name = "sof_sdw",
719		.sof_tplg_filename = "sof-lnl-rt711-l0-rt1316-l23-rt714-l1.tplg",
720	},
721	{
722		.link_mask = BIT(0) | BIT(2) | BIT(3),
723		.links = lnl_cs42l43_l0_cs35l56_l23,
724		.drv_name = "sof_sdw",
725		.sof_tplg_filename = "sof-lnl-cs42l43-l0-cs35l56-l23.tplg",
726	},
727	{
728		.link_mask = BIT(1) | BIT(2) | BIT(3),
729		.links = lnl_cs42l43_l2_cs35l56x6_l13,
730		.drv_name = "sof_sdw",
731		.sof_tplg_filename = "sof-lnl-cs42l43-l2-cs35l56x6-l13.tplg",
732	},
733	{
734		.link_mask = BIT(0) | BIT(3),
735		.links = lnl_cs42l43_l0_cs35l56_l3,
736		.drv_name = "sof_sdw",
737		.sof_tplg_filename = "sof-lnl-cs42l43-l0-cs35l56-l3.tplg",
738	},
739	{
740		.link_mask = BIT(0),
741		.links = lnl_cs42l43_l0,
742		.drv_name = "sof_sdw",
743		.sof_tplg_filename = "sof-lnl-cs42l43-l0.tplg",
744		.get_function_tplg_files = sof_sdw_get_tplg_files,
745	},
746	{
747		.link_mask = BIT(0),
748		.links = lnl_rvp,
749		.drv_name = "sof_sdw",
750		.sof_tplg_filename = "sof-lnl-rt711.tplg",
751	},
752	{
753		.link_mask = BIT(2) | BIT(3),
754		.links = lnl_712_only,
755		.drv_name = "sof_sdw",
756		.sof_tplg_filename = "sof-lnl-rt712-l2-rt1712-l3.tplg",
757	},
758	{
759		.link_mask = BIT(0),
760		.links = lnl_rt722_only,
761		.drv_name = "sof_sdw",
762		.sof_tplg_filename = "sof-lnl-rt722-l0.tplg",
763		.get_function_tplg_files = sof_sdw_get_tplg_files,
764	},
765	{
766		.link_mask = GENMASK(2, 0),
767		.links = lnl_sdw_rt1318_l12_rt714_l0,
768		.drv_name = "sof_sdw",
769		.sof_tplg_filename = "sof-lnl-rt1318-l12-rt714-l0.tplg"
770	},
771	{
772		.link_mask = GENMASK(2, 0),
773		.links = lnl_sdw_rt1320_l12_rt714_l0,
774		.drv_name = "sof_sdw",
775		.sof_tplg_filename = "sof-lnl-rt1320-l12-rt714-l0.tplg"
776	},
777	{
778		.link_mask = BIT(0) | BIT(1),
779		.links = lnl_sdw_rt713_l0_rt1318_l1,
780		.drv_name = "sof_sdw",
781		.sof_tplg_filename = "sof-lnl-rt713-l0-rt1318-l1.tplg"
782	},
783	{
784		.link_mask = BIT(1) | BIT(2),
785		.links = lnl_sdw_rt712_vb_l2_rt1320_l1,
786		.drv_name = "sof_sdw",
787		.machine_check = snd_soc_acpi_intel_sdca_is_device_rt712_vb,
788		.sof_tplg_filename = "sof-lnl-rt712-l2-rt1320-l1.tplg",
789		.get_function_tplg_files = sof_sdw_get_tplg_files,
790	},
791	{
792		.link_mask = BIT(1) | BIT(2) | BIT(3),
793		.links = lnl_sdw_rt713_vb_l2_rt1320_l13,
794		.drv_name = "sof_sdw",
795		.machine_check = snd_soc_acpi_intel_sdca_is_device_rt712_vb,
796		.sof_tplg_filename = "sof-lnl-rt713-l2-rt1320-l13.tplg",
797		.get_function_tplg_files = sof_sdw_get_tplg_files,
798	},
799	{},
800};
801EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_lnl_sdw_machines);
~/ Read-only file preview.