Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/sound/soc/intel/common/soc-acpi-intel-lnl-match.c
26493 views
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
15
struct snd_soc_acpi_mach snd_soc_acpi_intel_lnl_machines[] = {
16
{},
17
};
18
EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_lnl_machines);
19
20
static const struct snd_soc_acpi_endpoint single_endpoint = {
21
.num = 0,
22
.aggregated = 0,
23
.group_position = 0,
24
.group_id = 0,
25
};
26
27
static 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
34
static 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
41
static 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
48
static 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
55
static 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
62
static 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
69
static 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
76
static 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
83
static 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
*/
102
static 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
123
static 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
140
static 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
164
static 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
191
static 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
218
static 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
233
static 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
248
static 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
263
static 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
284
static 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
305
static 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
314
static 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
323
static 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
332
static 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
341
static 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
350
static 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
359
static 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
368
static 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
377
static 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
386
static 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
395
static 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
404
static 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
413
static 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
422
static 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
431
static 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
440
static 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
449
static 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
458
static 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
467
static 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
476
static 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
485
static 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
494
static 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
508
static 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
527
static 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
546
static 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
555
static 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
569
static 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
578
static 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
602
static 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
621
static 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
640
static 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
654
static 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
673
static 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 */
689
struct 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
};
801
EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_lnl_sdw_machines);
802
803