FILE
soc-acpi-intel-ptl-match.c
File preview with syntax highlighting.
linux-6.19.14/sound/soc/intel/common/soc-acpi-intel-ptl-match.c
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 19static const struct snd_soc_acpi_codecs ptl_rt5682_rt5682s_hp = { 20 .num_codecs = 2, 21 .codecs = {RT5682_ACPI_HID, RT5682S_ACPI_HID}, 22}; 23 24static const struct snd_soc_acpi_codecs ptl_essx_83x6 = { 25 .num_codecs = 3, 26 .codecs = { "ESSX8316", "ESSX8326", "ESSX8336"}, 27}; 28 29static const struct snd_soc_acpi_codecs ptl_lt6911_hdmi = { 30 .num_codecs = 1, 31 .codecs = {"INTC10B0"} 32}; 33 34struct 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}; 72EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_ptl_machines); 73 74static const struct snd_soc_acpi_endpoint single_endpoint = { 75 .num = 0, 76 .aggregated = 0, 77 .group_position = 0, 78 .group_id = 0, 79}; 80 81static 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 88static 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 95static 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 102static 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 109static 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 116static 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 123static 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 130static 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 */ 141static 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 162static 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 179static 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 203static 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 230static 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 239static 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 248static 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 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 rt711_sdca_0_adr[] = { 306 { 307 .adr = 0x000030025D071101ull, 308 .num_endpoints = 1, 309 .endpoints = &single_endpoint, 310 .name_prefix = "rt711" 311 } 312}; 313 314static 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 323static 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 332static 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 341static 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 350static 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 359static const struct snd_soc_acpi_adr_device rt721_0_single_adr[] = { 360 { 361 .adr = 0x000030025d072101ull, 362 .num_endpoints = ARRAY_SIZE(rt_mf_endpoints), 363 .endpoints = rt_mf_endpoints, 364 .name_prefix = "rt721" 365 } 366}; 367 368static const struct snd_soc_acpi_adr_device rt721_3_single_adr[] = { 369 { 370 .adr = 0x000330025d072101ull, 371 .num_endpoints = ARRAY_SIZE(rt_mf_endpoints), 372 .endpoints = rt_mf_endpoints, 373 .name_prefix = "rt721" 374 } 375}; 376 377static const struct snd_soc_acpi_link_adr ptl_rt721_l3[] = { 378 { 379 .mask = BIT(3), 380 .num_adr = ARRAY_SIZE(rt721_3_single_adr), 381 .adr_d = rt721_3_single_adr, 382 }, 383 {}, 384}; 385 386static const struct snd_soc_acpi_adr_device rt722_0_agg_adr[] = { 387 { 388 .adr = 0x000030025d072201ull, 389 .num_endpoints = ARRAY_SIZE(jack_amp_g1_dmic_endpoints), 390 .endpoints = jack_amp_g1_dmic_endpoints, 391 .name_prefix = "rt722" 392 } 393}; 394 395static const struct snd_soc_acpi_adr_device rt722_0_single_adr[] = { 396 { 397 .adr = 0x000030025d072201ull, 398 .num_endpoints = ARRAY_SIZE(rt_mf_endpoints), 399 .endpoints = rt_mf_endpoints, 400 .name_prefix = "rt722" 401 } 402}; 403 404static const struct snd_soc_acpi_adr_device rt722_1_single_adr[] = { 405 { 406 .adr = 0x000130025d072201ull, 407 .num_endpoints = ARRAY_SIZE(rt_mf_endpoints), 408 .endpoints = rt_mf_endpoints, 409 .name_prefix = "rt722" 410 } 411}; 412 413static const struct snd_soc_acpi_adr_device rt722_3_single_adr[] = { 414 { 415 .adr = 0x000330025d072201ull, 416 .num_endpoints = ARRAY_SIZE(rt_mf_endpoints), 417 .endpoints = rt_mf_endpoints, 418 .name_prefix = "rt722" 419 } 420}; 421 422static const struct snd_soc_acpi_adr_device rt1320_1_group1_adr[] = { 423 { 424 .adr = 0x000130025D132001ull, 425 .num_endpoints = 1, 426 .endpoints = &spk_r_endpoint, 427 .name_prefix = "rt1320-1" 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_2_group1_adr[] = { 441 { 442 .adr = 0x000230025D132001ull, 443 .num_endpoints = 1, 444 .endpoints = &spk_r_endpoint, 445 .name_prefix = "rt1320-1" 446 } 447}; 448 449static const struct snd_soc_acpi_adr_device rt1320_2_group2_adr[] = { 450 { 451 .adr = 0x000230025D132001ull, 452 .num_endpoints = 1, 453 .endpoints = &spk_r_endpoint, 454 .name_prefix = "rt1320-2" 455 } 456}; 457 458static const struct snd_soc_acpi_adr_device rt1320_2_group2_l_adr[] = { 459 { 460 .adr = 0x000230025D132001ull, 461 .num_endpoints = 1, 462 .endpoints = &spk_l_endpoint, 463 .name_prefix = "rt1320-1" 464 } 465}; 466 467static const struct snd_soc_acpi_adr_device rt1320_3_group2_adr[] = { 468 { 469 .adr = 0x000330025D132001ull, 470 .num_endpoints = 1, 471 .endpoints = &spk_r_endpoint, 472 .name_prefix = "rt1320-2" 473 } 474}; 475 476static const struct snd_soc_acpi_link_adr ptl_cs42l43_agg_l3_cs35l56_l2[] = { 477 { 478 .mask = BIT(3), 479 .num_adr = ARRAY_SIZE(cs42l43_3_agg_adr), 480 .adr_d = cs42l43_3_agg_adr, 481 }, 482 { 483 .mask = BIT(2), 484 .num_adr = ARRAY_SIZE(cs35l56_2_lr_adr), 485 .adr_d = cs35l56_2_lr_adr, 486 }, 487 {} 488}; 489 490static const struct snd_soc_acpi_link_adr ptl_cs42l43_l2_cs35l56x6_l13[] = { 491 { 492 .mask = BIT(2), 493 .num_adr = ARRAY_SIZE(cs42l43_2_adr), 494 .adr_d = cs42l43_2_adr, 495 }, 496 { 497 .mask = BIT(1), 498 .num_adr = ARRAY_SIZE(cs35l56_1_3amp_adr), 499 .adr_d = cs35l56_1_3amp_adr, 500 }, 501 { 502 .mask = BIT(3), 503 .num_adr = ARRAY_SIZE(cs35l56_3_3amp_adr), 504 .adr_d = cs35l56_3_3amp_adr, 505 }, 506 {} 507}; 508 509static const struct snd_soc_acpi_link_adr ptl_rt721_l0[] = { 510 { 511 .mask = BIT(0), 512 .num_adr = ARRAY_SIZE(rt721_0_single_adr), 513 .adr_d = rt721_0_single_adr, 514 }, 515 {} 516}; 517 518static const struct snd_soc_acpi_link_adr ptl_rt722_only[] = { 519 { 520 .mask = BIT(0), 521 .num_adr = ARRAY_SIZE(rt722_0_single_adr), 522 .adr_d = rt722_0_single_adr, 523 }, 524 {} 525}; 526 527static const struct snd_soc_acpi_link_adr ptl_rt722_l1[] = { 528 { 529 .mask = BIT(1), 530 .num_adr = ARRAY_SIZE(rt722_1_single_adr), 531 .adr_d = rt722_1_single_adr, 532 }, 533 {} 534}; 535 536static const struct snd_soc_acpi_link_adr ptl_rt722_l3[] = { 537 { 538 .mask = BIT(3), 539 .num_adr = ARRAY_SIZE(rt722_3_single_adr), 540 .adr_d = rt722_3_single_adr, 541 }, 542 {} 543}; 544 545static const struct snd_soc_acpi_link_adr ptl_rt722_l0_rt1320_l23[] = { 546 { 547 .mask = BIT(0), 548 .num_adr = ARRAY_SIZE(rt722_0_agg_adr), 549 .adr_d = rt722_0_agg_adr, 550 }, 551 { 552 .mask = BIT(2), 553 .num_adr = ARRAY_SIZE(rt1320_2_group2_l_adr), 554 .adr_d = rt1320_2_group2_l_adr, 555 }, 556 { 557 .mask = BIT(3), 558 .num_adr = ARRAY_SIZE(rt1320_3_group2_adr), 559 .adr_d = rt1320_3_group2_adr, 560 }, 561 {} 562}; 563 564static const struct snd_soc_acpi_link_adr ptl_rvp[] = { 565 { 566 .mask = BIT(0), 567 .num_adr = ARRAY_SIZE(rt711_sdca_0_adr), 568 .adr_d = rt711_sdca_0_adr, 569 }, 570 {} 571}; 572 573static const struct snd_soc_acpi_link_adr ptl_sdw_rt713_vb_l2_rt1320_l13[] = { 574 { 575 .mask = BIT(2), 576 .num_adr = ARRAY_SIZE(rt713_vb_2_adr), 577 .adr_d = rt713_vb_2_adr, 578 }, 579 { 580 .mask = BIT(1), 581 .num_adr = ARRAY_SIZE(rt1320_1_group2_adr), 582 .adr_d = rt1320_1_group2_adr, 583 }, 584 { 585 .mask = BIT(3), 586 .num_adr = ARRAY_SIZE(rt1320_3_group2_adr), 587 .adr_d = rt1320_3_group2_adr, 588 }, 589 {} 590}; 591 592static const struct snd_soc_acpi_link_adr ptl_sdw_rt713_vb_l3_rt1320_l12[] = { 593 { 594 .mask = BIT(3), 595 .num_adr = ARRAY_SIZE(rt713_vb_3_adr), 596 .adr_d = rt713_vb_3_adr, 597 }, 598 { 599 .mask = BIT(1), 600 .num_adr = ARRAY_SIZE(rt1320_1_group2_adr), 601 .adr_d = rt1320_1_group2_adr, 602 }, 603 { 604 .mask = BIT(2), 605 .num_adr = ARRAY_SIZE(rt1320_2_group2_adr), 606 .adr_d = rt1320_2_group2_adr, 607 }, 608 {} 609}; 610 611static const struct snd_soc_acpi_link_adr ptl_sdw_rt712_vb_l2_rt1320_l1[] = { 612 { 613 .mask = BIT(2), 614 .num_adr = ARRAY_SIZE(rt712_vb_2_group1_adr), 615 .adr_d = rt712_vb_2_group1_adr, 616 }, 617 { 618 .mask = BIT(1), 619 .num_adr = ARRAY_SIZE(rt1320_1_group1_adr), 620 .adr_d = rt1320_1_group1_adr, 621 }, 622 {} 623}; 624 625static const struct snd_soc_acpi_link_adr ptl_sdw_rt712_vb_l3_rt1320_l2[] = { 626 { 627 .mask = BIT(3), 628 .num_adr = ARRAY_SIZE(rt712_vb_3_group1_adr), 629 .adr_d = rt712_vb_3_group1_adr, 630 }, 631 { 632 .mask = BIT(2), 633 .num_adr = ARRAY_SIZE(rt1320_2_group1_adr), 634 .adr_d = rt1320_2_group1_adr, 635 }, 636 {} 637}; 638 639static const struct snd_soc_acpi_link_adr ptl_sdw_rt712_vb_l3_rt1320_l3[] = { 640 { 641 .mask = BIT(3), 642 .num_adr = ARRAY_SIZE(rt712_vb_3_group1_adr), 643 .adr_d = rt712_vb_3_group1_adr, 644 }, 645 { 646 .mask = BIT(3), 647 .num_adr = ARRAY_SIZE(rt1320_3_group1_adr), 648 .adr_d = rt1320_3_group1_adr, 649 }, 650 {} 651}; 652 653/* this table is used when there is no I2S codec present */ 654struct snd_soc_acpi_mach snd_soc_acpi_intel_ptl_sdw_machines[] = { 655/* Order Priority: mockup > most links > most bit link-mask > alphabetical */ 656 { 657 .link_mask = GENMASK(3, 0), 658 .links = sdw_mockup_headset_2amps_mic, 659 .drv_name = "sof_sdw", 660 .sof_tplg_filename = "sof-ptl-rt711-rt1308-rt715.tplg", 661 }, 662 { 663 .link_mask = BIT(0) | BIT(1) | BIT(3), 664 .links = sdw_mockup_headset_1amp_mic, 665 .drv_name = "sof_sdw", 666 .sof_tplg_filename = "sof-ptl-rt711-rt1308-mono-rt715.tplg", 667 }, 668 { 669 .link_mask = GENMASK(2, 0), 670 .links = sdw_mockup_mic_headset_1amp, 671 .drv_name = "sof_sdw", 672 .sof_tplg_filename = "sof-ptl-rt715-rt711-rt1308-mono.tplg", 673 }, 674 { 675 .link_mask = BIT(0), 676 .links = sdw_mockup_multi_func, 677 .drv_name = "sof_sdw", 678 .sof_tplg_filename = "sof-ptl-rt722.tplg", /* Reuse the existing tplg file */ 679 }, 680 { 681 .link_mask = BIT(1) | BIT(2) | BIT(3), 682 .links = ptl_sdw_rt713_vb_l2_rt1320_l13, 683 .drv_name = "sof_sdw", 684 .machine_check = snd_soc_acpi_intel_sdca_is_device_rt712_vb, 685 .sof_tplg_filename = "sof-ptl-rt713-l2-rt1320-l13.tplg", 686 .get_function_tplg_files = sof_sdw_get_tplg_files, 687 }, 688 { 689 .link_mask = BIT(1) | BIT(2) | BIT(3), 690 .links = ptl_sdw_rt713_vb_l3_rt1320_l12, 691 .drv_name = "sof_sdw", 692 .machine_check = snd_soc_acpi_intel_sdca_is_device_rt712_vb, 693 .sof_tplg_filename = "sof-ptl-rt713-l3-rt1320-l12.tplg", 694 .get_function_tplg_files = sof_sdw_get_tplg_files, 695 }, 696 { 697 .link_mask = BIT(1) | BIT(2) | BIT(3), 698 .links = ptl_cs42l43_l2_cs35l56x6_l13, 699 .drv_name = "sof_sdw", 700 .sof_tplg_filename = "sof-ptl-cs42l43-l2-cs35l56x6-l13.tplg", 701 }, 702 { 703 .link_mask = BIT(0) | BIT(2) | BIT(3), 704 .links = ptl_rt722_l0_rt1320_l23, 705 .drv_name = "sof_sdw", 706 .sof_tplg_filename = "sof-ptl-rt722-l0-rt1320-l23.tplg", 707 .get_function_tplg_files = sof_sdw_get_tplg_files, 708 }, 709 { 710 .link_mask = BIT(1) | BIT(2), 711 .links = ptl_sdw_rt712_vb_l2_rt1320_l1, 712 .drv_name = "sof_sdw", 713 .machine_check = snd_soc_acpi_intel_sdca_is_device_rt712_vb, 714 .sof_tplg_filename = "sof-ptl-rt712-l2-rt1320-l1.tplg", 715 .get_function_tplg_files = sof_sdw_get_tplg_files, 716 }, 717 { 718 .link_mask = BIT(2) | BIT(3), 719 .links = ptl_sdw_rt712_vb_l3_rt1320_l2, 720 .drv_name = "sof_sdw", 721 .machine_check = snd_soc_acpi_intel_sdca_is_device_rt712_vb, 722 .sof_tplg_filename = "sof-ptl-rt712-l3-rt1320-l2.tplg", 723 .get_function_tplg_files = sof_sdw_get_tplg_files, 724 }, 725 { 726 .link_mask = BIT(2) | BIT(3), 727 .links = ptl_cs42l43_agg_l3_cs35l56_l2, 728 .drv_name = "sof_sdw", 729 .sof_tplg_filename = "sof-ptl-cs42l43-agg-l3-cs35l56-l2.tplg", 730 }, 731 { 732 .link_mask = BIT(0), 733 .links = ptl_rvp, 734 .drv_name = "sof_sdw", 735 .sof_tplg_filename = "sof-ptl-rt711.tplg", 736 }, 737 { 738 .link_mask = BIT(0), 739 .links = ptl_rt721_l0, 740 .drv_name = "sof_sdw", 741 .sof_tplg_filename = "sof-ptl-rt721.tplg", 742 .get_function_tplg_files = sof_sdw_get_tplg_files, 743 }, 744 { 745 .link_mask = BIT(0), 746 .links = ptl_rt722_only, 747 .drv_name = "sof_sdw", 748 .sof_tplg_filename = "sof-ptl-rt722.tplg", 749 .get_function_tplg_files = sof_sdw_get_tplg_files, 750 }, 751 { 752 .link_mask = BIT(1), 753 .links = ptl_rt722_l1, 754 .drv_name = "sof_sdw", 755 .sof_tplg_filename = "sof-ptl-rt722.tplg", 756 .get_function_tplg_files = sof_sdw_get_tplg_files, 757 }, 758 { 759 .link_mask = BIT(3), 760 .links = ptl_sdw_rt712_vb_l3_rt1320_l3, 761 .drv_name = "sof_sdw", 762 .machine_check = snd_soc_acpi_intel_sdca_is_device_rt712_vb, 763 .sof_tplg_filename = "sof-ptl-rt712-l3-rt1320-l3.tplg", 764 .get_function_tplg_files = sof_sdw_get_tplg_files, 765 }, 766 { 767 .link_mask = BIT(3), 768 .links = ptl_rt721_l3, 769 .drv_name = "sof_sdw", 770 .sof_tplg_filename = "sof-ptl-rt721.tplg", 771 .get_function_tplg_files = sof_sdw_get_tplg_files, 772 }, 773 { 774 .link_mask = BIT(3), 775 .links = ptl_rt722_l3, 776 .drv_name = "sof_sdw", 777 .sof_tplg_filename = "sof-ptl-rt722.tplg", 778 .get_function_tplg_files = sof_sdw_get_tplg_files, 779 }, 780 {}, 781}; 782EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_ptl_sdw_machines);
~/
Read-only file preview.