111fe58c4SBard Liao // SPDX-License-Identifier: GPL-2.0-only
211fe58c4SBard Liao /*
311fe58c4SBard Liao  * soc-acpi-intel-mtl-match.c - tables and support for MTL ACPI enumeration.
411fe58c4SBard Liao  *
511fe58c4SBard Liao  * Copyright (c) 2022, Intel Corporation.
611fe58c4SBard Liao  *
711fe58c4SBard Liao  */
811fe58c4SBard Liao 
911fe58c4SBard Liao #include <sound/soc-acpi.h>
1011fe58c4SBard Liao #include <sound/soc-acpi-intel-match.h>
1111fe58c4SBard Liao #include "soc-acpi-intel-sdw-mockup-match.h"
1211fe58c4SBard Liao 
131f6645b1SYong Zhi static const struct snd_soc_acpi_codecs mtl_max98357a_amp = {
141f6645b1SYong Zhi 	.num_codecs = 1,
151f6645b1SYong Zhi 	.codecs = {"MX98357A"}
161f6645b1SYong Zhi };
171f6645b1SYong Zhi 
187e43b75dSDharageswari.R static const struct snd_soc_acpi_codecs mtl_max98360a_amp = {
197e43b75dSDharageswari.R 	.num_codecs = 1,
207e43b75dSDharageswari.R 	.codecs = {"MX98360A"}
217e43b75dSDharageswari.R };
227e43b75dSDharageswari.R 
23b20c8137SMac Chiang static const struct snd_soc_acpi_codecs mtl_rt1019p_amp = {
24b20c8137SMac Chiang 	.num_codecs = 1,
25b20c8137SMac Chiang 	.codecs = {"RTL1019"}
26b20c8137SMac Chiang };
27b20c8137SMac Chiang 
281f6645b1SYong Zhi static const struct snd_soc_acpi_codecs mtl_rt5682_rt5682s_hp = {
291f6645b1SYong Zhi 	.num_codecs = 2,
301f6645b1SYong Zhi 	.codecs = {"10EC5682", "RTL5682"},
311f6645b1SYong Zhi };
321f6645b1SYong Zhi 
33381ddcd5SBalamurugan C static const struct snd_soc_acpi_codecs mtl_essx_83x6 = {
34381ddcd5SBalamurugan C 	.num_codecs = 3,
35381ddcd5SBalamurugan C 	.codecs = { "ESSX8316", "ESSX8326", "ESSX8336"},
36381ddcd5SBalamurugan C };
37381ddcd5SBalamurugan C 
38*d1f67278SBalamurugan C static const struct snd_soc_acpi_codecs mtl_lt6911_hdmi = {
39*d1f67278SBalamurugan C 	.num_codecs = 1,
40*d1f67278SBalamurugan C 	.codecs = {"INTC10B0"}
41*d1f67278SBalamurugan C };
42*d1f67278SBalamurugan C 
4311fe58c4SBard Liao struct snd_soc_acpi_mach snd_soc_acpi_intel_mtl_machines[] = {
441f6645b1SYong Zhi 	{
451f6645b1SYong Zhi 		.comp_ids = &mtl_rt5682_rt5682s_hp,
461f6645b1SYong Zhi 		.drv_name = "mtl_mx98357_rt5682",
471f6645b1SYong Zhi 		.machine_quirk = snd_soc_acpi_codec_list,
481f6645b1SYong Zhi 		.quirk_data = &mtl_max98357a_amp,
491f6645b1SYong Zhi 		.sof_tplg_filename = "sof-mtl-max98357a-rt5682.tplg",
501f6645b1SYong Zhi 	},
517e43b75dSDharageswari.R 	{
527e43b75dSDharageswari.R 		.comp_ids = &mtl_rt5682_rt5682s_hp,
537e43b75dSDharageswari.R 		.drv_name = "mtl_mx98360_rt5682",
547e43b75dSDharageswari.R 		.machine_quirk = snd_soc_acpi_codec_list,
557e43b75dSDharageswari.R 		.quirk_data = &mtl_max98360a_amp,
567e43b75dSDharageswari.R 		.sof_tplg_filename = "sof-mtl-max98360a-rt5682.tplg",
577e43b75dSDharageswari.R 	},
58b20c8137SMac Chiang 	{
59b20c8137SMac Chiang 		.comp_ids = &mtl_rt5682_rt5682s_hp,
60b20c8137SMac Chiang 		.drv_name = "mtl_rt1019_rt5682",
61b20c8137SMac Chiang 		.machine_quirk = snd_soc_acpi_codec_list,
62b20c8137SMac Chiang 		.quirk_data = &mtl_rt1019p_amp,
63b20c8137SMac Chiang 		.sof_tplg_filename = "sof-mtl-rt1019-rt5682.tplg",
64b20c8137SMac Chiang 	},
65381ddcd5SBalamurugan C 	{
66381ddcd5SBalamurugan C 		.comp_ids = &mtl_essx_83x6,
67*d1f67278SBalamurugan C 		.drv_name = "mtl_es83x6_c1_h02",
68*d1f67278SBalamurugan C 		.machine_quirk = snd_soc_acpi_codec_list,
69*d1f67278SBalamurugan C 		.quirk_data = &mtl_lt6911_hdmi,
70*d1f67278SBalamurugan C 		.sof_tplg_filename = "sof-mtl-es83x6-ssp1-hdmi-ssp02.tplg",
71*d1f67278SBalamurugan C 	},
72*d1f67278SBalamurugan C 	{
73*d1f67278SBalamurugan C 		.comp_ids = &mtl_essx_83x6,
74381ddcd5SBalamurugan C 		.drv_name = "sof-essx8336",
75381ddcd5SBalamurugan C 		.sof_tplg_filename = "sof-mtl-es8336", /* the tplg suffix is added at run time */
76381ddcd5SBalamurugan C 		.tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER |
77381ddcd5SBalamurugan C 					SND_SOC_ACPI_TPLG_INTEL_SSP_MSB |
78381ddcd5SBalamurugan C 					SND_SOC_ACPI_TPLG_INTEL_DMIC_NUMBER,
79381ddcd5SBalamurugan C 	},
8011fe58c4SBard Liao 	{},
8111fe58c4SBard Liao };
8211fe58c4SBard Liao EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_mtl_machines);
8311fe58c4SBard Liao 
8418489174SYong Zhi static const struct snd_soc_acpi_endpoint single_endpoint = {
8518489174SYong Zhi 	.num = 0,
8618489174SYong Zhi 	.aggregated = 0,
8718489174SYong Zhi 	.group_position = 0,
8818489174SYong Zhi 	.group_id = 0,
8918489174SYong Zhi };
9018489174SYong Zhi 
918dcc2059SYong Zhi static const struct snd_soc_acpi_endpoint spk_l_endpoint = {
928dcc2059SYong Zhi 	.num = 0,
938dcc2059SYong Zhi 	.aggregated = 1,
948dcc2059SYong Zhi 	.group_position = 0,
958dcc2059SYong Zhi 	.group_id = 1,
968dcc2059SYong Zhi };
978dcc2059SYong Zhi 
988dcc2059SYong Zhi static const struct snd_soc_acpi_endpoint spk_r_endpoint = {
998dcc2059SYong Zhi 	.num = 0,
1008dcc2059SYong Zhi 	.aggregated = 1,
1018dcc2059SYong Zhi 	.group_position = 1,
1028dcc2059SYong Zhi 	.group_id = 1,
1038dcc2059SYong Zhi };
1048dcc2059SYong Zhi 
1059efa6f46SBard Liao static const struct snd_soc_acpi_endpoint rt712_endpoints[] = {
1069efa6f46SBard Liao 	{
1079efa6f46SBard Liao 		.num = 0,
1089efa6f46SBard Liao 		.aggregated = 0,
1099efa6f46SBard Liao 		.group_position = 0,
1109efa6f46SBard Liao 		.group_id = 0,
1119efa6f46SBard Liao 	},
1129efa6f46SBard Liao 	{
1139efa6f46SBard Liao 		.num = 1,
1149efa6f46SBard Liao 		.aggregated = 0,
1159efa6f46SBard Liao 		.group_position = 0,
1169efa6f46SBard Liao 		.group_id = 0,
1179efa6f46SBard Liao 	},
1189efa6f46SBard Liao };
1199efa6f46SBard Liao 
12018489174SYong Zhi static const struct snd_soc_acpi_adr_device rt711_sdca_0_adr[] = {
12118489174SYong Zhi 	{
12218489174SYong Zhi 		.adr = 0x000030025D071101ull,
12318489174SYong Zhi 		.num_endpoints = 1,
12418489174SYong Zhi 		.endpoints = &single_endpoint,
12518489174SYong Zhi 		.name_prefix = "rt711"
12618489174SYong Zhi 	}
12718489174SYong Zhi };
12818489174SYong Zhi 
1299efa6f46SBard Liao static const struct snd_soc_acpi_adr_device rt712_0_single_adr[] = {
1309efa6f46SBard Liao 	{
1319efa6f46SBard Liao 		.adr = 0x000030025D071201ull,
1329efa6f46SBard Liao 		.num_endpoints = ARRAY_SIZE(rt712_endpoints),
1339efa6f46SBard Liao 		.endpoints = rt712_endpoints,
1349efa6f46SBard Liao 		.name_prefix = "rt712"
1359efa6f46SBard Liao 	}
1369efa6f46SBard Liao };
1379efa6f46SBard Liao 
1389efa6f46SBard Liao static const struct snd_soc_acpi_adr_device rt1712_3_single_adr[] = {
1399efa6f46SBard Liao 	{
1409efa6f46SBard Liao 		.adr = 0x000330025D171201ull,
1419efa6f46SBard Liao 		.num_endpoints = 1,
1429efa6f46SBard Liao 		.endpoints = &single_endpoint,
1439efa6f46SBard Liao 		.name_prefix = "rt712-dmic"
1449efa6f46SBard Liao 	}
1459efa6f46SBard Liao };
1469efa6f46SBard Liao 
1478dcc2059SYong Zhi static const struct snd_soc_acpi_adr_device mx8373_0_adr[] = {
1488dcc2059SYong Zhi 	{
1498dcc2059SYong Zhi 		.adr = 0x000023019F837300ull,
1508dcc2059SYong Zhi 		.num_endpoints = 1,
1518dcc2059SYong Zhi 		.endpoints = &spk_l_endpoint,
1528dcc2059SYong Zhi 		.name_prefix = "Left"
1538dcc2059SYong Zhi 	},
1548dcc2059SYong Zhi 	{
1558dcc2059SYong Zhi 		.adr = 0x000027019F837300ull,
1568dcc2059SYong Zhi 		.num_endpoints = 1,
1578dcc2059SYong Zhi 		.endpoints = &spk_r_endpoint,
1588dcc2059SYong Zhi 		.name_prefix = "Right"
1598dcc2059SYong Zhi 	}
1608dcc2059SYong Zhi };
1618dcc2059SYong Zhi 
1628dcc2059SYong Zhi static const struct snd_soc_acpi_adr_device rt5682_2_adr[] = {
1638dcc2059SYong Zhi 	{
1648dcc2059SYong Zhi 		.adr = 0x000221025D568200ull,
1658dcc2059SYong Zhi 		.num_endpoints = 1,
1668dcc2059SYong Zhi 		.endpoints = &single_endpoint,
1678dcc2059SYong Zhi 		.name_prefix = "rt5682"
1688dcc2059SYong Zhi 	}
1698dcc2059SYong Zhi };
1708dcc2059SYong Zhi 
171b06e33aaSChao Song static const struct snd_soc_acpi_adr_device rt1316_2_group1_adr[] = {
172b06e33aaSChao Song 	{
173b06e33aaSChao Song 		.adr = 0x000230025D131601ull,
174b06e33aaSChao Song 		.num_endpoints = 1,
175b06e33aaSChao Song 		.endpoints = &spk_l_endpoint,
176b06e33aaSChao Song 		.name_prefix = "rt1316-1"
177b06e33aaSChao Song 	}
178b06e33aaSChao Song };
179b06e33aaSChao Song 
180b06e33aaSChao Song static const struct snd_soc_acpi_adr_device rt1316_3_group1_adr[] = {
181b06e33aaSChao Song 	{
182b06e33aaSChao Song 		.adr = 0x000331025D131601ull,
183b06e33aaSChao Song 		.num_endpoints = 1,
184b06e33aaSChao Song 		.endpoints = &spk_r_endpoint,
185b06e33aaSChao Song 		.name_prefix = "rt1316-2"
186b06e33aaSChao Song 	}
187b06e33aaSChao Song };
188b06e33aaSChao Song 
189fec75606SChao Song static const struct snd_soc_acpi_adr_device rt1318_1_group1_adr[] = {
190fec75606SChao Song 	{
191fec75606SChao Song 		.adr = 0x000130025D131801ull,
192fec75606SChao Song 		.num_endpoints = 1,
193fec75606SChao Song 		.endpoints = &spk_l_endpoint,
194fec75606SChao Song 		.name_prefix = "rt1318-1"
195fec75606SChao Song 	}
196fec75606SChao Song };
197fec75606SChao Song 
198fec75606SChao Song static const struct snd_soc_acpi_adr_device rt1318_2_group1_adr[] = {
199fec75606SChao Song 	{
200fec75606SChao Song 		.adr = 0x000232025D131801ull,
201fec75606SChao Song 		.num_endpoints = 1,
202fec75606SChao Song 		.endpoints = &spk_r_endpoint,
203fec75606SChao Song 		.name_prefix = "rt1318-2"
204fec75606SChao Song 	}
205fec75606SChao Song };
206fec75606SChao Song 
207fec75606SChao Song static const struct snd_soc_acpi_adr_device rt714_0_adr[] = {
208fec75606SChao Song 	{
209fec75606SChao Song 		.adr = 0x000030025D071401ull,
210fec75606SChao Song 		.num_endpoints = 1,
211fec75606SChao Song 		.endpoints = &single_endpoint,
212fec75606SChao Song 		.name_prefix = "rt714"
213fec75606SChao Song 	}
214fec75606SChao Song };
215fec75606SChao Song 
216b06e33aaSChao Song static const struct snd_soc_acpi_adr_device rt714_1_adr[] = {
217b06e33aaSChao Song 	{
218b06e33aaSChao Song 		.adr = 0x000130025D071401ull,
219b06e33aaSChao Song 		.num_endpoints = 1,
220b06e33aaSChao Song 		.endpoints = &single_endpoint,
221b06e33aaSChao Song 		.name_prefix = "rt714"
222b06e33aaSChao Song 	}
223b06e33aaSChao Song };
224b06e33aaSChao Song 
2259efa6f46SBard Liao static const struct snd_soc_acpi_link_adr mtl_712_only[] = {
2269efa6f46SBard Liao 	{
2279efa6f46SBard Liao 		.mask = BIT(0),
2289efa6f46SBard Liao 		.num_adr = ARRAY_SIZE(rt712_0_single_adr),
2299efa6f46SBard Liao 		.adr_d = rt712_0_single_adr,
2309efa6f46SBard Liao 	},
2319efa6f46SBard Liao 	{
2329efa6f46SBard Liao 		.mask = BIT(3),
2339efa6f46SBard Liao 		.num_adr = ARRAY_SIZE(rt1712_3_single_adr),
2349efa6f46SBard Liao 		.adr_d = rt1712_3_single_adr,
2359efa6f46SBard Liao 	},
2369efa6f46SBard Liao 	{}
2379efa6f46SBard Liao };
2389efa6f46SBard Liao 
2398dcc2059SYong Zhi static const struct snd_soc_acpi_link_adr rt5682_link2_max98373_link0[] = {
2408dcc2059SYong Zhi 	/* Expected order: jack -> amp */
2418dcc2059SYong Zhi 	{
2428dcc2059SYong Zhi 		.mask = BIT(2),
2438dcc2059SYong Zhi 		.num_adr = ARRAY_SIZE(rt5682_2_adr),
2448dcc2059SYong Zhi 		.adr_d = rt5682_2_adr,
2458dcc2059SYong Zhi 	},
2468dcc2059SYong Zhi 	{
2478dcc2059SYong Zhi 		.mask = BIT(0),
2488dcc2059SYong Zhi 		.num_adr = ARRAY_SIZE(mx8373_0_adr),
2498dcc2059SYong Zhi 		.adr_d = mx8373_0_adr,
2508dcc2059SYong Zhi 	},
2518dcc2059SYong Zhi 	{}
2528dcc2059SYong Zhi };
2538dcc2059SYong Zhi 
25418489174SYong Zhi static const struct snd_soc_acpi_link_adr mtl_rvp[] = {
25518489174SYong Zhi 	{
25618489174SYong Zhi 		.mask = BIT(0),
25718489174SYong Zhi 		.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),
25818489174SYong Zhi 		.adr_d = rt711_sdca_0_adr,
25918489174SYong Zhi 	},
26018489174SYong Zhi 	{}
26118489174SYong Zhi };
26218489174SYong Zhi 
263b06e33aaSChao Song static const struct snd_soc_acpi_link_adr mtl_3_in_1_sdca[] = {
264b06e33aaSChao Song 	{
265b06e33aaSChao Song 		.mask = BIT(0),
266b06e33aaSChao Song 		.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),
267b06e33aaSChao Song 		.adr_d = rt711_sdca_0_adr,
268b06e33aaSChao Song 	},
269b06e33aaSChao Song 	{
270b06e33aaSChao Song 		.mask = BIT(2),
271b06e33aaSChao Song 		.num_adr = ARRAY_SIZE(rt1316_2_group1_adr),
272b06e33aaSChao Song 		.adr_d = rt1316_2_group1_adr,
273b06e33aaSChao Song 	},
274b06e33aaSChao Song 	{
275b06e33aaSChao Song 		.mask = BIT(3),
276b06e33aaSChao Song 		.num_adr = ARRAY_SIZE(rt1316_3_group1_adr),
277b06e33aaSChao Song 		.adr_d = rt1316_3_group1_adr,
278b06e33aaSChao Song 	},
279b06e33aaSChao Song 	{
280b06e33aaSChao Song 		.mask = BIT(1),
281b06e33aaSChao Song 		.num_adr = ARRAY_SIZE(rt714_1_adr),
282b06e33aaSChao Song 		.adr_d = rt714_1_adr,
283b06e33aaSChao Song 	},
284b06e33aaSChao Song 	{}
285b06e33aaSChao Song };
286b06e33aaSChao Song 
287fec75606SChao Song static const struct snd_soc_acpi_link_adr mtl_sdw_rt1318_l12_rt714_l0[] = {
288fec75606SChao Song 	{
289fec75606SChao Song 		.mask = BIT(1),
290fec75606SChao Song 		.num_adr = ARRAY_SIZE(rt1318_1_group1_adr),
291fec75606SChao Song 		.adr_d = rt1318_1_group1_adr,
292fec75606SChao Song 	},
293fec75606SChao Song 	{
294fec75606SChao Song 		.mask = BIT(2),
295fec75606SChao Song 		.num_adr = ARRAY_SIZE(rt1318_2_group1_adr),
296fec75606SChao Song 		.adr_d = rt1318_2_group1_adr,
297fec75606SChao Song 	},
298fec75606SChao Song 	{
299fec75606SChao Song 		.mask = BIT(0),
300fec75606SChao Song 		.num_adr = ARRAY_SIZE(rt714_0_adr),
301fec75606SChao Song 		.adr_d = rt714_0_adr,
302fec75606SChao Song 	},
303fec75606SChao Song 	{}
304fec75606SChao Song };
305fec75606SChao Song 
306a0503817SUday M Bhat static const struct snd_soc_acpi_adr_device mx8363_2_adr[] = {
307a0503817SUday M Bhat 	{
308a0503817SUday M Bhat 		.adr = 0x000230019F836300ull,
309a0503817SUday M Bhat 		.num_endpoints = 1,
310a0503817SUday M Bhat 		.endpoints = &spk_l_endpoint,
311a0503817SUday M Bhat 		.name_prefix = "Left"
312a0503817SUday M Bhat 	},
313a0503817SUday M Bhat 	{
314a0503817SUday M Bhat 		.adr = 0x000231019F836300ull,
315a0503817SUday M Bhat 		.num_endpoints = 1,
316a0503817SUday M Bhat 		.endpoints = &spk_r_endpoint,
317a0503817SUday M Bhat 		.name_prefix = "Right"
318a0503817SUday M Bhat 	}
319a0503817SUday M Bhat };
320a0503817SUday M Bhat 
321a0503817SUday M Bhat static const struct snd_soc_acpi_adr_device cs42l42_0_adr[] = {
322a0503817SUday M Bhat 	{
323a0503817SUday M Bhat 		.adr = 0x00001001FA424200ull,
324a0503817SUday M Bhat 		.num_endpoints = 1,
325a0503817SUday M Bhat 		.endpoints = &single_endpoint,
326a0503817SUday M Bhat 		.name_prefix = "cs42l42"
327a0503817SUday M Bhat 	}
328a0503817SUday M Bhat };
329a0503817SUday M Bhat 
330a0503817SUday M Bhat static const struct snd_soc_acpi_link_adr cs42l42_link0_max98363_link2[] = {
331a0503817SUday M Bhat 	/* Expected order: jack -> amp */
332a0503817SUday M Bhat 	{
333a0503817SUday M Bhat 		.mask = BIT(0),
334a0503817SUday M Bhat 		.num_adr = ARRAY_SIZE(cs42l42_0_adr),
335a0503817SUday M Bhat 		.adr_d = cs42l42_0_adr,
336a0503817SUday M Bhat 	},
337a0503817SUday M Bhat 	{
338a0503817SUday M Bhat 		.mask = BIT(2),
339a0503817SUday M Bhat 		.num_adr = ARRAY_SIZE(mx8363_2_adr),
340a0503817SUday M Bhat 		.adr_d = mx8363_2_adr,
341a0503817SUday M Bhat 	},
342a0503817SUday M Bhat 	{}
343a0503817SUday M Bhat };
344a0503817SUday M Bhat 
34511fe58c4SBard Liao /* this table is used when there is no I2S codec present */
34611fe58c4SBard Liao struct snd_soc_acpi_mach snd_soc_acpi_intel_mtl_sdw_machines[] = {
34711fe58c4SBard Liao 	/* mockup tests need to be first */
34811fe58c4SBard Liao 	{
34911fe58c4SBard Liao 		.link_mask = GENMASK(3, 0),
35011fe58c4SBard Liao 		.links = sdw_mockup_headset_2amps_mic,
35111fe58c4SBard Liao 		.drv_name = "sof_sdw",
35211fe58c4SBard Liao 		.sof_tplg_filename = "sof-mtl-rt711-rt1308-rt715.tplg",
35311fe58c4SBard Liao 	},
35411fe58c4SBard Liao 	{
35511fe58c4SBard Liao 		.link_mask = BIT(0) | BIT(1) | BIT(3),
35611fe58c4SBard Liao 		.links = sdw_mockup_headset_1amp_mic,
35711fe58c4SBard Liao 		.drv_name = "sof_sdw",
35811fe58c4SBard Liao 		.sof_tplg_filename = "sof-mtl-rt711-rt1308-mono-rt715.tplg",
35911fe58c4SBard Liao 	},
36011fe58c4SBard Liao 	{
36111fe58c4SBard Liao 		.link_mask = GENMASK(2, 0),
36211fe58c4SBard Liao 		.links = sdw_mockup_mic_headset_1amp,
36311fe58c4SBard Liao 		.drv_name = "sof_sdw",
36411fe58c4SBard Liao 		.sof_tplg_filename = "sof-mtl-rt715-rt711-rt1308-mono.tplg",
36511fe58c4SBard Liao 	},
36618489174SYong Zhi 	{
3679efa6f46SBard Liao 		.link_mask = BIT(3) | BIT(0),
3689efa6f46SBard Liao 		.links = mtl_712_only,
3699efa6f46SBard Liao 		.drv_name = "sof_sdw",
3709efa6f46SBard Liao 		.sof_tplg_filename = "sof-mtl-rt712-l0-rt1712-l3.tplg",
3719efa6f46SBard Liao 	},
3729efa6f46SBard Liao 	{
373fec75606SChao Song 		.link_mask = GENMASK(2, 0),
374fec75606SChao Song 		.links = mtl_sdw_rt1318_l12_rt714_l0,
375fec75606SChao Song 		.drv_name = "sof_sdw",
376fec75606SChao Song 		.sof_tplg_filename = "sof-mtl-rt1318-l12-rt714-l0.tplg"
377fec75606SChao Song 	},
378fec75606SChao Song 	{
379b06e33aaSChao Song 		.link_mask = GENMASK(3, 0),
380b06e33aaSChao Song 		.links = mtl_3_in_1_sdca,
381b06e33aaSChao Song 		.drv_name = "sof_sdw",
382b06e33aaSChao Song 		.sof_tplg_filename = "sof-mtl-rt711-l0-rt1316-l23-rt714-l1.tplg",
383b06e33aaSChao Song 	},
384b06e33aaSChao Song 	{
38518489174SYong Zhi 		.link_mask = BIT(0),
38618489174SYong Zhi 		.links = mtl_rvp,
38718489174SYong Zhi 		.drv_name = "sof_sdw",
38818489174SYong Zhi 		.sof_tplg_filename = "sof-mtl-rt711.tplg",
38918489174SYong Zhi 	},
3908dcc2059SYong Zhi 	{
3918dcc2059SYong Zhi 		.link_mask = BIT(0) | BIT(2),
3928dcc2059SYong Zhi 		.links = rt5682_link2_max98373_link0,
3938dcc2059SYong Zhi 		.drv_name = "sof_sdw",
3948dcc2059SYong Zhi 		.sof_tplg_filename = "sof-mtl-sdw-rt5682-l2-max98373-l0.tplg",
3958dcc2059SYong Zhi 	},
396a0503817SUday M Bhat 	{
397a0503817SUday M Bhat 		.link_mask = BIT(0) | BIT(2),
398a0503817SUday M Bhat 		.links = cs42l42_link0_max98363_link2,
399a0503817SUday M Bhat 		.drv_name = "sof_sdw",
400a0503817SUday M Bhat 		.sof_tplg_filename = "sof-mtl-sdw-cs42l42-l0-max98363-l2.tplg",
401a0503817SUday M Bhat 	},
40211fe58c4SBard Liao 	{},
40311fe58c4SBard Liao };
40411fe58c4SBard Liao EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_mtl_sdw_machines);
405