Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/sound/soc/intel/common/soc-acpi-intel-adl-match.c
26493 views
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_endpoint spk_2_endpoint = {
39
.num = 0,
40
.aggregated = 1,
41
.group_position = 2,
42
.group_id = 1,
43
};
44
45
static 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
52
static 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
67
static 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
82
static 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
109
static 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
118
static 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
127
static 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
136
static 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
145
static 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
154
static 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
163
static 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
172
static 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
181
static 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
190
static 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
199
static 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
208
static 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
217
static 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
226
static 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
235
static 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
244
static 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
253
static 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
262
static 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
271
static 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
280
static 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
304
static 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
328
static 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
352
static 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
376
static 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
395
static 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
414
static 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
428
static 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
442
static 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
456
static 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
470
static 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
484
static 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
499
static 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
508
static 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
527
static 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
536
static 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
545
static 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
559
static 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
573
static const struct snd_soc_acpi_codecs adl_max98357a_amp = {
574
.num_codecs = 1,
575
.codecs = {"MX98357A"}
576
};
577
578
static const struct snd_soc_acpi_codecs adl_rt5682_rt5682s_hp = {
579
.num_codecs = 2,
580
.codecs = {RT5682_ACPI_HID, RT5682S_ACPI_HID},
581
};
582
583
static const struct snd_soc_acpi_codecs adl_rt1019p_amp = {
584
.num_codecs = 1,
585
.codecs = {"RTL1019"}
586
};
587
588
static const struct snd_soc_acpi_codecs adl_lt6911_hdmi = {
589
.num_codecs = 1,
590
.codecs = {"INTC10B0"}
591
};
592
593
struct 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
};
681
EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_adl_machines);
682
683
/* this table is used when there is no I2S codec present */
684
struct 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
};
783
EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_adl_sdw_machines);
784
785