15f3db54cSKai Vehmanen // SPDX-License-Identifier: GPL-2.0-only 25f3db54cSKai Vehmanen /* 35f3db54cSKai Vehmanen * soc-apci-intel-rpl-match.c - tables and support for RPL ACPI enumeration. 45f3db54cSKai Vehmanen * 55f3db54cSKai Vehmanen * Copyright (c) 2022 Intel Corporation. 65f3db54cSKai Vehmanen */ 75f3db54cSKai Vehmanen 85f3db54cSKai Vehmanen #include <sound/soc-acpi.h> 95f3db54cSKai Vehmanen #include <sound/soc-acpi-intel-match.h> 105f3db54cSKai Vehmanen 115f3db54cSKai Vehmanen static const struct snd_soc_acpi_endpoint single_endpoint = { 125f3db54cSKai Vehmanen .num = 0, 135f3db54cSKai Vehmanen .aggregated = 0, 145f3db54cSKai Vehmanen .group_position = 0, 155f3db54cSKai Vehmanen .group_id = 0, 165f3db54cSKai Vehmanen }; 175f3db54cSKai Vehmanen 18e7ff7307SBard Liao static const struct snd_soc_acpi_endpoint spk_l_endpoint = { 19e7ff7307SBard Liao .num = 0, 20e7ff7307SBard Liao .aggregated = 1, 21e7ff7307SBard Liao .group_position = 0, 22e7ff7307SBard Liao .group_id = 1, 23e7ff7307SBard Liao }; 24e7ff7307SBard Liao 25e7ff7307SBard Liao static const struct snd_soc_acpi_endpoint spk_r_endpoint = { 26e7ff7307SBard Liao .num = 0, 27e7ff7307SBard Liao .aggregated = 1, 28e7ff7307SBard Liao .group_position = 1, 29e7ff7307SBard Liao .group_id = 1, 30e7ff7307SBard Liao }; 31e7ff7307SBard Liao 325f3db54cSKai Vehmanen static const struct snd_soc_acpi_adr_device rt711_0_adr[] = { 335f3db54cSKai Vehmanen { 345f3db54cSKai Vehmanen .adr = 0x000020025D071100ull, 355f3db54cSKai Vehmanen .num_endpoints = 1, 365f3db54cSKai Vehmanen .endpoints = &single_endpoint, 375f3db54cSKai Vehmanen .name_prefix = "rt711" 385f3db54cSKai Vehmanen } 395f3db54cSKai Vehmanen }; 405f3db54cSKai Vehmanen 415f3db54cSKai Vehmanen static const struct snd_soc_acpi_link_adr rpl_rvp[] = { 425f3db54cSKai Vehmanen { 435f3db54cSKai Vehmanen .mask = BIT(0), 445f3db54cSKai Vehmanen .num_adr = ARRAY_SIZE(rt711_0_adr), 455f3db54cSKai Vehmanen .adr_d = rt711_0_adr, 465f3db54cSKai Vehmanen }, 475f3db54cSKai Vehmanen {} 485f3db54cSKai Vehmanen }; 495f3db54cSKai Vehmanen 50e7ff7307SBard Liao static const struct snd_soc_acpi_adr_device rt711_sdca_0_adr[] = { 51e7ff7307SBard Liao { 52e7ff7307SBard Liao .adr = 0x000030025D071101ull, 53e7ff7307SBard Liao .num_endpoints = 1, 54e7ff7307SBard Liao .endpoints = &single_endpoint, 55e7ff7307SBard Liao .name_prefix = "rt711" 56e7ff7307SBard Liao } 57e7ff7307SBard Liao }; 58e7ff7307SBard Liao 5997b5fbf4SGongjun Song static const struct snd_soc_acpi_adr_device rt711_sdca_2_adr[] = { 6097b5fbf4SGongjun Song { 6197b5fbf4SGongjun Song .adr = 0x000230025D071101ull, 6297b5fbf4SGongjun Song .num_endpoints = 1, 6397b5fbf4SGongjun Song .endpoints = &single_endpoint, 6497b5fbf4SGongjun Song .name_prefix = "rt711" 6597b5fbf4SGongjun Song } 6697b5fbf4SGongjun Song }; 6797b5fbf4SGongjun Song 68e7ff7307SBard Liao static const struct snd_soc_acpi_adr_device rt1316_1_group1_adr[] = { 69e7ff7307SBard Liao { 70e7ff7307SBard Liao .adr = 0x000131025D131601ull, /* unique ID is set for some reason */ 71e7ff7307SBard Liao .num_endpoints = 1, 72e7ff7307SBard Liao .endpoints = &spk_l_endpoint, 73e7ff7307SBard Liao .name_prefix = "rt1316-1" 74e7ff7307SBard Liao } 75e7ff7307SBard Liao }; 76e7ff7307SBard Liao 7755fc0344SGongjun Song static const struct snd_soc_acpi_adr_device rt1316_2_group1_adr[] = { 7855fc0344SGongjun Song { 7955fc0344SGongjun Song .adr = 0x000230025D131601ull, 8055fc0344SGongjun Song .num_endpoints = 1, 8155fc0344SGongjun Song .endpoints = &spk_r_endpoint, 8255fc0344SGongjun Song .name_prefix = "rt1316-2" 8355fc0344SGongjun Song } 8455fc0344SGongjun Song }; 8555fc0344SGongjun Song 86e7ff7307SBard Liao static const struct snd_soc_acpi_adr_device rt1316_3_group1_adr[] = { 87e7ff7307SBard Liao { 88e7ff7307SBard Liao .adr = 0x000330025D131601ull, 89e7ff7307SBard Liao .num_endpoints = 1, 90e7ff7307SBard Liao .endpoints = &spk_r_endpoint, 91e7ff7307SBard Liao .name_prefix = "rt1316-2" 92e7ff7307SBard Liao } 93e7ff7307SBard Liao }; 94e7ff7307SBard Liao 9597b5fbf4SGongjun Song static const struct snd_soc_acpi_adr_device rt1316_0_group2_adr[] = { 9697b5fbf4SGongjun Song { 9797b5fbf4SGongjun Song .adr = 0x000030025D131601ull, 9897b5fbf4SGongjun Song .num_endpoints = 1, 9997b5fbf4SGongjun Song .endpoints = &spk_l_endpoint, 10097b5fbf4SGongjun Song .name_prefix = "rt1316-1" 10197b5fbf4SGongjun Song } 10297b5fbf4SGongjun Song }; 10397b5fbf4SGongjun Song 10497b5fbf4SGongjun Song static const struct snd_soc_acpi_adr_device rt1316_1_group2_adr[] = { 10597b5fbf4SGongjun Song { 10697b5fbf4SGongjun Song .adr = 0x000131025D131601ull, 10797b5fbf4SGongjun Song .num_endpoints = 1, 10897b5fbf4SGongjun Song .endpoints = &spk_r_endpoint, 10997b5fbf4SGongjun Song .name_prefix = "rt1316-2" 11097b5fbf4SGongjun Song } 11197b5fbf4SGongjun Song }; 11297b5fbf4SGongjun Song 1130050e3d3SGongjun Song static const struct snd_soc_acpi_adr_device rt1318_1_group1_adr[] = { 1140050e3d3SGongjun Song { 1150612d748SGongjun Song .adr = 0x000132025D131801ull, 1160050e3d3SGongjun Song .num_endpoints = 1, 1170050e3d3SGongjun Song .endpoints = &spk_l_endpoint, 1180050e3d3SGongjun Song .name_prefix = "rt1318-1" 1190050e3d3SGongjun Song } 1200050e3d3SGongjun Song }; 1210050e3d3SGongjun Song 1220050e3d3SGongjun Song static const struct snd_soc_acpi_adr_device rt1318_2_group1_adr[] = { 1230050e3d3SGongjun Song { 1240050e3d3SGongjun Song .adr = 0x000230025D131801ull, 1250050e3d3SGongjun Song .num_endpoints = 1, 1260050e3d3SGongjun Song .endpoints = &spk_r_endpoint, 1270050e3d3SGongjun Song .name_prefix = "rt1318-2" 1280050e3d3SGongjun Song } 1290050e3d3SGongjun Song }; 1300050e3d3SGongjun Song 13155fc0344SGongjun Song static const struct snd_soc_acpi_adr_device rt714_0_adr[] = { 13255fc0344SGongjun Song { 13355fc0344SGongjun Song .adr = 0x000030025D071401ull, 13455fc0344SGongjun Song .num_endpoints = 1, 13555fc0344SGongjun Song .endpoints = &single_endpoint, 13655fc0344SGongjun Song .name_prefix = "rt714" 13755fc0344SGongjun Song } 13855fc0344SGongjun Song }; 13955fc0344SGongjun Song 140e7ff7307SBard Liao static const struct snd_soc_acpi_adr_device rt714_2_adr[] = { 141e7ff7307SBard Liao { 142e7ff7307SBard Liao .adr = 0x000230025D071401ull, 143e7ff7307SBard Liao .num_endpoints = 1, 144e7ff7307SBard Liao .endpoints = &single_endpoint, 145e7ff7307SBard Liao .name_prefix = "rt714" 146e7ff7307SBard Liao } 147e7ff7307SBard Liao }; 148e7ff7307SBard Liao 14997b5fbf4SGongjun Song static const struct snd_soc_acpi_adr_device rt714_3_adr[] = { 15097b5fbf4SGongjun Song { 15197b5fbf4SGongjun Song .adr = 0x000330025D071401ull, 15297b5fbf4SGongjun Song .num_endpoints = 1, 15397b5fbf4SGongjun Song .endpoints = &single_endpoint, 15497b5fbf4SGongjun Song .name_prefix = "rt714" 15597b5fbf4SGongjun Song } 15697b5fbf4SGongjun Song }; 15797b5fbf4SGongjun Song 158e7ff7307SBard Liao static const struct snd_soc_acpi_link_adr rpl_sdca_3_in_1[] = { 159e7ff7307SBard Liao { 160e7ff7307SBard Liao .mask = BIT(0), 161e7ff7307SBard Liao .num_adr = ARRAY_SIZE(rt711_sdca_0_adr), 162e7ff7307SBard Liao .adr_d = rt711_sdca_0_adr, 163e7ff7307SBard Liao }, 164e7ff7307SBard Liao { 165e7ff7307SBard Liao .mask = BIT(1), 166e7ff7307SBard Liao .num_adr = ARRAY_SIZE(rt1316_1_group1_adr), 167e7ff7307SBard Liao .adr_d = rt1316_1_group1_adr, 168e7ff7307SBard Liao }, 169e7ff7307SBard Liao { 170e7ff7307SBard Liao .mask = BIT(2), 171e7ff7307SBard Liao .num_adr = ARRAY_SIZE(rt714_2_adr), 172e7ff7307SBard Liao .adr_d = rt714_2_adr, 173e7ff7307SBard Liao }, 174e7ff7307SBard Liao { 175e7ff7307SBard Liao .mask = BIT(3), 176e7ff7307SBard Liao .num_adr = ARRAY_SIZE(rt1316_3_group1_adr), 177e7ff7307SBard Liao .adr_d = rt1316_3_group1_adr, 178e7ff7307SBard Liao }, 179e7ff7307SBard Liao {} 180e7ff7307SBard Liao }; 181e7ff7307SBard Liao 182eeb9f9f7SPierre-Louis Bossart static const struct snd_soc_acpi_link_adr rpl_sdw_rt711_link0_rt1316_link12_rt714_link3[] = { 183eeb9f9f7SPierre-Louis Bossart { 184eeb9f9f7SPierre-Louis Bossart .mask = BIT(0), 185eeb9f9f7SPierre-Louis Bossart .num_adr = ARRAY_SIZE(rt711_sdca_0_adr), 186eeb9f9f7SPierre-Louis Bossart .adr_d = rt711_sdca_0_adr, 187eeb9f9f7SPierre-Louis Bossart }, 188eeb9f9f7SPierre-Louis Bossart { 189eeb9f9f7SPierre-Louis Bossart .mask = BIT(1), 190eeb9f9f7SPierre-Louis Bossart .num_adr = ARRAY_SIZE(rt1316_1_group1_adr), 191eeb9f9f7SPierre-Louis Bossart .adr_d = rt1316_1_group1_adr, 192eeb9f9f7SPierre-Louis Bossart }, 193eeb9f9f7SPierre-Louis Bossart { 194eeb9f9f7SPierre-Louis Bossart .mask = BIT(2), 195eeb9f9f7SPierre-Louis Bossart .num_adr = ARRAY_SIZE(rt1316_2_group1_adr), 196eeb9f9f7SPierre-Louis Bossart .adr_d = rt1316_2_group1_adr, 197eeb9f9f7SPierre-Louis Bossart }, 198eeb9f9f7SPierre-Louis Bossart { 199eeb9f9f7SPierre-Louis Bossart .mask = BIT(3), 200eeb9f9f7SPierre-Louis Bossart .num_adr = ARRAY_SIZE(rt714_3_adr), 201eeb9f9f7SPierre-Louis Bossart .adr_d = rt714_3_adr, 202eeb9f9f7SPierre-Louis Bossart }, 203eeb9f9f7SPierre-Louis Bossart {} 204eeb9f9f7SPierre-Louis Bossart }; 205eeb9f9f7SPierre-Louis Bossart 20697b5fbf4SGongjun Song static const struct snd_soc_acpi_link_adr rpl_sdw_rt711_link2_rt1316_link01_rt714_link3[] = { 20797b5fbf4SGongjun Song { 20897b5fbf4SGongjun Song .mask = BIT(2), 20997b5fbf4SGongjun Song .num_adr = ARRAY_SIZE(rt711_sdca_2_adr), 21097b5fbf4SGongjun Song .adr_d = rt711_sdca_2_adr, 21197b5fbf4SGongjun Song }, 21297b5fbf4SGongjun Song { 21397b5fbf4SGongjun Song .mask = BIT(0), 21497b5fbf4SGongjun Song .num_adr = ARRAY_SIZE(rt1316_0_group2_adr), 21597b5fbf4SGongjun Song .adr_d = rt1316_0_group2_adr, 21697b5fbf4SGongjun Song }, 21797b5fbf4SGongjun Song { 21897b5fbf4SGongjun Song .mask = BIT(1), 21997b5fbf4SGongjun Song .num_adr = ARRAY_SIZE(rt1316_1_group2_adr), 22097b5fbf4SGongjun Song .adr_d = rt1316_1_group2_adr, 22197b5fbf4SGongjun Song }, 22297b5fbf4SGongjun Song { 22397b5fbf4SGongjun Song .mask = BIT(3), 22497b5fbf4SGongjun Song .num_adr = ARRAY_SIZE(rt714_3_adr), 22597b5fbf4SGongjun Song .adr_d = rt714_3_adr, 22697b5fbf4SGongjun Song }, 22797b5fbf4SGongjun Song {} 22897b5fbf4SGongjun Song }; 22997b5fbf4SGongjun Song 230896c3dc2SGongjun Song static const struct snd_soc_acpi_link_adr rpl_sdw_rt711_link2_rt1316_link01[] = { 231896c3dc2SGongjun Song { 232896c3dc2SGongjun Song .mask = BIT(2), 233896c3dc2SGongjun Song .num_adr = ARRAY_SIZE(rt711_sdca_2_adr), 234896c3dc2SGongjun Song .adr_d = rt711_sdca_2_adr, 235896c3dc2SGongjun Song }, 236896c3dc2SGongjun Song { 237896c3dc2SGongjun Song .mask = BIT(0), 238896c3dc2SGongjun Song .num_adr = ARRAY_SIZE(rt1316_0_group2_adr), 239896c3dc2SGongjun Song .adr_d = rt1316_0_group2_adr, 240896c3dc2SGongjun Song }, 241896c3dc2SGongjun Song { 242896c3dc2SGongjun Song .mask = BIT(1), 243896c3dc2SGongjun Song .num_adr = ARRAY_SIZE(rt1316_1_group2_adr), 244896c3dc2SGongjun Song .adr_d = rt1316_1_group2_adr, 245896c3dc2SGongjun Song }, 246896c3dc2SGongjun Song {} 247896c3dc2SGongjun Song }; 248896c3dc2SGongjun Song 2490050e3d3SGongjun Song static const struct snd_soc_acpi_link_adr rpl_sdw_rt711_link0_rt1318_link12_rt714_link3[] = { 2500050e3d3SGongjun Song { 2510050e3d3SGongjun Song .mask = BIT(0), 2520050e3d3SGongjun Song .num_adr = ARRAY_SIZE(rt711_sdca_0_adr), 2530050e3d3SGongjun Song .adr_d = rt711_sdca_0_adr, 2540050e3d3SGongjun Song }, 2550050e3d3SGongjun Song { 2560050e3d3SGongjun Song .mask = BIT(1), 2570050e3d3SGongjun Song .num_adr = ARRAY_SIZE(rt1318_1_group1_adr), 2580050e3d3SGongjun Song .adr_d = rt1318_1_group1_adr, 2590050e3d3SGongjun Song }, 2600050e3d3SGongjun Song { 2610050e3d3SGongjun Song .mask = BIT(2), 2620050e3d3SGongjun Song .num_adr = ARRAY_SIZE(rt1318_2_group1_adr), 2630050e3d3SGongjun Song .adr_d = rt1318_2_group1_adr, 2640050e3d3SGongjun Song }, 2650050e3d3SGongjun Song { 2660050e3d3SGongjun Song .mask = BIT(3), 2670050e3d3SGongjun Song .num_adr = ARRAY_SIZE(rt714_3_adr), 2680050e3d3SGongjun Song .adr_d = rt714_3_adr, 2690050e3d3SGongjun Song }, 2700050e3d3SGongjun Song {} 2710050e3d3SGongjun Song }; 2720050e3d3SGongjun Song 273b25a31b4SGongjun Song static const struct snd_soc_acpi_link_adr rpl_sdw_rt711_link0_rt1318_link12[] = { 274b25a31b4SGongjun Song { 275b25a31b4SGongjun Song .mask = BIT(0), 276b25a31b4SGongjun Song .num_adr = ARRAY_SIZE(rt711_sdca_0_adr), 277b25a31b4SGongjun Song .adr_d = rt711_sdca_0_adr, 278b25a31b4SGongjun Song }, 279b25a31b4SGongjun Song { 280b25a31b4SGongjun Song .mask = BIT(1), 281b25a31b4SGongjun Song .num_adr = ARRAY_SIZE(rt1318_1_group1_adr), 282b25a31b4SGongjun Song .adr_d = rt1318_1_group1_adr, 283b25a31b4SGongjun Song }, 284b25a31b4SGongjun Song { 285b25a31b4SGongjun Song .mask = BIT(2), 286b25a31b4SGongjun Song .num_adr = ARRAY_SIZE(rt1318_2_group1_adr), 287b25a31b4SGongjun Song .adr_d = rt1318_2_group1_adr, 288b25a31b4SGongjun Song }, 289b25a31b4SGongjun Song {} 290b25a31b4SGongjun Song }; 291b25a31b4SGongjun Song 29255fc0344SGongjun Song static const struct snd_soc_acpi_link_adr rpl_sdw_rt1316_link12_rt714_link0[] = { 29355fc0344SGongjun Song { 29455fc0344SGongjun Song .mask = BIT(1), 29555fc0344SGongjun Song .num_adr = ARRAY_SIZE(rt1316_1_group1_adr), 29655fc0344SGongjun Song .adr_d = rt1316_1_group1_adr, 29755fc0344SGongjun Song }, 29855fc0344SGongjun Song { 29955fc0344SGongjun Song .mask = BIT(2), 30055fc0344SGongjun Song .num_adr = ARRAY_SIZE(rt1316_2_group1_adr), 30155fc0344SGongjun Song .adr_d = rt1316_2_group1_adr, 30255fc0344SGongjun Song }, 30355fc0344SGongjun Song { 30455fc0344SGongjun Song .mask = BIT(0), 30555fc0344SGongjun Song .num_adr = ARRAY_SIZE(rt714_0_adr), 30655fc0344SGongjun Song .adr_d = rt714_0_adr, 30755fc0344SGongjun Song }, 30855fc0344SGongjun Song {} 30955fc0344SGongjun Song }; 31055fc0344SGongjun Song 311f5460a15Sapoorv static const struct snd_soc_acpi_link_adr rplp_crb[] = { 312f5460a15Sapoorv { 313f5460a15Sapoorv .mask = BIT(2), 314f5460a15Sapoorv .num_adr = ARRAY_SIZE(rt711_sdca_2_adr), 315f5460a15Sapoorv .adr_d = rt711_sdca_2_adr, 316f5460a15Sapoorv }, 317f5460a15Sapoorv {} 318f5460a15Sapoorv }; 319f5460a15Sapoorv 320a7fe7e24SCurtis Malainey static const struct snd_soc_acpi_codecs rpl_rt5682_hp = { 321a7fe7e24SCurtis Malainey .num_codecs = 2, 322a7fe7e24SCurtis Malainey .codecs = {"10EC5682", "RTL5682"}, 323a7fe7e24SCurtis Malainey }; 324a7fe7e24SCurtis Malainey 325a7fe7e24SCurtis Malainey static const struct snd_soc_acpi_codecs rpl_max98360a_amp = { 326a7fe7e24SCurtis Malainey .num_codecs = 1, 327a7fe7e24SCurtis Malainey .codecs = {"MX98360A"}, 328a7fe7e24SCurtis Malainey }; 329a7fe7e24SCurtis Malainey 3308899672fSTerry Cheong static const struct snd_soc_acpi_codecs rpl_max98373_amp = { 3318899672fSTerry Cheong .num_codecs = 1, 3328899672fSTerry Cheong .codecs = {"MX98373"} 3338899672fSTerry Cheong }; 3348899672fSTerry Cheong 335*5dc51e50STerry Cheong static const struct snd_soc_acpi_codecs rpl_rt1019p_amp = { 336*5dc51e50STerry Cheong .num_codecs = 1, 337*5dc51e50STerry Cheong .codecs = {"RTL1019"} 338*5dc51e50STerry Cheong }; 339*5dc51e50STerry Cheong 3405f3db54cSKai Vehmanen struct snd_soc_acpi_mach snd_soc_acpi_intel_rpl_machines[] = { 341a7fe7e24SCurtis Malainey { 342a7fe7e24SCurtis Malainey .comp_ids = &rpl_rt5682_hp, 343a7fe7e24SCurtis Malainey .drv_name = "rpl_mx98360_rt5682", 344a7fe7e24SCurtis Malainey .machine_quirk = snd_soc_acpi_codec_list, 345a7fe7e24SCurtis Malainey .quirk_data = &rpl_max98360a_amp, 346a7fe7e24SCurtis Malainey .sof_tplg_filename = "sof-rpl-max98360a-rt5682.tplg", 347a7fe7e24SCurtis Malainey }, 3488899672fSTerry Cheong { 3498899672fSTerry Cheong .id = "10508825", 3508899672fSTerry Cheong .drv_name = "rpl_max98373_8825", 3518899672fSTerry Cheong .machine_quirk = snd_soc_acpi_codec_list, 3528899672fSTerry Cheong .quirk_data = &rpl_max98373_amp, 3538899672fSTerry Cheong .sof_tplg_filename = "sof-rpl-max98373-nau8825.tplg", 3548899672fSTerry Cheong }, 355*5dc51e50STerry Cheong { 356*5dc51e50STerry Cheong .comp_ids = &rpl_rt5682_hp, 357*5dc51e50STerry Cheong .drv_name = "rpl_rt1019_rt5682", 358*5dc51e50STerry Cheong .machine_quirk = snd_soc_acpi_codec_list, 359*5dc51e50STerry Cheong .quirk_data = &rpl_rt1019p_amp, 360*5dc51e50STerry Cheong .sof_tplg_filename = "sof-rpl-rt1019-rt5682.tplg", 361*5dc51e50STerry Cheong }, 3625f3db54cSKai Vehmanen {}, 3635f3db54cSKai Vehmanen }; 3645f3db54cSKai Vehmanen EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_rpl_machines); 3655f3db54cSKai Vehmanen 3665f3db54cSKai Vehmanen /* this table is used when there is no I2S codec present */ 3675f3db54cSKai Vehmanen struct snd_soc_acpi_mach snd_soc_acpi_intel_rpl_sdw_machines[] = { 3685f3db54cSKai Vehmanen { 369e7ff7307SBard Liao .link_mask = 0xF, /* 4 active links required */ 370e7ff7307SBard Liao .links = rpl_sdca_3_in_1, 371e7ff7307SBard Liao .drv_name = "sof_sdw", 372e7ff7307SBard Liao .sof_tplg_filename = "sof-rpl-rt711-l0-rt1316-l13-rt714-l2.tplg", 373e7ff7307SBard Liao }, 374e7ff7307SBard Liao { 37597b5fbf4SGongjun Song .link_mask = 0xF, /* 4 active links required */ 37697b5fbf4SGongjun Song .links = rpl_sdw_rt711_link2_rt1316_link01_rt714_link3, 37797b5fbf4SGongjun Song .drv_name = "sof_sdw", 37897b5fbf4SGongjun Song .sof_tplg_filename = "sof-rpl-rt711-l2-rt1316-l01-rt714-l3.tplg", 37997b5fbf4SGongjun Song }, 38097b5fbf4SGongjun Song { 3810050e3d3SGongjun Song .link_mask = 0xF, /* 4 active links required */ 382eeb9f9f7SPierre-Louis Bossart .links = rpl_sdw_rt711_link0_rt1316_link12_rt714_link3, 383eeb9f9f7SPierre-Louis Bossart .drv_name = "sof_sdw", 384eeb9f9f7SPierre-Louis Bossart .sof_tplg_filename = "sof-rpl-rt711-l0-rt1316-l12-rt714-l3.tplg", 385eeb9f9f7SPierre-Louis Bossart }, 386eeb9f9f7SPierre-Louis Bossart { 387eeb9f9f7SPierre-Louis Bossart .link_mask = 0xF, /* 4 active links required */ 3880050e3d3SGongjun Song .links = rpl_sdw_rt711_link0_rt1318_link12_rt714_link3, 3890050e3d3SGongjun Song .drv_name = "sof_sdw", 3900050e3d3SGongjun Song .sof_tplg_filename = "sof-rpl-rt711-l0-rt1318-l12-rt714-l3.tplg", 3910050e3d3SGongjun Song }, 3920050e3d3SGongjun Song { 393b25a31b4SGongjun Song .link_mask = 0x7, /* rt711 on link0 & two rt1318s on link1 and link2 */ 394b25a31b4SGongjun Song .links = rpl_sdw_rt711_link0_rt1318_link12, 395b25a31b4SGongjun Song .drv_name = "sof_sdw", 396b25a31b4SGongjun Song .sof_tplg_filename = "sof-rpl-rt711-l0-rt1318-l12.tplg", 397b25a31b4SGongjun Song }, 398b25a31b4SGongjun Song { 39955fc0344SGongjun Song .link_mask = 0x7, /* rt714 on link0 & two rt1316s on link1 and link2 */ 40055fc0344SGongjun Song .links = rpl_sdw_rt1316_link12_rt714_link0, 40155fc0344SGongjun Song .drv_name = "sof_sdw", 40255fc0344SGongjun Song .sof_tplg_filename = "sof-rpl-rt1316-l12-rt714-l0.tplg", 40355fc0344SGongjun Song }, 40455fc0344SGongjun Song { 405896c3dc2SGongjun Song .link_mask = 0x7, /* rt711 on link2 & two rt1316s on link0 and link1 */ 406896c3dc2SGongjun Song .links = rpl_sdw_rt711_link2_rt1316_link01, 407896c3dc2SGongjun Song .drv_name = "sof_sdw", 408896c3dc2SGongjun Song .sof_tplg_filename = "sof-rpl-rt711-l2-rt1316-l01.tplg", 409896c3dc2SGongjun Song }, 410896c3dc2SGongjun Song { 4115f3db54cSKai Vehmanen .link_mask = 0x1, /* link0 required */ 4125f3db54cSKai Vehmanen .links = rpl_rvp, 4135f3db54cSKai Vehmanen .drv_name = "sof_sdw", 414f5460a15Sapoorv .sof_tplg_filename = "sof-rpl-rt711-l0.tplg", 415f5460a15Sapoorv }, 416f5460a15Sapoorv { 417f5460a15Sapoorv .link_mask = 0x4, /* link2 required */ 418f5460a15Sapoorv .links = rplp_crb, 419f5460a15Sapoorv .drv_name = "sof_sdw", 420f5460a15Sapoorv .sof_tplg_filename = "sof-rpl-rt711-l2.tplg", 4215f3db54cSKai Vehmanen }, 4225f3db54cSKai Vehmanen {}, 4235f3db54cSKai Vehmanen }; 4245f3db54cSKai Vehmanen EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_rpl_sdw_machines); 425