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