Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/sound/soc/intel/common/soc-acpi-intel-ptl-match.c
53490 views
1
// SPDX-License-Identifier: GPL-2.0-only
2
/*
3
* soc-acpi-intel-ptl-match.c - tables and support for PTL ACPI enumeration.
4
*
5
* Copyright (c) 2024, Intel Corporation.
6
*
7
* Order of entries in snd_soc_acpi_intel_ptl_sdw_machines[] matters.
8
* Check subset of link mask when matching the machine driver, rule is
9
* superset match should be ordered before subset matches.
10
*/
11
12
#include <sound/soc-acpi.h>
13
#include <sound/soc-acpi-intel-match.h>
14
#include "sof-function-topology-lib.h"
15
#include "soc-acpi-intel-sdca-quirks.h"
16
#include "soc-acpi-intel-sdw-mockup-match.h"
17
#include <sound/soc-acpi-intel-ssp-common.h>
18
19
static const struct snd_soc_acpi_codecs ptl_rt5682_rt5682s_hp = {
20
.num_codecs = 2,
21
.codecs = {RT5682_ACPI_HID, RT5682S_ACPI_HID},
22
};
23
24
static const struct snd_soc_acpi_codecs ptl_essx_83x6 = {
25
.num_codecs = 3,
26
.codecs = { "ESSX8316", "ESSX8326", "ESSX8336"},
27
};
28
29
static const struct snd_soc_acpi_codecs ptl_lt6911_hdmi = {
30
.num_codecs = 1,
31
.codecs = {"INTC10B0"}
32
};
33
34
struct snd_soc_acpi_mach snd_soc_acpi_intel_ptl_machines[] = {
35
{
36
.comp_ids = &ptl_rt5682_rt5682s_hp,
37
.drv_name = "ptl_rt5682_c1_h02",
38
.machine_quirk = snd_soc_acpi_codec_list,
39
.quirk_data = &ptl_lt6911_hdmi,
40
.sof_tplg_filename = "sof-ptl-rt5682-ssp1-hdmi-ssp02.tplg",
41
},
42
{
43
.comp_ids = &ptl_rt5682_rt5682s_hp,
44
.drv_name = "ptl_rt5682_def",
45
.sof_tplg_filename = "sof-ptl", /* the tplg suffix is added at run time */
46
.tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_AMP_NAME |
47
SND_SOC_ACPI_TPLG_INTEL_CODEC_NAME,
48
},
49
{
50
.comp_ids = &ptl_essx_83x6,
51
.drv_name = "ptl_es83x6_c1_h02",
52
.machine_quirk = snd_soc_acpi_codec_list,
53
.quirk_data = &ptl_lt6911_hdmi,
54
.sof_tplg_filename = "sof-ptl-es83x6-ssp1-hdmi-ssp02.tplg",
55
},
56
{
57
.comp_ids = &ptl_essx_83x6,
58
.drv_name = "sof-essx8336",
59
.sof_tplg_filename = "sof-ptl-es8336", /* the tplg suffix is added at run time */
60
.tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER |
61
SND_SOC_ACPI_TPLG_INTEL_SSP_MSB |
62
SND_SOC_ACPI_TPLG_INTEL_DMIC_NUMBER,
63
},
64
/* place amp-only boards in the end of table */
65
{
66
.id = "INTC10B0",
67
.drv_name = "ptl_lt6911_hdmi_ssp",
68
.sof_tplg_filename = "sof-ptl-hdmi-ssp02.tplg",
69
},
70
{},
71
};
72
EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_ptl_machines);
73
74
static const struct snd_soc_acpi_endpoint single_endpoint = {
75
.num = 0,
76
.aggregated = 0,
77
.group_position = 0,
78
.group_id = 0,
79
};
80
81
static const struct snd_soc_acpi_endpoint spk_l_endpoint = {
82
.num = 0,
83
.aggregated = 1,
84
.group_position = 0,
85
.group_id = 1,
86
};
87
88
static const struct snd_soc_acpi_endpoint spk_r_endpoint = {
89
.num = 0,
90
.aggregated = 1,
91
.group_position = 1,
92
.group_id = 1,
93
};
94
95
static const struct snd_soc_acpi_endpoint spk_1_endpoint = {
96
.num = 0,
97
.aggregated = 1,
98
.group_position = 1,
99
.group_id = 1,
100
};
101
102
static const struct snd_soc_acpi_endpoint spk_2_endpoint = {
103
.num = 0,
104
.aggregated = 1,
105
.group_position = 2,
106
.group_id = 1,
107
};
108
109
static const struct snd_soc_acpi_endpoint spk_3_endpoint = {
110
.num = 0,
111
.aggregated = 1,
112
.group_position = 3,
113
.group_id = 1,
114
};
115
116
static const struct snd_soc_acpi_endpoint spk_4_endpoint = {
117
.num = 0,
118
.aggregated = 1,
119
.group_position = 4,
120
.group_id = 1,
121
};
122
123
static const struct snd_soc_acpi_endpoint spk_5_endpoint = {
124
.num = 0,
125
.aggregated = 1,
126
.group_position = 5,
127
.group_id = 1,
128
};
129
130
static const struct snd_soc_acpi_endpoint spk_6_endpoint = {
131
.num = 0,
132
.aggregated = 1,
133
.group_position = 6,
134
.group_id = 1,
135
};
136
137
/*
138
* Multi-function codecs with three endpoints created for
139
* headset, amp and dmic functions.
140
*/
141
static const struct snd_soc_acpi_endpoint rt_mf_endpoints[] = {
142
{
143
.num = 0,
144
.aggregated = 0,
145
.group_position = 0,
146
.group_id = 0,
147
},
148
{
149
.num = 1,
150
.aggregated = 0,
151
.group_position = 0,
152
.group_id = 0,
153
},
154
{
155
.num = 2,
156
.aggregated = 0,
157
.group_position = 0,
158
.group_id = 0,
159
},
160
};
161
162
static const struct snd_soc_acpi_endpoint jack_dmic_endpoints[] = {
163
/* Jack Endpoint */
164
{
165
.num = 0,
166
.aggregated = 0,
167
.group_position = 0,
168
.group_id = 0,
169
},
170
/* DMIC Endpoint */
171
{
172
.num = 1,
173
.aggregated = 0,
174
.group_position = 0,
175
.group_id = 0,
176
},
177
};
178
179
static const struct snd_soc_acpi_endpoint jack_amp_g1_dmic_endpoints[] = {
180
/* Jack Endpoint */
181
{
182
.num = 0,
183
.aggregated = 0,
184
.group_position = 0,
185
.group_id = 0,
186
},
187
/* Amp Endpoint, work as spk_l_endpoint */
188
{
189
.num = 1,
190
.aggregated = 1,
191
.group_position = 0,
192
.group_id = 1,
193
},
194
/* DMIC Endpoint */
195
{
196
.num = 2,
197
.aggregated = 0,
198
.group_position = 0,
199
.group_id = 0,
200
},
201
};
202
203
static const struct snd_soc_acpi_endpoint cs42l43_amp_spkagg_endpoints[] = {
204
{ /* Jack Playback Endpoint */
205
.num = 0,
206
.aggregated = 0,
207
.group_position = 0,
208
.group_id = 0,
209
},
210
{ /* DMIC Capture Endpoint */
211
.num = 1,
212
.aggregated = 0,
213
.group_position = 0,
214
.group_id = 0,
215
},
216
{ /* Jack Capture Endpoint */
217
.num = 2,
218
.aggregated = 0,
219
.group_position = 0,
220
.group_id = 0,
221
},
222
{ /* Speaker Playback Endpoint */
223
.num = 3,
224
.aggregated = 1,
225
.group_position = 0,
226
.group_id = 1,
227
},
228
};
229
230
static const struct snd_soc_acpi_adr_device cs42l43_2_adr[] = {
231
{
232
.adr = 0x00023001fa424301ull,
233
.num_endpoints = ARRAY_SIZE(cs42l43_amp_spkagg_endpoints),
234
.endpoints = cs42l43_amp_spkagg_endpoints,
235
.name_prefix = "cs42l43"
236
}
237
};
238
239
static const struct snd_soc_acpi_adr_device cs42l43_3_agg_adr[] = {
240
{
241
.adr = 0x00033001FA424301ull,
242
.num_endpoints = ARRAY_SIZE(cs42l43_amp_spkagg_endpoints),
243
.endpoints = cs42l43_amp_spkagg_endpoints,
244
.name_prefix = "cs42l43"
245
}
246
};
247
248
static const struct snd_soc_acpi_adr_device cs35l56_2_lr_adr[] = {
249
{
250
.adr = 0x00023001fa355601ull,
251
.num_endpoints = 1,
252
.endpoints = &spk_l_endpoint,
253
.name_prefix = "AMP1"
254
},
255
{
256
.adr = 0x00023101fa355601ull,
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 rt711_sdca_0_adr[] = {
306
{
307
.adr = 0x000030025D071101ull,
308
.num_endpoints = 1,
309
.endpoints = &single_endpoint,
310
.name_prefix = "rt711"
311
}
312
};
313
314
static const struct snd_soc_acpi_adr_device rt712_vb_2_group1_adr[] = {
315
{
316
.adr = 0x000230025D071201ull,
317
.num_endpoints = ARRAY_SIZE(jack_amp_g1_dmic_endpoints),
318
.endpoints = jack_amp_g1_dmic_endpoints,
319
.name_prefix = "rt712"
320
}
321
};
322
323
static const struct snd_soc_acpi_adr_device rt712_vb_3_group1_adr[] = {
324
{
325
.adr = 0x000330025D071201ull,
326
.num_endpoints = ARRAY_SIZE(jack_amp_g1_dmic_endpoints),
327
.endpoints = jack_amp_g1_dmic_endpoints,
328
.name_prefix = "rt712"
329
}
330
};
331
332
static const struct snd_soc_acpi_adr_device rt713_vb_2_adr[] = {
333
{
334
.adr = 0x000230025d071301ull,
335
.num_endpoints = ARRAY_SIZE(jack_dmic_endpoints),
336
.endpoints = jack_dmic_endpoints,
337
.name_prefix = "rt713"
338
}
339
};
340
341
static const struct snd_soc_acpi_adr_device rt713_vb_3_adr[] = {
342
{
343
.adr = 0x000330025D071301ull,
344
.num_endpoints = ARRAY_SIZE(jack_dmic_endpoints),
345
.endpoints = jack_dmic_endpoints,
346
.name_prefix = "rt713"
347
}
348
};
349
350
static const struct snd_soc_acpi_adr_device rt1320_3_group1_adr[] = {
351
{
352
.adr = 0x000330025D132001ull,
353
.num_endpoints = 1,
354
.endpoints = &spk_r_endpoint,
355
.name_prefix = "rt1320-1"
356
}
357
};
358
359
static const struct snd_soc_acpi_adr_device rt722_0_agg_adr[] = {
360
{
361
.adr = 0x000030025d072201ull,
362
.num_endpoints = ARRAY_SIZE(jack_amp_g1_dmic_endpoints),
363
.endpoints = jack_amp_g1_dmic_endpoints,
364
.name_prefix = "rt722"
365
}
366
};
367
368
static const struct snd_soc_acpi_adr_device rt722_0_single_adr[] = {
369
{
370
.adr = 0x000030025d072201ull,
371
.num_endpoints = ARRAY_SIZE(rt_mf_endpoints),
372
.endpoints = rt_mf_endpoints,
373
.name_prefix = "rt722"
374
}
375
};
376
377
static const struct snd_soc_acpi_adr_device rt722_1_single_adr[] = {
378
{
379
.adr = 0x000130025d072201ull,
380
.num_endpoints = ARRAY_SIZE(rt_mf_endpoints),
381
.endpoints = rt_mf_endpoints,
382
.name_prefix = "rt722"
383
}
384
};
385
386
static const struct snd_soc_acpi_adr_device rt722_3_single_adr[] = {
387
{
388
.adr = 0x000330025d072201ull,
389
.num_endpoints = ARRAY_SIZE(rt_mf_endpoints),
390
.endpoints = rt_mf_endpoints,
391
.name_prefix = "rt722"
392
}
393
};
394
395
static const struct snd_soc_acpi_adr_device rt1320_1_group1_adr[] = {
396
{
397
.adr = 0x000130025D132001ull,
398
.num_endpoints = 1,
399
.endpoints = &spk_r_endpoint,
400
.name_prefix = "rt1320-1"
401
}
402
};
403
404
static const struct snd_soc_acpi_adr_device rt1320_1_group2_adr[] = {
405
{
406
.adr = 0x000130025D132001ull,
407
.num_endpoints = 1,
408
.endpoints = &spk_l_endpoint,
409
.name_prefix = "rt1320-1"
410
}
411
};
412
413
static const struct snd_soc_acpi_adr_device rt1320_2_group1_adr[] = {
414
{
415
.adr = 0x000230025D132001ull,
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 = 0x000230025D132001ull,
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_2_group2_l_adr[] = {
432
{
433
.adr = 0x000230025D132001ull,
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_link_adr ptl_cs42l43_agg_l3_cs35l56_l2[] = {
450
{
451
.mask = BIT(3),
452
.num_adr = ARRAY_SIZE(cs42l43_3_agg_adr),
453
.adr_d = cs42l43_3_agg_adr,
454
},
455
{
456
.mask = BIT(2),
457
.num_adr = ARRAY_SIZE(cs35l56_2_lr_adr),
458
.adr_d = cs35l56_2_lr_adr,
459
},
460
{}
461
};
462
463
static const struct snd_soc_acpi_link_adr ptl_cs42l43_l2_cs35l56x6_l13[] = {
464
{
465
.mask = BIT(2),
466
.num_adr = ARRAY_SIZE(cs42l43_2_adr),
467
.adr_d = cs42l43_2_adr,
468
},
469
{
470
.mask = BIT(1),
471
.num_adr = ARRAY_SIZE(cs35l56_1_3amp_adr),
472
.adr_d = cs35l56_1_3amp_adr,
473
},
474
{
475
.mask = BIT(3),
476
.num_adr = ARRAY_SIZE(cs35l56_3_3amp_adr),
477
.adr_d = cs35l56_3_3amp_adr,
478
},
479
{}
480
};
481
482
static const struct snd_soc_acpi_link_adr ptl_rt722_only[] = {
483
{
484
.mask = BIT(0),
485
.num_adr = ARRAY_SIZE(rt722_0_single_adr),
486
.adr_d = rt722_0_single_adr,
487
},
488
{}
489
};
490
491
static const struct snd_soc_acpi_link_adr ptl_rt722_l1[] = {
492
{
493
.mask = BIT(1),
494
.num_adr = ARRAY_SIZE(rt722_1_single_adr),
495
.adr_d = rt722_1_single_adr,
496
},
497
{}
498
};
499
500
static const struct snd_soc_acpi_link_adr ptl_rt722_l3[] = {
501
{
502
.mask = BIT(3),
503
.num_adr = ARRAY_SIZE(rt722_3_single_adr),
504
.adr_d = rt722_3_single_adr,
505
},
506
{}
507
};
508
509
static const struct snd_soc_acpi_link_adr ptl_rt722_l0_rt1320_l23[] = {
510
{
511
.mask = BIT(0),
512
.num_adr = ARRAY_SIZE(rt722_0_agg_adr),
513
.adr_d = rt722_0_agg_adr,
514
},
515
{
516
.mask = BIT(2),
517
.num_adr = ARRAY_SIZE(rt1320_2_group2_l_adr),
518
.adr_d = rt1320_2_group2_l_adr,
519
},
520
{
521
.mask = BIT(3),
522
.num_adr = ARRAY_SIZE(rt1320_3_group2_adr),
523
.adr_d = rt1320_3_group2_adr,
524
},
525
{}
526
};
527
528
static const struct snd_soc_acpi_link_adr ptl_rvp[] = {
529
{
530
.mask = BIT(0),
531
.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),
532
.adr_d = rt711_sdca_0_adr,
533
},
534
{}
535
};
536
537
static const struct snd_soc_acpi_link_adr ptl_sdw_rt713_vb_l2_rt1320_l13[] = {
538
{
539
.mask = BIT(2),
540
.num_adr = ARRAY_SIZE(rt713_vb_2_adr),
541
.adr_d = rt713_vb_2_adr,
542
},
543
{
544
.mask = BIT(1),
545
.num_adr = ARRAY_SIZE(rt1320_1_group2_adr),
546
.adr_d = rt1320_1_group2_adr,
547
},
548
{
549
.mask = BIT(3),
550
.num_adr = ARRAY_SIZE(rt1320_3_group2_adr),
551
.adr_d = rt1320_3_group2_adr,
552
},
553
{}
554
};
555
556
static const struct snd_soc_acpi_link_adr ptl_sdw_rt713_vb_l3_rt1320_l12[] = {
557
{
558
.mask = BIT(3),
559
.num_adr = ARRAY_SIZE(rt713_vb_3_adr),
560
.adr_d = rt713_vb_3_adr,
561
},
562
{
563
.mask = BIT(1),
564
.num_adr = ARRAY_SIZE(rt1320_1_group2_adr),
565
.adr_d = rt1320_1_group2_adr,
566
},
567
{
568
.mask = BIT(2),
569
.num_adr = ARRAY_SIZE(rt1320_2_group2_adr),
570
.adr_d = rt1320_2_group2_adr,
571
},
572
{}
573
};
574
575
static const struct snd_soc_acpi_link_adr ptl_sdw_rt712_vb_l2_rt1320_l1[] = {
576
{
577
.mask = BIT(2),
578
.num_adr = ARRAY_SIZE(rt712_vb_2_group1_adr),
579
.adr_d = rt712_vb_2_group1_adr,
580
},
581
{
582
.mask = BIT(1),
583
.num_adr = ARRAY_SIZE(rt1320_1_group1_adr),
584
.adr_d = rt1320_1_group1_adr,
585
},
586
{}
587
};
588
589
static const struct snd_soc_acpi_link_adr ptl_sdw_rt712_vb_l3_rt1320_l2[] = {
590
{
591
.mask = BIT(3),
592
.num_adr = ARRAY_SIZE(rt712_vb_3_group1_adr),
593
.adr_d = rt712_vb_3_group1_adr,
594
},
595
{
596
.mask = BIT(2),
597
.num_adr = ARRAY_SIZE(rt1320_2_group1_adr),
598
.adr_d = rt1320_2_group1_adr,
599
},
600
{}
601
};
602
603
static const struct snd_soc_acpi_link_adr ptl_sdw_rt712_vb_l3_rt1320_l3[] = {
604
{
605
.mask = BIT(3),
606
.num_adr = ARRAY_SIZE(rt712_vb_3_group1_adr),
607
.adr_d = rt712_vb_3_group1_adr,
608
},
609
{
610
.mask = BIT(3),
611
.num_adr = ARRAY_SIZE(rt1320_3_group1_adr),
612
.adr_d = rt1320_3_group1_adr,
613
},
614
{}
615
};
616
617
/* this table is used when there is no I2S codec present */
618
struct snd_soc_acpi_mach snd_soc_acpi_intel_ptl_sdw_machines[] = {
619
/* Order Priority: mockup > most links > most bit link-mask > alphabetical */
620
{
621
.link_mask = GENMASK(3, 0),
622
.links = sdw_mockup_headset_2amps_mic,
623
.drv_name = "sof_sdw",
624
.sof_tplg_filename = "sof-ptl-rt711-rt1308-rt715.tplg",
625
},
626
{
627
.link_mask = BIT(0) | BIT(1) | BIT(3),
628
.links = sdw_mockup_headset_1amp_mic,
629
.drv_name = "sof_sdw",
630
.sof_tplg_filename = "sof-ptl-rt711-rt1308-mono-rt715.tplg",
631
},
632
{
633
.link_mask = GENMASK(2, 0),
634
.links = sdw_mockup_mic_headset_1amp,
635
.drv_name = "sof_sdw",
636
.sof_tplg_filename = "sof-ptl-rt715-rt711-rt1308-mono.tplg",
637
},
638
{
639
.link_mask = BIT(0),
640
.links = sdw_mockup_multi_func,
641
.drv_name = "sof_sdw",
642
.sof_tplg_filename = "sof-ptl-rt722.tplg", /* Reuse the existing tplg file */
643
},
644
{
645
.link_mask = BIT(1) | BIT(2) | BIT(3),
646
.links = ptl_sdw_rt713_vb_l2_rt1320_l13,
647
.drv_name = "sof_sdw",
648
.machine_check = snd_soc_acpi_intel_sdca_is_device_rt712_vb,
649
.sof_tplg_filename = "sof-ptl-rt713-l2-rt1320-l13.tplg",
650
.get_function_tplg_files = sof_sdw_get_tplg_files,
651
},
652
{
653
.link_mask = BIT(1) | BIT(2) | BIT(3),
654
.links = ptl_sdw_rt713_vb_l3_rt1320_l12,
655
.drv_name = "sof_sdw",
656
.machine_check = snd_soc_acpi_intel_sdca_is_device_rt712_vb,
657
.sof_tplg_filename = "sof-ptl-rt713-l3-rt1320-l12.tplg",
658
.get_function_tplg_files = sof_sdw_get_tplg_files,
659
},
660
{
661
.link_mask = BIT(1) | BIT(2) | BIT(3),
662
.links = ptl_cs42l43_l2_cs35l56x6_l13,
663
.drv_name = "sof_sdw",
664
.sof_tplg_filename = "sof-ptl-cs42l43-l2-cs35l56x6-l13.tplg",
665
},
666
{
667
.link_mask = BIT(0) | BIT(2) | BIT(3),
668
.links = ptl_rt722_l0_rt1320_l23,
669
.drv_name = "sof_sdw",
670
.sof_tplg_filename = "sof-ptl-rt722-l0-rt1320-l23.tplg",
671
.get_function_tplg_files = sof_sdw_get_tplg_files,
672
},
673
{
674
.link_mask = BIT(1) | BIT(2),
675
.links = ptl_sdw_rt712_vb_l2_rt1320_l1,
676
.drv_name = "sof_sdw",
677
.machine_check = snd_soc_acpi_intel_sdca_is_device_rt712_vb,
678
.sof_tplg_filename = "sof-ptl-rt712-l2-rt1320-l1.tplg",
679
.get_function_tplg_files = sof_sdw_get_tplg_files,
680
},
681
{
682
.link_mask = BIT(2) | BIT(3),
683
.links = ptl_sdw_rt712_vb_l3_rt1320_l2,
684
.drv_name = "sof_sdw",
685
.machine_check = snd_soc_acpi_intel_sdca_is_device_rt712_vb,
686
.sof_tplg_filename = "sof-ptl-rt712-l3-rt1320-l2.tplg",
687
.get_function_tplg_files = sof_sdw_get_tplg_files,
688
},
689
{
690
.link_mask = BIT(2) | BIT(3),
691
.links = ptl_cs42l43_agg_l3_cs35l56_l2,
692
.drv_name = "sof_sdw",
693
.sof_tplg_filename = "sof-ptl-cs42l43-agg-l3-cs35l56-l2.tplg",
694
},
695
{
696
.link_mask = BIT(0),
697
.links = ptl_rvp,
698
.drv_name = "sof_sdw",
699
.sof_tplg_filename = "sof-ptl-rt711.tplg",
700
},
701
{
702
.link_mask = BIT(0),
703
.links = ptl_rt722_only,
704
.drv_name = "sof_sdw",
705
.sof_tplg_filename = "sof-ptl-rt722.tplg",
706
.get_function_tplg_files = sof_sdw_get_tplg_files,
707
},
708
{
709
.link_mask = BIT(1),
710
.links = ptl_rt722_l1,
711
.drv_name = "sof_sdw",
712
.sof_tplg_filename = "sof-ptl-rt722.tplg",
713
.get_function_tplg_files = sof_sdw_get_tplg_files,
714
},
715
{
716
.link_mask = BIT(3),
717
.links = ptl_sdw_rt712_vb_l3_rt1320_l3,
718
.drv_name = "sof_sdw",
719
.machine_check = snd_soc_acpi_intel_sdca_is_device_rt712_vb,
720
.sof_tplg_filename = "sof-ptl-rt712-l3-rt1320-l3.tplg",
721
.get_function_tplg_files = sof_sdw_get_tplg_files,
722
},
723
{
724
.link_mask = BIT(3),
725
.links = ptl_rt722_l3,
726
.drv_name = "sof_sdw",
727
.sof_tplg_filename = "sof-ptl-rt722.tplg",
728
.get_function_tplg_files = sof_sdw_get_tplg_files,
729
},
730
{},
731
};
732
EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_ptl_sdw_machines);
733
734