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
26493 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
{},
65
};
66
EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_ptl_machines);
67
68
static const struct snd_soc_acpi_endpoint single_endpoint = {
69
.num = 0,
70
.aggregated = 0,
71
.group_position = 0,
72
.group_id = 0,
73
};
74
75
static const struct snd_soc_acpi_endpoint spk_l_endpoint = {
76
.num = 0,
77
.aggregated = 1,
78
.group_position = 0,
79
.group_id = 1,
80
};
81
82
static const struct snd_soc_acpi_endpoint spk_r_endpoint = {
83
.num = 0,
84
.aggregated = 1,
85
.group_position = 1,
86
.group_id = 1,
87
};
88
89
static const struct snd_soc_acpi_endpoint spk_1_endpoint = {
90
.num = 0,
91
.aggregated = 1,
92
.group_position = 1,
93
.group_id = 1,
94
};
95
96
static const struct snd_soc_acpi_endpoint spk_2_endpoint = {
97
.num = 0,
98
.aggregated = 1,
99
.group_position = 2,
100
.group_id = 1,
101
};
102
103
static const struct snd_soc_acpi_endpoint spk_3_endpoint = {
104
.num = 0,
105
.aggregated = 1,
106
.group_position = 3,
107
.group_id = 1,
108
};
109
110
static const struct snd_soc_acpi_endpoint spk_4_endpoint = {
111
.num = 0,
112
.aggregated = 1,
113
.group_position = 4,
114
.group_id = 1,
115
};
116
117
static const struct snd_soc_acpi_endpoint spk_5_endpoint = {
118
.num = 0,
119
.aggregated = 1,
120
.group_position = 5,
121
.group_id = 1,
122
};
123
124
static const struct snd_soc_acpi_endpoint spk_6_endpoint = {
125
.num = 0,
126
.aggregated = 1,
127
.group_position = 6,
128
.group_id = 1,
129
};
130
131
/*
132
* Multi-function codecs with three endpoints created for
133
* headset, amp and dmic functions.
134
*/
135
static const struct snd_soc_acpi_endpoint rt_mf_endpoints[] = {
136
{
137
.num = 0,
138
.aggregated = 0,
139
.group_position = 0,
140
.group_id = 0,
141
},
142
{
143
.num = 1,
144
.aggregated = 0,
145
.group_position = 0,
146
.group_id = 0,
147
},
148
{
149
.num = 2,
150
.aggregated = 0,
151
.group_position = 0,
152
.group_id = 0,
153
},
154
};
155
156
static const struct snd_soc_acpi_endpoint jack_dmic_endpoints[] = {
157
/* Jack Endpoint */
158
{
159
.num = 0,
160
.aggregated = 0,
161
.group_position = 0,
162
.group_id = 0,
163
},
164
/* DMIC Endpoint */
165
{
166
.num = 1,
167
.aggregated = 0,
168
.group_position = 0,
169
.group_id = 0,
170
},
171
};
172
173
static const struct snd_soc_acpi_endpoint jack_amp_g1_dmic_endpoints[] = {
174
/* Jack Endpoint */
175
{
176
.num = 0,
177
.aggregated = 0,
178
.group_position = 0,
179
.group_id = 0,
180
},
181
/* Amp Endpoint, work as spk_l_endpoint */
182
{
183
.num = 1,
184
.aggregated = 1,
185
.group_position = 0,
186
.group_id = 1,
187
},
188
/* DMIC Endpoint */
189
{
190
.num = 2,
191
.aggregated = 0,
192
.group_position = 0,
193
.group_id = 0,
194
},
195
};
196
197
static const struct snd_soc_acpi_endpoint cs42l43_amp_spkagg_endpoints[] = {
198
{ /* Jack Playback Endpoint */
199
.num = 0,
200
.aggregated = 0,
201
.group_position = 0,
202
.group_id = 0,
203
},
204
{ /* DMIC Capture Endpoint */
205
.num = 1,
206
.aggregated = 0,
207
.group_position = 0,
208
.group_id = 0,
209
},
210
{ /* Jack Capture Endpoint */
211
.num = 2,
212
.aggregated = 0,
213
.group_position = 0,
214
.group_id = 0,
215
},
216
{ /* Speaker Playback Endpoint */
217
.num = 3,
218
.aggregated = 1,
219
.group_position = 0,
220
.group_id = 1,
221
},
222
};
223
224
static const struct snd_soc_acpi_endpoint cs42l43_endpoints[] = {
225
{ /* Jack Playback Endpoint */
226
.num = 0,
227
.aggregated = 0,
228
.group_position = 0,
229
.group_id = 0,
230
},
231
{ /* DMIC Capture Endpoint */
232
.num = 1,
233
.aggregated = 0,
234
.group_position = 0,
235
.group_id = 0,
236
},
237
{ /* Jack Capture Endpoint */
238
.num = 2,
239
.aggregated = 0,
240
.group_position = 0,
241
.group_id = 0,
242
},
243
{ /* Speaker Playback Endpoint */
244
.num = 3,
245
.aggregated = 0,
246
.group_position = 0,
247
.group_id = 0,
248
},
249
};
250
251
static const struct snd_soc_acpi_adr_device cs42l43_2_adr[] = {
252
{
253
.adr = 0x00023001fa424301ull,
254
.num_endpoints = ARRAY_SIZE(cs42l43_amp_spkagg_endpoints),
255
.endpoints = cs42l43_amp_spkagg_endpoints,
256
.name_prefix = "cs42l43"
257
}
258
};
259
260
static const struct snd_soc_acpi_adr_device cs35l56_1_3amp_adr[] = {
261
{
262
.adr = 0x00013001fa355601ull,
263
.num_endpoints = 1,
264
.endpoints = &spk_1_endpoint,
265
.name_prefix = "AMP1"
266
},
267
{
268
.adr = 0x00013101fa355601ull,
269
.num_endpoints = 1,
270
.endpoints = &spk_2_endpoint,
271
.name_prefix = "AMP2"
272
},
273
{
274
.adr = 0x00013201fa355601ull,
275
.num_endpoints = 1,
276
.endpoints = &spk_3_endpoint,
277
.name_prefix = "AMP3"
278
}
279
};
280
281
static const struct snd_soc_acpi_adr_device cs35l56_3_3amp_adr[] = {
282
{
283
.adr = 0x00033301fa355601ull,
284
.num_endpoints = 1,
285
.endpoints = &spk_4_endpoint,
286
.name_prefix = "AMP4"
287
},
288
{
289
.adr = 0x00033401fa355601ull,
290
.num_endpoints = 1,
291
.endpoints = &spk_5_endpoint,
292
.name_prefix = "AMP5"
293
},
294
{
295
.adr = 0x00033501fa355601ull,
296
.num_endpoints = 1,
297
.endpoints = &spk_6_endpoint,
298
.name_prefix = "AMP6"
299
}
300
};
301
302
static const struct snd_soc_acpi_adr_device cs42l43_3_adr[] = {
303
{
304
.adr = 0x00033001FA424301ull,
305
.num_endpoints = ARRAY_SIZE(cs42l43_endpoints),
306
.endpoints = cs42l43_endpoints,
307
.name_prefix = "cs42l43"
308
}
309
};
310
311
static const struct snd_soc_acpi_adr_device rt711_sdca_0_adr[] = {
312
{
313
.adr = 0x000030025D071101ull,
314
.num_endpoints = 1,
315
.endpoints = &single_endpoint,
316
.name_prefix = "rt711"
317
}
318
};
319
320
static const struct snd_soc_acpi_adr_device rt712_vb_2_group1_adr[] = {
321
{
322
.adr = 0x000230025D071201ull,
323
.num_endpoints = ARRAY_SIZE(jack_amp_g1_dmic_endpoints),
324
.endpoints = jack_amp_g1_dmic_endpoints,
325
.name_prefix = "rt712"
326
}
327
};
328
329
static const struct snd_soc_acpi_adr_device rt712_vb_3_group1_adr[] = {
330
{
331
.adr = 0x000330025D071201ull,
332
.num_endpoints = ARRAY_SIZE(jack_amp_g1_dmic_endpoints),
333
.endpoints = jack_amp_g1_dmic_endpoints,
334
.name_prefix = "rt712"
335
}
336
};
337
338
static const struct snd_soc_acpi_adr_device rt713_vb_2_adr[] = {
339
{
340
.adr = 0x000230025d071301ull,
341
.num_endpoints = ARRAY_SIZE(jack_dmic_endpoints),
342
.endpoints = jack_dmic_endpoints,
343
.name_prefix = "rt713"
344
}
345
};
346
347
static const struct snd_soc_acpi_adr_device rt713_vb_3_adr[] = {
348
{
349
.adr = 0x000330025D071301ull,
350
.num_endpoints = ARRAY_SIZE(jack_dmic_endpoints),
351
.endpoints = jack_dmic_endpoints,
352
.name_prefix = "rt713"
353
}
354
};
355
356
static const struct snd_soc_acpi_adr_device rt1320_3_group1_adr[] = {
357
{
358
.adr = 0x000330025D132001ull,
359
.num_endpoints = 1,
360
.endpoints = &spk_r_endpoint,
361
.name_prefix = "rt1320-1"
362
}
363
};
364
365
static const struct snd_soc_acpi_adr_device rt721_0_single_adr[] = {
366
{
367
.adr = 0x000030025d072101ull,
368
.num_endpoints = ARRAY_SIZE(rt_mf_endpoints),
369
.endpoints = rt_mf_endpoints,
370
.name_prefix = "rt721"
371
}
372
};
373
374
static const struct snd_soc_acpi_adr_device rt721_3_single_adr[] = {
375
{
376
.adr = 0x000330025d072101ull,
377
.num_endpoints = ARRAY_SIZE(rt_mf_endpoints),
378
.endpoints = rt_mf_endpoints,
379
.name_prefix = "rt721"
380
}
381
};
382
383
static const struct snd_soc_acpi_link_adr ptl_rt721_l3[] = {
384
{
385
.mask = BIT(3),
386
.num_adr = ARRAY_SIZE(rt721_3_single_adr),
387
.adr_d = rt721_3_single_adr,
388
},
389
{},
390
};
391
392
static const struct snd_soc_acpi_adr_device rt722_0_single_adr[] = {
393
{
394
.adr = 0x000030025d072201ull,
395
.num_endpoints = ARRAY_SIZE(rt_mf_endpoints),
396
.endpoints = rt_mf_endpoints,
397
.name_prefix = "rt722"
398
}
399
};
400
401
static const struct snd_soc_acpi_adr_device rt722_1_single_adr[] = {
402
{
403
.adr = 0x000130025d072201ull,
404
.num_endpoints = ARRAY_SIZE(rt_mf_endpoints),
405
.endpoints = rt_mf_endpoints,
406
.name_prefix = "rt722"
407
}
408
};
409
410
static const struct snd_soc_acpi_adr_device rt722_3_single_adr[] = {
411
{
412
.adr = 0x000330025d072201ull,
413
.num_endpoints = ARRAY_SIZE(rt_mf_endpoints),
414
.endpoints = rt_mf_endpoints,
415
.name_prefix = "rt722"
416
}
417
};
418
419
static const struct snd_soc_acpi_adr_device rt1320_1_group1_adr[] = {
420
{
421
.adr = 0x000130025D132001ull,
422
.num_endpoints = 1,
423
.endpoints = &spk_r_endpoint,
424
.name_prefix = "rt1320-1"
425
}
426
};
427
428
static const struct snd_soc_acpi_adr_device rt1320_1_group2_adr[] = {
429
{
430
.adr = 0x000130025D132001ull,
431
.num_endpoints = 1,
432
.endpoints = &spk_l_endpoint,
433
.name_prefix = "rt1320-1"
434
}
435
};
436
437
static const struct snd_soc_acpi_adr_device rt1320_2_group1_adr[] = {
438
{
439
.adr = 0x000230025D132001ull,
440
.num_endpoints = 1,
441
.endpoints = &spk_r_endpoint,
442
.name_prefix = "rt1320-1"
443
}
444
};
445
446
static const struct snd_soc_acpi_adr_device rt1320_2_group2_adr[] = {
447
{
448
.adr = 0x000230025D132001ull,
449
.num_endpoints = 1,
450
.endpoints = &spk_r_endpoint,
451
.name_prefix = "rt1320-1"
452
}
453
};
454
455
static const struct snd_soc_acpi_adr_device rt1320_3_group2_adr[] = {
456
{
457
.adr = 0x000330025D132001ull,
458
.num_endpoints = 1,
459
.endpoints = &spk_r_endpoint,
460
.name_prefix = "rt1320-2"
461
}
462
};
463
464
static const struct snd_soc_acpi_link_adr ptl_cs42l43_l2_cs35l56x6_l13[] = {
465
{
466
.mask = BIT(2),
467
.num_adr = ARRAY_SIZE(cs42l43_2_adr),
468
.adr_d = cs42l43_2_adr,
469
},
470
{
471
.mask = BIT(1),
472
.num_adr = ARRAY_SIZE(cs35l56_1_3amp_adr),
473
.adr_d = cs35l56_1_3amp_adr,
474
},
475
{
476
.mask = BIT(3),
477
.num_adr = ARRAY_SIZE(cs35l56_3_3amp_adr),
478
.adr_d = cs35l56_3_3amp_adr,
479
},
480
{}
481
};
482
483
static const struct snd_soc_acpi_link_adr ptl_cs42l43_l3[] = {
484
{
485
.mask = BIT(3),
486
.num_adr = ARRAY_SIZE(cs42l43_3_adr),
487
.adr_d = cs42l43_3_adr,
488
},
489
{}
490
};
491
492
static const struct snd_soc_acpi_link_adr ptl_rt721_l0[] = {
493
{
494
.mask = BIT(0),
495
.num_adr = ARRAY_SIZE(rt721_0_single_adr),
496
.adr_d = rt721_0_single_adr,
497
},
498
{}
499
};
500
501
static const struct snd_soc_acpi_link_adr ptl_rt722_only[] = {
502
{
503
.mask = BIT(0),
504
.num_adr = ARRAY_SIZE(rt722_0_single_adr),
505
.adr_d = rt722_0_single_adr,
506
},
507
{}
508
};
509
510
static const struct snd_soc_acpi_link_adr ptl_rt722_l1[] = {
511
{
512
.mask = BIT(1),
513
.num_adr = ARRAY_SIZE(rt722_1_single_adr),
514
.adr_d = rt722_1_single_adr,
515
},
516
{}
517
};
518
519
static const struct snd_soc_acpi_link_adr ptl_rt722_l3[] = {
520
{
521
.mask = BIT(3),
522
.num_adr = ARRAY_SIZE(rt722_3_single_adr),
523
.adr_d = rt722_3_single_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(1) | BIT(2),
668
.links = ptl_sdw_rt712_vb_l2_rt1320_l1,
669
.drv_name = "sof_sdw",
670
.machine_check = snd_soc_acpi_intel_sdca_is_device_rt712_vb,
671
.sof_tplg_filename = "sof-ptl-rt712-l2-rt1320-l1.tplg",
672
.get_function_tplg_files = sof_sdw_get_tplg_files,
673
},
674
{
675
.link_mask = BIT(2) | BIT(3),
676
.links = ptl_sdw_rt712_vb_l3_rt1320_l2,
677
.drv_name = "sof_sdw",
678
.machine_check = snd_soc_acpi_intel_sdca_is_device_rt712_vb,
679
.sof_tplg_filename = "sof-ptl-rt712-l3-rt1320-l2.tplg",
680
.get_function_tplg_files = sof_sdw_get_tplg_files,
681
},
682
{
683
.link_mask = BIT(0),
684
.links = ptl_rvp,
685
.drv_name = "sof_sdw",
686
.sof_tplg_filename = "sof-ptl-rt711.tplg",
687
},
688
{
689
.link_mask = BIT(0),
690
.links = ptl_rt721_l0,
691
.drv_name = "sof_sdw",
692
.sof_tplg_filename = "sof-ptl-rt721.tplg",
693
.get_function_tplg_files = sof_sdw_get_tplg_files,
694
},
695
{
696
.link_mask = BIT(0),
697
.links = ptl_rt722_only,
698
.drv_name = "sof_sdw",
699
.sof_tplg_filename = "sof-ptl-rt722.tplg",
700
.get_function_tplg_files = sof_sdw_get_tplg_files,
701
},
702
{
703
.link_mask = BIT(1),
704
.links = ptl_rt722_l1,
705
.drv_name = "sof_sdw",
706
.sof_tplg_filename = "sof-ptl-rt722.tplg",
707
.get_function_tplg_files = sof_sdw_get_tplg_files,
708
},
709
{
710
.link_mask = BIT(3),
711
.links = ptl_cs42l43_l3,
712
.drv_name = "sof_sdw",
713
.sof_tplg_filename = "sof-ptl-cs42l43-l3.tplg",
714
.get_function_tplg_files = sof_sdw_get_tplg_files,
715
},
716
{
717
.link_mask = BIT(3),
718
.links = ptl_sdw_rt712_vb_l3_rt1320_l3,
719
.drv_name = "sof_sdw",
720
.machine_check = snd_soc_acpi_intel_sdca_is_device_rt712_vb,
721
.sof_tplg_filename = "sof-ptl-rt712-l3-rt1320-l3.tplg",
722
.get_function_tplg_files = sof_sdw_get_tplg_files,
723
},
724
{
725
.link_mask = BIT(3),
726
.links = ptl_rt721_l3,
727
.drv_name = "sof_sdw",
728
.sof_tplg_filename = "sof-ptl-rt721.tplg",
729
.get_function_tplg_files = sof_sdw_get_tplg_files,
730
},
731
{
732
.link_mask = BIT(3),
733
.links = ptl_rt722_l3,
734
.drv_name = "sof_sdw",
735
.sof_tplg_filename = "sof-ptl-rt722.tplg",
736
.get_function_tplg_files = sof_sdw_get_tplg_files,
737
},
738
{},
739
};
740
EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_ptl_sdw_machines);
741
742