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 354fbc82c01SBalamurugan C static const struct snd_soc_acpi_codecs rpl_lt6911_hdmi = { 3555dc51e50STerry Cheong .num_codecs = 1, 356fbc82c01SBalamurugan C .codecs = {"INTC10B0"} 3575dc51e50STerry Cheong }; 3585dc51e50STerry Cheong 359273bc8bfSAjye Huang static const struct snd_soc_acpi_codecs rpl_nau8318_amp = { 360273bc8bfSAjye Huang .num_codecs = 1, 361273bc8bfSAjye Huang .codecs = {"NVTN2012"} 362273bc8bfSAjye Huang }; 363273bc8bfSAjye Huang 364*63e04102SMark Brown static const struct snd_soc_acpi_codecs rpl_rt1019p_amp = { 365*63e04102SMark Brown .num_codecs = 1, 366*63e04102SMark Brown .codecs = {"RTL1019"} 367*63e04102SMark Brown }; 368*63e04102SMark Brown 3695f3db54cSKai Vehmanen struct snd_soc_acpi_mach snd_soc_acpi_intel_rpl_machines[] = { 370a7fe7e24SCurtis Malainey { 371a7fe7e24SCurtis Malainey .comp_ids = &rpl_rt5682_hp, 37226d9726fSTerry Cheong .drv_name = "rpl_mx98357_rt5682", 37326d9726fSTerry Cheong .machine_quirk = snd_soc_acpi_codec_list, 37426d9726fSTerry Cheong .quirk_data = &rpl_max98357a_amp, 37526d9726fSTerry Cheong .sof_tplg_filename = "sof-rpl-max98357a-rt5682.tplg", 37626d9726fSTerry Cheong }, 37726d9726fSTerry Cheong { 37826d9726fSTerry Cheong .comp_ids = &rpl_rt5682_hp, 379a7fe7e24SCurtis Malainey .drv_name = "rpl_mx98360_rt5682", 380a7fe7e24SCurtis Malainey .machine_quirk = snd_soc_acpi_codec_list, 381a7fe7e24SCurtis Malainey .quirk_data = &rpl_max98360a_amp, 382a7fe7e24SCurtis Malainey .sof_tplg_filename = "sof-rpl-max98360a-rt5682.tplg", 383a7fe7e24SCurtis Malainey }, 3848899672fSTerry Cheong { 3858899672fSTerry Cheong .id = "10508825", 3868899672fSTerry Cheong .drv_name = "rpl_max98373_8825", 3878899672fSTerry Cheong .machine_quirk = snd_soc_acpi_codec_list, 3888899672fSTerry Cheong .quirk_data = &rpl_max98373_amp, 3898899672fSTerry Cheong .sof_tplg_filename = "sof-rpl-max98373-nau8825.tplg", 3908899672fSTerry Cheong }, 3915dc51e50STerry Cheong { 392273bc8bfSAjye Huang .id = "10508825", 393273bc8bfSAjye Huang .drv_name = "rpl_nau8318_8825", 394273bc8bfSAjye Huang .machine_quirk = snd_soc_acpi_codec_list, 395273bc8bfSAjye Huang .quirk_data = &rpl_nau8318_amp, 396273bc8bfSAjye Huang .sof_tplg_filename = "sof-rpl-nau8318-nau8825.tplg", 397273bc8bfSAjye Huang }, 398273bc8bfSAjye Huang { 3995dc51e50STerry Cheong .comp_ids = &rpl_rt5682_hp, 4005dc51e50STerry Cheong .drv_name = "rpl_rt1019_rt5682", 4015dc51e50STerry Cheong .machine_quirk = snd_soc_acpi_codec_list, 4025dc51e50STerry Cheong .quirk_data = &rpl_rt1019p_amp, 4035dc51e50STerry Cheong .sof_tplg_filename = "sof-rpl-rt1019-rt5682.tplg", 4045dc51e50STerry Cheong }, 405fc8b9d05SBalamurugan C { 406fc8b9d05SBalamurugan C .comp_ids = &rpl_essx_83x6, 407fbc82c01SBalamurugan C .drv_name = "rpl_es83x6_c1_h02", 408fbc82c01SBalamurugan C .machine_quirk = snd_soc_acpi_codec_list, 409fbc82c01SBalamurugan C .quirk_data = &rpl_lt6911_hdmi, 410fbc82c01SBalamurugan C .sof_tplg_filename = "sof-rpl-es83x6-ssp1-hdmi-ssp02.tplg", 411fbc82c01SBalamurugan C }, 412fbc82c01SBalamurugan C { 413fbc82c01SBalamurugan C .comp_ids = &rpl_essx_83x6, 414fc8b9d05SBalamurugan C .drv_name = "sof-essx8336", 415fc8b9d05SBalamurugan C .sof_tplg_filename = "sof-rpl-es83x6", /* the tplg suffix is added at run time */ 416fc8b9d05SBalamurugan C .tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER | 417fc8b9d05SBalamurugan C SND_SOC_ACPI_TPLG_INTEL_SSP_MSB | 418fc8b9d05SBalamurugan C SND_SOC_ACPI_TPLG_INTEL_DMIC_NUMBER, 419fc8b9d05SBalamurugan C }, 420f7555da7SBalamurugan C { 421f7555da7SBalamurugan C .id = "INTC10B0", 422f7555da7SBalamurugan C .drv_name = "rpl_lt6911_hdmi_ssp", 423f7555da7SBalamurugan C .sof_tplg_filename = "sof-rpl-nocodec-hdmi-ssp02.tplg" 424f7555da7SBalamurugan C }, 4255f3db54cSKai Vehmanen {}, 4265f3db54cSKai Vehmanen }; 4275f3db54cSKai Vehmanen EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_rpl_machines); 4285f3db54cSKai Vehmanen 4295f3db54cSKai Vehmanen /* this table is used when there is no I2S codec present */ 4305f3db54cSKai Vehmanen struct snd_soc_acpi_mach snd_soc_acpi_intel_rpl_sdw_machines[] = { 4315f3db54cSKai Vehmanen { 432e7ff7307SBard Liao .link_mask = 0xF, /* 4 active links required */ 433e7ff7307SBard Liao .links = rpl_sdca_3_in_1, 434e7ff7307SBard Liao .drv_name = "sof_sdw", 435e7ff7307SBard Liao .sof_tplg_filename = "sof-rpl-rt711-l0-rt1316-l13-rt714-l2.tplg", 436e7ff7307SBard Liao }, 437e7ff7307SBard Liao { 43897b5fbf4SGongjun Song .link_mask = 0xF, /* 4 active links required */ 43997b5fbf4SGongjun Song .links = rpl_sdw_rt711_link2_rt1316_link01_rt714_link3, 44097b5fbf4SGongjun Song .drv_name = "sof_sdw", 44197b5fbf4SGongjun Song .sof_tplg_filename = "sof-rpl-rt711-l2-rt1316-l01-rt714-l3.tplg", 44297b5fbf4SGongjun Song }, 44397b5fbf4SGongjun Song { 4440050e3d3SGongjun Song .link_mask = 0xF, /* 4 active links required */ 445eeb9f9f7SPierre-Louis Bossart .links = rpl_sdw_rt711_link0_rt1316_link12_rt714_link3, 446eeb9f9f7SPierre-Louis Bossart .drv_name = "sof_sdw", 447eeb9f9f7SPierre-Louis Bossart .sof_tplg_filename = "sof-rpl-rt711-l0-rt1316-l12-rt714-l3.tplg", 448eeb9f9f7SPierre-Louis Bossart }, 449eeb9f9f7SPierre-Louis Bossart { 450eeb9f9f7SPierre-Louis Bossart .link_mask = 0xF, /* 4 active links required */ 4510050e3d3SGongjun Song .links = rpl_sdw_rt711_link0_rt1318_link12_rt714_link3, 4520050e3d3SGongjun Song .drv_name = "sof_sdw", 4530050e3d3SGongjun Song .sof_tplg_filename = "sof-rpl-rt711-l0-rt1318-l12-rt714-l3.tplg", 4540050e3d3SGongjun Song }, 4550050e3d3SGongjun Song { 456b25a31b4SGongjun Song .link_mask = 0x7, /* rt711 on link0 & two rt1318s on link1 and link2 */ 457b25a31b4SGongjun Song .links = rpl_sdw_rt711_link0_rt1318_link12, 458b25a31b4SGongjun Song .drv_name = "sof_sdw", 459b25a31b4SGongjun Song .sof_tplg_filename = "sof-rpl-rt711-l0-rt1318-l12.tplg", 460b25a31b4SGongjun Song }, 461b25a31b4SGongjun Song { 46255fc0344SGongjun Song .link_mask = 0x7, /* rt714 on link0 & two rt1316s on link1 and link2 */ 46355fc0344SGongjun Song .links = rpl_sdw_rt1316_link12_rt714_link0, 46455fc0344SGongjun Song .drv_name = "sof_sdw", 46555fc0344SGongjun Song .sof_tplg_filename = "sof-rpl-rt1316-l12-rt714-l0.tplg", 46655fc0344SGongjun Song }, 46755fc0344SGongjun Song { 468896c3dc2SGongjun Song .link_mask = 0x7, /* rt711 on link2 & two rt1316s on link0 and link1 */ 469896c3dc2SGongjun Song .links = rpl_sdw_rt711_link2_rt1316_link01, 470896c3dc2SGongjun Song .drv_name = "sof_sdw", 471896c3dc2SGongjun Song .sof_tplg_filename = "sof-rpl-rt711-l2-rt1316-l01.tplg", 472896c3dc2SGongjun Song }, 473896c3dc2SGongjun Song { 4745f3db54cSKai Vehmanen .link_mask = 0x1, /* link0 required */ 4755f3db54cSKai Vehmanen .links = rpl_rvp, 4765f3db54cSKai Vehmanen .drv_name = "sof_sdw", 477f5460a15Sapoorv .sof_tplg_filename = "sof-rpl-rt711-l0.tplg", 478f5460a15Sapoorv }, 479f5460a15Sapoorv { 480e63e2810SBalamurugan C .link_mask = 0x1, /* link0 required */ 481e63e2810SBalamurugan C .links = rpl_sdca_rvp, 482e63e2810SBalamurugan C .drv_name = "sof_sdw", 483e63e2810SBalamurugan C .sof_tplg_filename = "sof-rpl-rt711-l0.tplg", 484e63e2810SBalamurugan C }, 485e63e2810SBalamurugan C { 486f5460a15Sapoorv .link_mask = 0x4, /* link2 required */ 487f5460a15Sapoorv .links = rplp_crb, 488f5460a15Sapoorv .drv_name = "sof_sdw", 489f5460a15Sapoorv .sof_tplg_filename = "sof-rpl-rt711-l2.tplg", 4905f3db54cSKai Vehmanen }, 4915f3db54cSKai Vehmanen {}, 4925f3db54cSKai Vehmanen }; 4935f3db54cSKai Vehmanen EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_rpl_sdw_machines); 494