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 311e63e2810SBalamurugan C static const struct snd_soc_acpi_link_adr rpl_sdca_rvp[] = { 312e63e2810SBalamurugan C { 313e63e2810SBalamurugan C .mask = BIT(0), 314e63e2810SBalamurugan C .num_adr = ARRAY_SIZE(rt711_sdca_0_adr), 315e63e2810SBalamurugan C .adr_d = rt711_sdca_0_adr, 316e63e2810SBalamurugan C }, 317e63e2810SBalamurugan C {} 318e63e2810SBalamurugan C }; 319e63e2810SBalamurugan C 320f5460a15Sapoorv static const struct snd_soc_acpi_link_adr rplp_crb[] = { 321f5460a15Sapoorv { 322f5460a15Sapoorv .mask = BIT(2), 323f5460a15Sapoorv .num_adr = ARRAY_SIZE(rt711_sdca_2_adr), 324f5460a15Sapoorv .adr_d = rt711_sdca_2_adr, 325f5460a15Sapoorv }, 326f5460a15Sapoorv {} 327f5460a15Sapoorv }; 328f5460a15Sapoorv 329a7fe7e24SCurtis Malainey static const struct snd_soc_acpi_codecs rpl_rt5682_hp = { 330a7fe7e24SCurtis Malainey .num_codecs = 2, 331a7fe7e24SCurtis Malainey .codecs = {"10EC5682", "RTL5682"}, 332a7fe7e24SCurtis Malainey }; 333a7fe7e24SCurtis Malainey 334fc8b9d05SBalamurugan C static const struct snd_soc_acpi_codecs rpl_essx_83x6 = { 335fc8b9d05SBalamurugan C .num_codecs = 3, 336fc8b9d05SBalamurugan C .codecs = { "ESSX8316", "ESSX8326", "ESSX8336"}, 337fc8b9d05SBalamurugan C }; 338fc8b9d05SBalamurugan C 33926d9726fSTerry Cheong static const struct snd_soc_acpi_codecs rpl_max98357a_amp = { 34026d9726fSTerry Cheong .num_codecs = 1, 34126d9726fSTerry Cheong .codecs = {"MX98357A"} 34226d9726fSTerry Cheong }; 34326d9726fSTerry Cheong 344a7fe7e24SCurtis Malainey static const struct snd_soc_acpi_codecs rpl_max98360a_amp = { 345a7fe7e24SCurtis Malainey .num_codecs = 1, 346a7fe7e24SCurtis Malainey .codecs = {"MX98360A"}, 347a7fe7e24SCurtis Malainey }; 348a7fe7e24SCurtis Malainey 3498899672fSTerry Cheong static const struct snd_soc_acpi_codecs rpl_max98373_amp = { 3508899672fSTerry Cheong .num_codecs = 1, 3518899672fSTerry Cheong .codecs = {"MX98373"} 3528899672fSTerry Cheong }; 3538899672fSTerry Cheong 3545dc51e50STerry Cheong static const struct snd_soc_acpi_codecs rpl_lt6911_hdmi = { 3555dc51e50STerry Cheong .num_codecs = 1, 3565dc51e50STerry Cheong .codecs = {"INTC10B0"} 3575dc51e50STerry Cheong }; 3585dc51e50STerry Cheong 359fbc82c01SBalamurugan C static const struct snd_soc_acpi_codecs rpl_nau8318_amp = { 360fbc82c01SBalamurugan C .num_codecs = 1, 361fbc82c01SBalamurugan C .codecs = {"NVTN2012"} 362fbc82c01SBalamurugan C }; 363fbc82c01SBalamurugan C 3645f3db54cSKai Vehmanen static const struct snd_soc_acpi_codecs rpl_rt1019p_amp = { 365a7fe7e24SCurtis Malainey .num_codecs = 1, 366a7fe7e24SCurtis Malainey .codecs = {"RTL1019"} 36726d9726fSTerry Cheong }; 36826d9726fSTerry Cheong 36926d9726fSTerry Cheong struct snd_soc_acpi_mach snd_soc_acpi_intel_rpl_machines[] = { 37026d9726fSTerry Cheong { 37126d9726fSTerry Cheong .comp_ids = &rpl_rt5682_hp, 37226d9726fSTerry Cheong .drv_name = "rpl_mx98357_rt5682", 37326d9726fSTerry Cheong .machine_quirk = snd_soc_acpi_codec_list, 374a7fe7e24SCurtis Malainey .quirk_data = &rpl_max98357a_amp, 375a7fe7e24SCurtis Malainey .sof_tplg_filename = "sof-rpl-max98357a-rt5682.tplg", 376a7fe7e24SCurtis Malainey }, 377a7fe7e24SCurtis Malainey { 378a7fe7e24SCurtis Malainey .comp_ids = &rpl_rt5682_hp, 3798899672fSTerry Cheong .drv_name = "rpl_mx98360_rt5682", 3808899672fSTerry Cheong .machine_quirk = snd_soc_acpi_codec_list, 3818899672fSTerry Cheong .quirk_data = &rpl_max98360a_amp, 3828899672fSTerry Cheong .sof_tplg_filename = "sof-rpl-max98360a-rt5682.tplg", 3838899672fSTerry Cheong }, 3848899672fSTerry Cheong { 3858899672fSTerry Cheong .id = "10508825", 3865dc51e50STerry Cheong .drv_name = "rpl_max98373_8825", 3875dc51e50STerry Cheong .machine_quirk = snd_soc_acpi_codec_list, 3885dc51e50STerry Cheong .quirk_data = &rpl_max98373_amp, 3895dc51e50STerry Cheong .sof_tplg_filename = "sof-rpl-max98373-nau8825.tplg", 3905dc51e50STerry Cheong }, 3915dc51e50STerry Cheong { 3925dc51e50STerry Cheong .id = "10508825", 393fc8b9d05SBalamurugan C .drv_name = "rpl_nau8318_8825", 394fc8b9d05SBalamurugan C .machine_quirk = snd_soc_acpi_codec_list, 395fbc82c01SBalamurugan C .quirk_data = &rpl_nau8318_amp, 396fbc82c01SBalamurugan C .sof_tplg_filename = "sof-rpl-nau8318-nau8825.tplg", 397fbc82c01SBalamurugan C }, 398fbc82c01SBalamurugan C { 399fbc82c01SBalamurugan C .comp_ids = &rpl_rt5682_hp, 400fbc82c01SBalamurugan C .drv_name = "rpl_rt1019_rt5682", 401fbc82c01SBalamurugan C .machine_quirk = snd_soc_acpi_codec_list, 402fc8b9d05SBalamurugan C .quirk_data = &rpl_rt1019p_amp, 403fc8b9d05SBalamurugan C .sof_tplg_filename = "sof-rpl-rt1019-rt5682.tplg", 404fc8b9d05SBalamurugan C }, 405fc8b9d05SBalamurugan C { 406fc8b9d05SBalamurugan C .comp_ids = &rpl_essx_83x6, 407fc8b9d05SBalamurugan C .drv_name = "rpl_es83x6_c1_h02", 408*f7555da7SBalamurugan C .machine_quirk = snd_soc_acpi_codec_list, 409*f7555da7SBalamurugan C .quirk_data = &rpl_lt6911_hdmi, 410*f7555da7SBalamurugan C .sof_tplg_filename = "sof-rpl-es83x6-ssp1-hdmi-ssp02.tplg", 411*f7555da7SBalamurugan C }, 412*f7555da7SBalamurugan C { 4135f3db54cSKai Vehmanen .comp_ids = &rpl_essx_83x6, 4145f3db54cSKai Vehmanen .drv_name = "sof-essx8336", 4155f3db54cSKai Vehmanen .sof_tplg_filename = "sof-rpl-es83x6", /* the tplg suffix is added at run time */ 4165f3db54cSKai Vehmanen .tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER | 4175f3db54cSKai Vehmanen SND_SOC_ACPI_TPLG_INTEL_SSP_MSB | 4185f3db54cSKai Vehmanen SND_SOC_ACPI_TPLG_INTEL_DMIC_NUMBER, 4195f3db54cSKai Vehmanen }, 420e7ff7307SBard Liao { 421e7ff7307SBard Liao .id = "INTC10B0", 422e7ff7307SBard Liao .drv_name = "rpl_lt6911_hdmi_ssp", 423e7ff7307SBard Liao .sof_tplg_filename = "sof-rpl-nocodec-hdmi-ssp02.tplg" 424e7ff7307SBard Liao }, 425e7ff7307SBard Liao {}, 42697b5fbf4SGongjun Song }; 42797b5fbf4SGongjun Song EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_rpl_machines); 42897b5fbf4SGongjun Song 42997b5fbf4SGongjun Song /* this table is used when there is no I2S codec present */ 43097b5fbf4SGongjun Song struct snd_soc_acpi_mach snd_soc_acpi_intel_rpl_sdw_machines[] = { 43197b5fbf4SGongjun Song { 4320050e3d3SGongjun Song .link_mask = 0xF, /* 4 active links required */ 433eeb9f9f7SPierre-Louis Bossart .links = rpl_sdca_3_in_1, 434eeb9f9f7SPierre-Louis Bossart .drv_name = "sof_sdw", 435eeb9f9f7SPierre-Louis Bossart .sof_tplg_filename = "sof-rpl-rt711-l0-rt1316-l13-rt714-l2.tplg", 436eeb9f9f7SPierre-Louis Bossart }, 437eeb9f9f7SPierre-Louis Bossart { 438eeb9f9f7SPierre-Louis Bossart .link_mask = 0xF, /* 4 active links required */ 4390050e3d3SGongjun Song .links = rpl_sdw_rt711_link2_rt1316_link01_rt714_link3, 4400050e3d3SGongjun Song .drv_name = "sof_sdw", 4410050e3d3SGongjun Song .sof_tplg_filename = "sof-rpl-rt711-l2-rt1316-l01-rt714-l3.tplg", 4420050e3d3SGongjun Song }, 4430050e3d3SGongjun Song { 444b25a31b4SGongjun Song .link_mask = 0xF, /* 4 active links required */ 445b25a31b4SGongjun Song .links = rpl_sdw_rt711_link0_rt1316_link12_rt714_link3, 446b25a31b4SGongjun Song .drv_name = "sof_sdw", 447b25a31b4SGongjun Song .sof_tplg_filename = "sof-rpl-rt711-l0-rt1316-l12-rt714-l3.tplg", 448b25a31b4SGongjun Song }, 449b25a31b4SGongjun Song { 45055fc0344SGongjun Song .link_mask = 0xF, /* 4 active links required */ 45155fc0344SGongjun Song .links = rpl_sdw_rt711_link0_rt1318_link12_rt714_link3, 45255fc0344SGongjun Song .drv_name = "sof_sdw", 45355fc0344SGongjun Song .sof_tplg_filename = "sof-rpl-rt711-l0-rt1318-l12-rt714-l3.tplg", 45455fc0344SGongjun Song }, 45555fc0344SGongjun Song { 456896c3dc2SGongjun Song .link_mask = 0x7, /* rt711 on link0 & two rt1318s on link1 and link2 */ 457896c3dc2SGongjun Song .links = rpl_sdw_rt711_link0_rt1318_link12, 458896c3dc2SGongjun Song .drv_name = "sof_sdw", 459896c3dc2SGongjun Song .sof_tplg_filename = "sof-rpl-rt711-l0-rt1318-l12.tplg", 460896c3dc2SGongjun Song }, 461896c3dc2SGongjun Song { 4625f3db54cSKai Vehmanen .link_mask = 0x7, /* rt714 on link0 & two rt1316s on link1 and link2 */ 4635f3db54cSKai Vehmanen .links = rpl_sdw_rt1316_link12_rt714_link0, 4645f3db54cSKai Vehmanen .drv_name = "sof_sdw", 465f5460a15Sapoorv .sof_tplg_filename = "sof-rpl-rt1316-l12-rt714-l0.tplg", 466f5460a15Sapoorv }, 467f5460a15Sapoorv { 468e63e2810SBalamurugan C .link_mask = 0x7, /* rt711 on link2 & two rt1316s on link0 and link1 */ 469e63e2810SBalamurugan C .links = rpl_sdw_rt711_link2_rt1316_link01, 470e63e2810SBalamurugan C .drv_name = "sof_sdw", 471e63e2810SBalamurugan C .sof_tplg_filename = "sof-rpl-rt711-l2-rt1316-l01.tplg", 472e63e2810SBalamurugan C }, 473e63e2810SBalamurugan C { 474f5460a15Sapoorv .link_mask = 0x1, /* link0 required */ 475f5460a15Sapoorv .links = rpl_rvp, 476f5460a15Sapoorv .drv_name = "sof_sdw", 477f5460a15Sapoorv .sof_tplg_filename = "sof-rpl-rt711-l0.tplg", 4785f3db54cSKai Vehmanen }, 4795f3db54cSKai Vehmanen { 4805f3db54cSKai Vehmanen .link_mask = 0x1, /* link0 required */ 4815f3db54cSKai Vehmanen .links = rpl_sdca_rvp, 482 .drv_name = "sof_sdw", 483 .sof_tplg_filename = "sof-rpl-rt711-l0.tplg", 484 }, 485 { 486 .link_mask = 0x4, /* link2 required */ 487 .links = rplp_crb, 488 .drv_name = "sof_sdw", 489 .sof_tplg_filename = "sof-rpl-rt711-l2.tplg", 490 }, 491 {}, 492 }; 493 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_rpl_sdw_machines); 494