14c8a4cabSKai Vehmanen // SPDX-License-Identifier: GPL-2.0-only
24c8a4cabSKai Vehmanen /*
34c8a4cabSKai Vehmanen  * soc-apci-intel-adl-match.c - tables and support for ADL ACPI enumeration.
44c8a4cabSKai Vehmanen  *
54c8a4cabSKai Vehmanen  * Copyright (c) 2020, Intel Corporation.
64c8a4cabSKai Vehmanen  */
74c8a4cabSKai Vehmanen 
84c8a4cabSKai Vehmanen #include <sound/soc-acpi.h>
94c8a4cabSKai Vehmanen #include <sound/soc-acpi-intel-match.h>
104c8a4cabSKai Vehmanen 
112ec8b081SMuralidhar Reddy static const struct snd_soc_acpi_codecs essx_83x6 = {
122ec8b081SMuralidhar Reddy 	.num_codecs = 3,
132ec8b081SMuralidhar Reddy 	.codecs = { "ESSX8316", "ESSX8326", "ESSX8336"},
142ec8b081SMuralidhar Reddy };
152ec8b081SMuralidhar Reddy 
164c8a4cabSKai Vehmanen static const struct snd_soc_acpi_endpoint single_endpoint = {
174c8a4cabSKai Vehmanen 	.num = 0,
184c8a4cabSKai Vehmanen 	.aggregated = 0,
194c8a4cabSKai Vehmanen 	.group_position = 0,
204c8a4cabSKai Vehmanen 	.group_id = 0,
214c8a4cabSKai Vehmanen };
224c8a4cabSKai Vehmanen 
23093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_endpoint spk_l_endpoint = {
24093b9dcbSPierre-Louis Bossart 	.num = 0,
25093b9dcbSPierre-Louis Bossart 	.aggregated = 1,
26093b9dcbSPierre-Louis Bossart 	.group_position = 0,
27093b9dcbSPierre-Louis Bossart 	.group_id = 1,
28093b9dcbSPierre-Louis Bossart };
29093b9dcbSPierre-Louis Bossart 
30093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_endpoint spk_r_endpoint = {
31093b9dcbSPierre-Louis Bossart 	.num = 0,
32093b9dcbSPierre-Louis Bossart 	.aggregated = 1,
33093b9dcbSPierre-Louis Bossart 	.group_position = 1,
34093b9dcbSPierre-Louis Bossart 	.group_id = 1,
35093b9dcbSPierre-Louis Bossart };
36093b9dcbSPierre-Louis Bossart 
374c8a4cabSKai Vehmanen static const struct snd_soc_acpi_adr_device rt711_0_adr[] = {
384c8a4cabSKai Vehmanen 	{
390c52d3e2SPierre-Louis Bossart 		.adr = 0x000020025D071100ull,
404c8a4cabSKai Vehmanen 		.num_endpoints = 1,
414c8a4cabSKai Vehmanen 		.endpoints = &single_endpoint,
424c8a4cabSKai Vehmanen 		.name_prefix = "rt711"
434c8a4cabSKai Vehmanen 	}
444c8a4cabSKai Vehmanen };
454c8a4cabSKai Vehmanen 
46093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt1308_1_group1_adr[] = {
47093b9dcbSPierre-Louis Bossart 	{
480c52d3e2SPierre-Louis Bossart 		.adr = 0x000120025D130800ull,
49093b9dcbSPierre-Louis Bossart 		.num_endpoints = 1,
50093b9dcbSPierre-Louis Bossart 		.endpoints = &spk_l_endpoint,
51093b9dcbSPierre-Louis Bossart 		.name_prefix = "rt1308-1"
52093b9dcbSPierre-Louis Bossart 	}
53093b9dcbSPierre-Louis Bossart };
54093b9dcbSPierre-Louis Bossart 
55093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt1308_2_group1_adr[] = {
56093b9dcbSPierre-Louis Bossart 	{
570c52d3e2SPierre-Louis Bossart 		.adr = 0x000220025D130800ull,
58093b9dcbSPierre-Louis Bossart 		.num_endpoints = 1,
59093b9dcbSPierre-Louis Bossart 		.endpoints = &spk_r_endpoint,
60093b9dcbSPierre-Louis Bossart 		.name_prefix = "rt1308-2"
61093b9dcbSPierre-Louis Bossart 	}
62093b9dcbSPierre-Louis Bossart };
63093b9dcbSPierre-Louis Bossart 
64093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt715_3_adr[] = {
65093b9dcbSPierre-Louis Bossart 	{
660c52d3e2SPierre-Louis Bossart 		.adr = 0x000320025D071500ull,
67093b9dcbSPierre-Louis Bossart 		.num_endpoints = 1,
68093b9dcbSPierre-Louis Bossart 		.endpoints = &single_endpoint,
69093b9dcbSPierre-Louis Bossart 		.name_prefix = "rt715"
70093b9dcbSPierre-Louis Bossart 	}
71093b9dcbSPierre-Louis Bossart };
72093b9dcbSPierre-Louis Bossart 
73093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt711_sdca_0_adr[] = {
74093b9dcbSPierre-Louis Bossart 	{
750c52d3e2SPierre-Louis Bossart 		.adr = 0x000030025D071101ull,
76093b9dcbSPierre-Louis Bossart 		.num_endpoints = 1,
77093b9dcbSPierre-Louis Bossart 		.endpoints = &single_endpoint,
78093b9dcbSPierre-Louis Bossart 		.name_prefix = "rt711"
79093b9dcbSPierre-Louis Bossart 	}
80093b9dcbSPierre-Louis Bossart };
81093b9dcbSPierre-Louis Bossart 
82359ace2bSGongjun Song static const struct snd_soc_acpi_adr_device rt711_sdca_2_adr[] = {
83359ace2bSGongjun Song 	{
84359ace2bSGongjun Song 		.adr = 0x000230025D071101ull,
85359ace2bSGongjun Song 		.num_endpoints = 1,
86359ace2bSGongjun Song 		.endpoints = &single_endpoint,
87359ace2bSGongjun Song 		.name_prefix = "rt711"
88359ace2bSGongjun Song 	}
89359ace2bSGongjun Song };
90359ace2bSGongjun Song 
91093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt1316_1_group1_adr[] = {
92093b9dcbSPierre-Louis Bossart 	{
930c52d3e2SPierre-Louis Bossart 		.adr = 0x000131025D131601ull, /* unique ID is set for some reason */
94093b9dcbSPierre-Louis Bossart 		.num_endpoints = 1,
95093b9dcbSPierre-Louis Bossart 		.endpoints = &spk_l_endpoint,
96093b9dcbSPierre-Louis Bossart 		.name_prefix = "rt1316-1"
97093b9dcbSPierre-Louis Bossart 	}
98093b9dcbSPierre-Louis Bossart };
99093b9dcbSPierre-Louis Bossart 
100093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt1316_2_group1_adr[] = {
101093b9dcbSPierre-Louis Bossart 	{
1020c52d3e2SPierre-Louis Bossart 		.adr = 0x000230025D131601ull,
103093b9dcbSPierre-Louis Bossart 		.num_endpoints = 1,
104093b9dcbSPierre-Louis Bossart 		.endpoints = &spk_r_endpoint,
105093b9dcbSPierre-Louis Bossart 		.name_prefix = "rt1316-2"
106093b9dcbSPierre-Louis Bossart 	}
107093b9dcbSPierre-Louis Bossart };
108093b9dcbSPierre-Louis Bossart 
109093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt1316_3_group1_adr[] = {
110093b9dcbSPierre-Louis Bossart 	{
1110c52d3e2SPierre-Louis Bossart 		.adr = 0x000330025D131601ull,
112093b9dcbSPierre-Louis Bossart 		.num_endpoints = 1,
113093b9dcbSPierre-Louis Bossart 		.endpoints = &spk_r_endpoint,
114093b9dcbSPierre-Louis Bossart 		.name_prefix = "rt1316-2"
115093b9dcbSPierre-Louis Bossart 	}
116093b9dcbSPierre-Louis Bossart };
117093b9dcbSPierre-Louis Bossart 
118359ace2bSGongjun Song static const struct snd_soc_acpi_adr_device rt1316_0_group2_adr[] = {
119359ace2bSGongjun Song 	{
120359ace2bSGongjun Song 		.adr = 0x000031025D131601ull,
121359ace2bSGongjun Song 		.num_endpoints = 1,
122359ace2bSGongjun Song 		.endpoints = &spk_l_endpoint,
123359ace2bSGongjun Song 		.name_prefix = "rt1316-1"
124359ace2bSGongjun Song 	}
125359ace2bSGongjun Song };
126359ace2bSGongjun Song 
127359ace2bSGongjun Song static const struct snd_soc_acpi_adr_device rt1316_1_group2_adr[] = {
128359ace2bSGongjun Song 	{
129359ace2bSGongjun Song 		.adr = 0x000130025D131601ull,
130359ace2bSGongjun Song 		.num_endpoints = 1,
131359ace2bSGongjun Song 		.endpoints = &spk_r_endpoint,
132359ace2bSGongjun Song 		.name_prefix = "rt1316-2"
133359ace2bSGongjun Song 	}
134359ace2bSGongjun Song };
135359ace2bSGongjun Song 
136b62a1a83SPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt1316_1_single_adr[] = {
137b62a1a83SPierre-Louis Bossart 	{
138b62a1a83SPierre-Louis Bossart 		.adr = 0x000130025D131601ull,
139b62a1a83SPierre-Louis Bossart 		.num_endpoints = 1,
140b62a1a83SPierre-Louis Bossart 		.endpoints = &single_endpoint,
141b62a1a83SPierre-Louis Bossart 		.name_prefix = "rt1316-1"
142b62a1a83SPierre-Louis Bossart 	}
143b62a1a83SPierre-Louis Bossart };
144b62a1a83SPierre-Louis Bossart 
145870dc42fSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt1316_2_single_adr[] = {
146870dc42fSPierre-Louis Bossart 	{
1470c52d3e2SPierre-Louis Bossart 		.adr = 0x000230025D131601ull,
148870dc42fSPierre-Louis Bossart 		.num_endpoints = 1,
149870dc42fSPierre-Louis Bossart 		.endpoints = &single_endpoint,
150870dc42fSPierre-Louis Bossart 		.name_prefix = "rt1316-1"
151870dc42fSPierre-Louis Bossart 	}
152870dc42fSPierre-Louis Bossart };
153870dc42fSPierre-Louis Bossart 
1548d38cc29SPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt1316_3_single_adr[] = {
1558d38cc29SPierre-Louis Bossart 	{
1568d38cc29SPierre-Louis Bossart 		.adr = 0x000330025D131601ull,
1578d38cc29SPierre-Louis Bossart 		.num_endpoints = 1,
1588d38cc29SPierre-Louis Bossart 		.endpoints = &single_endpoint,
1598d38cc29SPierre-Louis Bossart 		.name_prefix = "rt1316-1"
1608d38cc29SPierre-Louis Bossart 	}
1618d38cc29SPierre-Louis Bossart };
1628d38cc29SPierre-Louis Bossart 
163870dc42fSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt714_0_adr[] = {
164870dc42fSPierre-Louis Bossart 	{
1650c52d3e2SPierre-Louis Bossart 		.adr = 0x000030025D071401ull,
166870dc42fSPierre-Louis Bossart 		.num_endpoints = 1,
167870dc42fSPierre-Louis Bossart 		.endpoints = &single_endpoint,
168870dc42fSPierre-Louis Bossart 		.name_prefix = "rt714"
169870dc42fSPierre-Louis Bossart 	}
170870dc42fSPierre-Louis Bossart };
171870dc42fSPierre-Louis Bossart 
172093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt714_2_adr[] = {
173093b9dcbSPierre-Louis Bossart 	{
1740c52d3e2SPierre-Louis Bossart 		.adr = 0x000230025D071401ull,
175093b9dcbSPierre-Louis Bossart 		.num_endpoints = 1,
176093b9dcbSPierre-Louis Bossart 		.endpoints = &single_endpoint,
177093b9dcbSPierre-Louis Bossart 		.name_prefix = "rt714"
178093b9dcbSPierre-Louis Bossart 	}
179093b9dcbSPierre-Louis Bossart };
180093b9dcbSPierre-Louis Bossart 
181093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt714_3_adr[] = {
182093b9dcbSPierre-Louis Bossart 	{
1830c52d3e2SPierre-Louis Bossart 		.adr = 0x000330025D071401ull,
184093b9dcbSPierre-Louis Bossart 		.num_endpoints = 1,
185093b9dcbSPierre-Louis Bossart 		.endpoints = &single_endpoint,
186093b9dcbSPierre-Louis Bossart 		.name_prefix = "rt714"
187093b9dcbSPierre-Louis Bossart 	}
188093b9dcbSPierre-Louis Bossart };
189093b9dcbSPierre-Louis Bossart 
190093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_link_adr adl_default[] = {
191093b9dcbSPierre-Louis Bossart 	{
192093b9dcbSPierre-Louis Bossart 		.mask = BIT(0),
193093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt711_0_adr),
194093b9dcbSPierre-Louis Bossart 		.adr_d = rt711_0_adr,
195093b9dcbSPierre-Louis Bossart 	},
196093b9dcbSPierre-Louis Bossart 	{
197093b9dcbSPierre-Louis Bossart 		.mask = BIT(1),
198093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt1308_1_group1_adr),
199093b9dcbSPierre-Louis Bossart 		.adr_d = rt1308_1_group1_adr,
200093b9dcbSPierre-Louis Bossart 	},
201093b9dcbSPierre-Louis Bossart 	{
202093b9dcbSPierre-Louis Bossart 		.mask = BIT(2),
203093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt1308_2_group1_adr),
204093b9dcbSPierre-Louis Bossart 		.adr_d = rt1308_2_group1_adr,
205093b9dcbSPierre-Louis Bossart 	},
206093b9dcbSPierre-Louis Bossart 	{
207093b9dcbSPierre-Louis Bossart 		.mask = BIT(3),
208093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt715_3_adr),
209093b9dcbSPierre-Louis Bossart 		.adr_d = rt715_3_adr,
210093b9dcbSPierre-Louis Bossart 	},
211093b9dcbSPierre-Louis Bossart 	{}
212093b9dcbSPierre-Louis Bossart };
213093b9dcbSPierre-Louis Bossart 
214093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_link_adr adl_sdca_default[] = {
215093b9dcbSPierre-Louis Bossart 	{
216093b9dcbSPierre-Louis Bossart 		.mask = BIT(0),
217093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),
218093b9dcbSPierre-Louis Bossart 		.adr_d = rt711_sdca_0_adr,
219093b9dcbSPierre-Louis Bossart 	},
220093b9dcbSPierre-Louis Bossart 	{
221093b9dcbSPierre-Louis Bossart 		.mask = BIT(1),
222093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt1316_1_group1_adr),
223093b9dcbSPierre-Louis Bossart 		.adr_d = rt1316_1_group1_adr,
224093b9dcbSPierre-Louis Bossart 	},
225093b9dcbSPierre-Louis Bossart 	{
226093b9dcbSPierre-Louis Bossart 		.mask = BIT(2),
227093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt1316_2_group1_adr),
228093b9dcbSPierre-Louis Bossart 		.adr_d = rt1316_2_group1_adr,
229093b9dcbSPierre-Louis Bossart 	},
230093b9dcbSPierre-Louis Bossart 	{
231093b9dcbSPierre-Louis Bossart 		.mask = BIT(3),
232093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt714_3_adr),
233093b9dcbSPierre-Louis Bossart 		.adr_d = rt714_3_adr,
234093b9dcbSPierre-Louis Bossart 	},
235093b9dcbSPierre-Louis Bossart 	{}
236093b9dcbSPierre-Louis Bossart };
237093b9dcbSPierre-Louis Bossart 
238093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_link_adr adl_sdca_3_in_1[] = {
239093b9dcbSPierre-Louis Bossart 	{
240093b9dcbSPierre-Louis Bossart 		.mask = BIT(0),
241093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),
242093b9dcbSPierre-Louis Bossart 		.adr_d = rt711_sdca_0_adr,
243093b9dcbSPierre-Louis Bossart 	},
244093b9dcbSPierre-Louis Bossart 	{
245093b9dcbSPierre-Louis Bossart 		.mask = BIT(1),
246093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt1316_1_group1_adr),
247093b9dcbSPierre-Louis Bossart 		.adr_d = rt1316_1_group1_adr,
248093b9dcbSPierre-Louis Bossart 	},
249093b9dcbSPierre-Louis Bossart 	{
250093b9dcbSPierre-Louis Bossart 		.mask = BIT(2),
251093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt714_2_adr),
252093b9dcbSPierre-Louis Bossart 		.adr_d = rt714_2_adr,
253093b9dcbSPierre-Louis Bossart 	},
254093b9dcbSPierre-Louis Bossart 	{
255093b9dcbSPierre-Louis Bossart 		.mask = BIT(3),
256093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt1316_3_group1_adr),
257093b9dcbSPierre-Louis Bossart 		.adr_d = rt1316_3_group1_adr,
258093b9dcbSPierre-Louis Bossart 	},
259093b9dcbSPierre-Louis Bossart 	{}
260093b9dcbSPierre-Louis Bossart };
261093b9dcbSPierre-Louis Bossart 
262359ace2bSGongjun Song static const struct snd_soc_acpi_link_adr adl_sdw_rt711_link2_rt1316_link01_rt714_link3[] = {
263359ace2bSGongjun Song 	{
264359ace2bSGongjun Song 		.mask = BIT(2),
265359ace2bSGongjun Song 		.num_adr = ARRAY_SIZE(rt711_sdca_2_adr),
266359ace2bSGongjun Song 		.adr_d = rt711_sdca_2_adr,
267359ace2bSGongjun Song 	},
268359ace2bSGongjun Song 	{
269359ace2bSGongjun Song 		.mask = BIT(0),
270359ace2bSGongjun Song 		.num_adr = ARRAY_SIZE(rt1316_0_group2_adr),
271359ace2bSGongjun Song 		.adr_d = rt1316_0_group2_adr,
272359ace2bSGongjun Song 	},
273359ace2bSGongjun Song 	{
274359ace2bSGongjun Song 		.mask = BIT(1),
275359ace2bSGongjun Song 		.num_adr = ARRAY_SIZE(rt1316_1_group2_adr),
276359ace2bSGongjun Song 		.adr_d = rt1316_1_group2_adr,
277359ace2bSGongjun Song 	},
278359ace2bSGongjun Song 	{
279359ace2bSGongjun Song 		.mask = BIT(3),
280359ace2bSGongjun Song 		.num_adr = ARRAY_SIZE(rt714_3_adr),
281359ace2bSGongjun Song 		.adr_d = rt714_3_adr,
282359ace2bSGongjun Song 	},
283359ace2bSGongjun Song 	{}
284359ace2bSGongjun Song };
285359ace2bSGongjun Song 
286c4dcd710SLibin Yang static const struct snd_soc_acpi_link_adr adl_sdw_rt711_link2_rt1316_link01[] = {
287c4dcd710SLibin Yang 	{
288c4dcd710SLibin Yang 		.mask = BIT(2),
289c4dcd710SLibin Yang 		.num_adr = ARRAY_SIZE(rt711_sdca_2_adr),
290c4dcd710SLibin Yang 		.adr_d = rt711_sdca_2_adr,
291c4dcd710SLibin Yang 	},
292c4dcd710SLibin Yang 	{
293c4dcd710SLibin Yang 		.mask = BIT(0),
294c4dcd710SLibin Yang 		.num_adr = ARRAY_SIZE(rt1316_0_group2_adr),
295c4dcd710SLibin Yang 		.adr_d = rt1316_0_group2_adr,
296c4dcd710SLibin Yang 	},
297c4dcd710SLibin Yang 	{
298c4dcd710SLibin Yang 		.mask = BIT(1),
299c4dcd710SLibin Yang 		.num_adr = ARRAY_SIZE(rt1316_1_group2_adr),
300c4dcd710SLibin Yang 		.adr_d = rt1316_1_group2_adr,
301c4dcd710SLibin Yang 	},
302c4dcd710SLibin Yang 	{}
303c4dcd710SLibin Yang };
304c4dcd710SLibin Yang 
305a1797d61SGongjun Song static const struct snd_soc_acpi_link_adr adl_sdw_rt1316_link12_rt714_link0[] = {
306a1797d61SGongjun Song 	{
307a1797d61SGongjun Song 		.mask = BIT(1),
308a1797d61SGongjun Song 		.num_adr = ARRAY_SIZE(rt1316_1_group1_adr),
309a1797d61SGongjun Song 		.adr_d = rt1316_1_group1_adr,
310a1797d61SGongjun Song 	},
311a1797d61SGongjun Song 	{
312a1797d61SGongjun Song 		.mask = BIT(2),
313a1797d61SGongjun Song 		.num_adr = ARRAY_SIZE(rt1316_2_group1_adr),
314a1797d61SGongjun Song 		.adr_d = rt1316_2_group1_adr,
315a1797d61SGongjun Song 	},
316a1797d61SGongjun Song 	{
317a1797d61SGongjun Song 		.mask = BIT(0),
318a1797d61SGongjun Song 		.num_adr = ARRAY_SIZE(rt714_0_adr),
319a1797d61SGongjun Song 		.adr_d = rt714_0_adr,
320a1797d61SGongjun Song 	},
321a1797d61SGongjun Song 	{}
322a1797d61SGongjun Song };
323a1797d61SGongjun Song 
324b62a1a83SPierre-Louis Bossart static const struct snd_soc_acpi_link_adr adl_sdw_rt1316_link1_rt714_link0[] = {
325b62a1a83SPierre-Louis Bossart 	{
326b62a1a83SPierre-Louis Bossart 		.mask = BIT(1),
327b62a1a83SPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt1316_1_single_adr),
328b62a1a83SPierre-Louis Bossart 		.adr_d = rt1316_1_single_adr,
329b62a1a83SPierre-Louis Bossart 	},
330b62a1a83SPierre-Louis Bossart 	{
331b62a1a83SPierre-Louis Bossart 		.mask = BIT(0),
332b62a1a83SPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt714_0_adr),
333b62a1a83SPierre-Louis Bossart 		.adr_d = rt714_0_adr,
334b62a1a83SPierre-Louis Bossart 	},
335b62a1a83SPierre-Louis Bossart 	{}
336b62a1a83SPierre-Louis Bossart };
337b62a1a83SPierre-Louis Bossart 
33811e18f58SGongjun Song static const struct snd_soc_acpi_link_adr adl_sdw_rt1316_link2_rt714_link3[] = {
33911e18f58SGongjun Song 	{
34011e18f58SGongjun Song 		.mask = BIT(2),
34111e18f58SGongjun Song 		.num_adr = ARRAY_SIZE(rt1316_2_single_adr),
34211e18f58SGongjun Song 		.adr_d = rt1316_2_single_adr,
34311e18f58SGongjun Song 	},
34411e18f58SGongjun Song 	{
34511e18f58SGongjun Song 		.mask = BIT(3),
34611e18f58SGongjun Song 		.num_adr = ARRAY_SIZE(rt714_3_adr),
34711e18f58SGongjun Song 		.adr_d = rt714_3_adr,
34811e18f58SGongjun Song 	},
34911e18f58SGongjun Song 	{}
35011e18f58SGongjun Song };
35111e18f58SGongjun Song 
352870dc42fSPierre-Louis Bossart static const struct snd_soc_acpi_link_adr adl_sdw_rt1316_link2_rt714_link0[] = {
353870dc42fSPierre-Louis Bossart 	{
354870dc42fSPierre-Louis Bossart 		.mask = BIT(2),
355870dc42fSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt1316_2_single_adr),
356870dc42fSPierre-Louis Bossart 		.adr_d = rt1316_2_single_adr,
357870dc42fSPierre-Louis Bossart 	},
358870dc42fSPierre-Louis Bossart 	{
359870dc42fSPierre-Louis Bossart 		.mask = BIT(0),
360870dc42fSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt714_0_adr),
361870dc42fSPierre-Louis Bossart 		.adr_d = rt714_0_adr,
362870dc42fSPierre-Louis Bossart 	},
363870dc42fSPierre-Louis Bossart 	{}
364870dc42fSPierre-Louis Bossart };
365870dc42fSPierre-Louis Bossart 
3668d38cc29SPierre-Louis Bossart static const struct snd_soc_acpi_link_adr adl_sdw_rt711_link0_rt1316_link3[] = {
3678d38cc29SPierre-Louis Bossart 	{
3688d38cc29SPierre-Louis Bossart 		.mask = BIT(0),
3698d38cc29SPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),
3708d38cc29SPierre-Louis Bossart 		.adr_d = rt711_sdca_0_adr,
3718d38cc29SPierre-Louis Bossart 	},
3728d38cc29SPierre-Louis Bossart 	{
3738d38cc29SPierre-Louis Bossart 		.mask = BIT(3),
3748d38cc29SPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt1316_3_single_adr),
3758d38cc29SPierre-Louis Bossart 		.adr_d = rt1316_3_single_adr,
3768d38cc29SPierre-Louis Bossart 	},
3778d38cc29SPierre-Louis Bossart 	{}
3788d38cc29SPierre-Louis Bossart };
3798d38cc29SPierre-Louis Bossart 
3809c691a42SEugene Huang static const struct snd_soc_acpi_link_adr adl_sdw_rt711_link0_rt1316_link2[] = {
3819c691a42SEugene Huang 	{
3829c691a42SEugene Huang 		.mask = BIT(0),
3839c691a42SEugene Huang 		.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),
3849c691a42SEugene Huang 		.adr_d = rt711_sdca_0_adr,
3859c691a42SEugene Huang 	},
3869c691a42SEugene Huang 	{
3879c691a42SEugene Huang 		.mask = BIT(2),
3889c691a42SEugene Huang 		.num_adr = ARRAY_SIZE(rt1316_2_single_adr),
3899c691a42SEugene Huang 		.adr_d = rt1316_2_single_adr,
3909c691a42SEugene Huang 	},
3919c691a42SEugene Huang 	{}
3929c691a42SEugene Huang };
3939c691a42SEugene Huang 
394c0fbe9fdSVamshi Krishna Gopal static const struct snd_soc_acpi_adr_device mx8373_2_adr[] = {
395c0fbe9fdSVamshi Krishna Gopal 	{
396c0fbe9fdSVamshi Krishna Gopal 		.adr = 0x000223019F837300ull,
397c0fbe9fdSVamshi Krishna Gopal 		.num_endpoints = 1,
398c0fbe9fdSVamshi Krishna Gopal 		.endpoints = &spk_l_endpoint,
399c0fbe9fdSVamshi Krishna Gopal 		.name_prefix = "Left"
400c0fbe9fdSVamshi Krishna Gopal 	},
401c0fbe9fdSVamshi Krishna Gopal 	{
402c0fbe9fdSVamshi Krishna Gopal 		.adr = 0x000227019F837300ull,
403c0fbe9fdSVamshi Krishna Gopal 		.num_endpoints = 1,
404c0fbe9fdSVamshi Krishna Gopal 		.endpoints = &spk_r_endpoint,
405c0fbe9fdSVamshi Krishna Gopal 		.name_prefix = "Right"
406c0fbe9fdSVamshi Krishna Gopal 	}
407c0fbe9fdSVamshi Krishna Gopal };
408c0fbe9fdSVamshi Krishna Gopal 
409c0fbe9fdSVamshi Krishna Gopal static const struct snd_soc_acpi_adr_device rt5682_0_adr[] = {
410c0fbe9fdSVamshi Krishna Gopal 	{
411c0fbe9fdSVamshi Krishna Gopal 		.adr = 0x000021025D568200ull,
412c0fbe9fdSVamshi Krishna Gopal 		.num_endpoints = 1,
413c0fbe9fdSVamshi Krishna Gopal 		.endpoints = &single_endpoint,
414c0fbe9fdSVamshi Krishna Gopal 		.name_prefix = "rt5682"
415c0fbe9fdSVamshi Krishna Gopal 	}
416c0fbe9fdSVamshi Krishna Gopal };
417c0fbe9fdSVamshi Krishna Gopal 
4184c8a4cabSKai Vehmanen static const struct snd_soc_acpi_link_adr adl_rvp[] = {
4194c8a4cabSKai Vehmanen 	{
4204c8a4cabSKai Vehmanen 		.mask = BIT(0),
4214c8a4cabSKai Vehmanen 		.num_adr = ARRAY_SIZE(rt711_0_adr),
4224c8a4cabSKai Vehmanen 		.adr_d = rt711_0_adr,
4234c8a4cabSKai Vehmanen 	},
4244c8a4cabSKai Vehmanen 	{}
4254c8a4cabSKai Vehmanen };
4264c8a4cabSKai Vehmanen 
427d7be9e33SMuralidhar Reddy static const struct snd_soc_acpi_link_adr adlps_rvp[] = {
428d7be9e33SMuralidhar Reddy 	{
429d7be9e33SMuralidhar Reddy 		.mask = BIT(0),
430d7be9e33SMuralidhar Reddy 		.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),
431d7be9e33SMuralidhar Reddy 		.adr_d = rt711_sdca_0_adr,
432d7be9e33SMuralidhar Reddy 	},
433d7be9e33SMuralidhar Reddy 	{}
434d7be9e33SMuralidhar Reddy };
435d7be9e33SMuralidhar Reddy 
436c0fbe9fdSVamshi Krishna Gopal static const struct snd_soc_acpi_link_adr adl_chromebook_base[] = {
437c0fbe9fdSVamshi Krishna Gopal 	{
438c0fbe9fdSVamshi Krishna Gopal 		.mask = BIT(0),
439c0fbe9fdSVamshi Krishna Gopal 		.num_adr = ARRAY_SIZE(rt5682_0_adr),
440c0fbe9fdSVamshi Krishna Gopal 		.adr_d = rt5682_0_adr,
441c0fbe9fdSVamshi Krishna Gopal 	},
442c0fbe9fdSVamshi Krishna Gopal 	{
443c0fbe9fdSVamshi Krishna Gopal 		.mask = BIT(2),
444c0fbe9fdSVamshi Krishna Gopal 		.num_adr = ARRAY_SIZE(mx8373_2_adr),
445c0fbe9fdSVamshi Krishna Gopal 		.adr_d = mx8373_2_adr,
446c0fbe9fdSVamshi Krishna Gopal 	},
447c0fbe9fdSVamshi Krishna Gopal 	{}
448c0fbe9fdSVamshi Krishna Gopal };
449c0fbe9fdSVamshi Krishna Gopal 
4502a29ff7aSVamshi Krishna Gopal static const struct snd_soc_acpi_codecs adl_max98373_amp = {
4512a29ff7aSVamshi Krishna Gopal 	.num_codecs = 1,
4522a29ff7aSVamshi Krishna Gopal 	.codecs = {"MX98373"}
4532a29ff7aSVamshi Krishna Gopal };
4542a29ff7aSVamshi Krishna Gopal 
4552a29ff7aSVamshi Krishna Gopal static const struct snd_soc_acpi_codecs adl_max98357a_amp = {
4562a29ff7aSVamshi Krishna Gopal 	.num_codecs = 1,
4572a29ff7aSVamshi Krishna Gopal 	.codecs = {"MX98357A"}
4582a29ff7aSVamshi Krishna Gopal };
4592a29ff7aSVamshi Krishna Gopal 
4609c892547SMalik_Hsu static const struct snd_soc_acpi_codecs adl_max98360a_amp = {
4619c892547SMalik_Hsu 	.num_codecs = 1,
4629c892547SMalik_Hsu 	.codecs = {"MX98360A"}
4639c892547SMalik_Hsu };
4649c892547SMalik_Hsu 
465d4f3fdc2SBrent Lu static const struct snd_soc_acpi_codecs adl_rt5682_rt5682s_hp = {
466d4f3fdc2SBrent Lu 	.num_codecs = 2,
467d4f3fdc2SBrent Lu 	.codecs = {"10EC5682", "RTL5682"},
468d4f3fdc2SBrent Lu };
469d4f3fdc2SBrent Lu 
47013c459faSBrent Lu static const struct snd_soc_acpi_codecs adl_rt1015p_amp = {
47113c459faSBrent Lu 	.num_codecs = 1,
47213c459faSBrent Lu 	.codecs = {"RTL1015"}
47313c459faSBrent Lu };
47413c459faSBrent Lu 
4758d0872f6SMac Chiang static const struct snd_soc_acpi_codecs adl_rt1019p_amp = {
4768d0872f6SMac Chiang 	.num_codecs = 1,
4778d0872f6SMac Chiang 	.codecs = {"RTL1019"}
4788d0872f6SMac Chiang };
4798d0872f6SMac Chiang 
480f316c9d9SMac Chiang static const struct snd_soc_acpi_codecs adl_max98390_amp = {
481f316c9d9SMac Chiang 	.num_codecs = 1,
482f316c9d9SMac Chiang 	.codecs = {"MX98390"}
483f316c9d9SMac Chiang };
484f316c9d9SMac Chiang 
48586b1959aSMuralidhar Reddy static const struct snd_soc_acpi_codecs adl_lt6911_hdmi = {
48686b1959aSMuralidhar Reddy 	.num_codecs = 1,
48786b1959aSMuralidhar Reddy 	.codecs = {"INTC10B0"}
48886b1959aSMuralidhar Reddy };
48986b1959aSMuralidhar Reddy 
490ba7523bbSAjye Huang static const struct snd_soc_acpi_codecs adl_nau8318_amp = {
491ba7523bbSAjye Huang 	.num_codecs = 1,
492ba7523bbSAjye Huang 	.codecs = {"NVTN2012"}
493ba7523bbSAjye Huang };
494ba7523bbSAjye Huang 
4954c8a4cabSKai Vehmanen struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_machines[] = {
4962a29ff7aSVamshi Krishna Gopal 	{
497d4f3fdc2SBrent Lu 		.comp_ids = &adl_rt5682_rt5682s_hp,
498590cfb08SPierre-Louis Bossart 		.drv_name = "adl_mx98373_rt5682",
4992a29ff7aSVamshi Krishna Gopal 		.machine_quirk = snd_soc_acpi_codec_list,
5002a29ff7aSVamshi Krishna Gopal 		.quirk_data = &adl_max98373_amp,
5012a29ff7aSVamshi Krishna Gopal 		.sof_tplg_filename = "sof-adl-max98373-rt5682.tplg",
5022a29ff7aSVamshi Krishna Gopal 	},
5032a29ff7aSVamshi Krishna Gopal 	{
504d4f3fdc2SBrent Lu 		.comp_ids = &adl_rt5682_rt5682s_hp,
5053c561a09SBrent Lu 		.drv_name = "adl_mx98357_rt5682",
5062a29ff7aSVamshi Krishna Gopal 		.machine_quirk = snd_soc_acpi_codec_list,
5072a29ff7aSVamshi Krishna Gopal 		.quirk_data = &adl_max98357a_amp,
5082a29ff7aSVamshi Krishna Gopal 		.sof_tplg_filename = "sof-adl-max98357a-rt5682.tplg",
5092a29ff7aSVamshi Krishna Gopal 	},
5109c892547SMalik_Hsu 	{
511d4f3fdc2SBrent Lu 		.comp_ids = &adl_rt5682_rt5682s_hp,
5129c892547SMalik_Hsu 		.drv_name = "adl_mx98360_rt5682",
5139c892547SMalik_Hsu 		.machine_quirk = snd_soc_acpi_codec_list,
5149c892547SMalik_Hsu 		.quirk_data = &adl_max98360a_amp,
5159c892547SMalik_Hsu 		.sof_tplg_filename = "sof-adl-max98360a-rt5682.tplg",
5169c892547SMalik_Hsu 	},
5178d0872f6SMac Chiang 	{
5188d0872f6SMac Chiang 		.id = "10508825",
5193e78986aSArnd Bergmann 		.drv_name = "adl_rt1019p_8825",
5208d0872f6SMac Chiang 		.machine_quirk = snd_soc_acpi_codec_list,
5218d0872f6SMac Chiang 		.quirk_data = &adl_rt1019p_amp,
5228d0872f6SMac Chiang 		.sof_tplg_filename = "sof-adl-rt1019-nau8825.tplg",
5238d0872f6SMac Chiang 	},
5248d0872f6SMac Chiang 	{
5258d0872f6SMac Chiang 		.id = "10508825",
5263e78986aSArnd Bergmann 		.drv_name = "adl_max98373_8825",
5278d0872f6SMac Chiang 		.machine_quirk = snd_soc_acpi_codec_list,
5288d0872f6SMac Chiang 		.quirk_data = &adl_max98373_amp,
5298d0872f6SMac Chiang 		.sof_tplg_filename = "sof-adl-max98373-nau8825.tplg",
5308d0872f6SMac Chiang 	},
5318d0872f6SMac Chiang 	{
5328d0872f6SMac Chiang 		.id = "10508825",
5333e78986aSArnd Bergmann 		.drv_name = "adl_mx98360a_8825",
5348d0872f6SMac Chiang 		.machine_quirk = snd_soc_acpi_codec_list,
5358d0872f6SMac Chiang 		.quirk_data = &adl_max98360a_amp,
5365fa66f29SDavid Lin 		.sof_tplg_filename = "sof-adl-max98360a-nau8825.tplg",
5378d0872f6SMac Chiang 	},
5388d0872f6SMac Chiang 	{
5391a9a5ebeSAjye Huang 		.comp_ids = &adl_rt5682_rt5682s_hp,
5401a9a5ebeSAjye Huang 		.drv_name = "adl_rt1019_rt5682",
5410b56ed19SVamshi Krishna 		.machine_quirk = snd_soc_acpi_codec_list,
5420b56ed19SVamshi Krishna 		.quirk_data = &adl_rt1019p_amp,
5430b56ed19SVamshi Krishna 		.sof_tplg_filename = "sof-adl-rt1019-rt5682.tplg",
5440b56ed19SVamshi Krishna 	},
5450b56ed19SVamshi Krishna 	{
5468d0872f6SMac Chiang 		.id = "10508825",
5473e78986aSArnd Bergmann 		.drv_name = "adl_rt1015p_8825",
54813c459faSBrent Lu 		.machine_quirk = snd_soc_acpi_codec_list,
54913c459faSBrent Lu 		.quirk_data = &adl_rt1015p_amp,
55013c459faSBrent Lu 		.sof_tplg_filename = "sof-adl-rt1015-nau8825.tplg",
55113c459faSBrent Lu 	},
55213c459faSBrent Lu 	{
55313c459faSBrent Lu 		.id = "10508825",
554ba7523bbSAjye Huang 		.drv_name = "adl_nau8318_8825",
555ba7523bbSAjye Huang 		.machine_quirk = snd_soc_acpi_codec_list,
556ba7523bbSAjye Huang 		.quirk_data = &adl_nau8318_amp,
557ba7523bbSAjye Huang 		.sof_tplg_filename = "sof-adl-nau8318-nau8825.tplg",
558ba7523bbSAjye Huang 	},
559ba7523bbSAjye Huang 	{
560ba7523bbSAjye Huang 		.id = "10508825",
5618d0872f6SMac Chiang 		.drv_name = "sof_nau8825",
5628d0872f6SMac Chiang 		.sof_tplg_filename = "sof-adl-nau8825.tplg",
5638d0872f6SMac Chiang 	},
564f316c9d9SMac Chiang 	{
565f316c9d9SMac Chiang 		.comp_ids = &adl_rt5682_rt5682s_hp,
566f316c9d9SMac Chiang 		.drv_name = "adl_max98390_rt5682",
567f316c9d9SMac Chiang 		.machine_quirk = snd_soc_acpi_codec_list,
568f316c9d9SMac Chiang 		.quirk_data = &adl_max98390_amp,
569f316c9d9SMac Chiang 		.sof_tplg_filename = "sof-adl-max98390-rt5682.tplg",
570f316c9d9SMac Chiang 	},
571c8e98eafSAjye Huang 	{
572c8e98eafSAjye Huang 		.comp_ids = &adl_rt5682_rt5682s_hp,
573f3c37847Sapoorv 		.drv_name = "adl_rt5682_c1_h02",
574f3c37847Sapoorv 		.machine_quirk = snd_soc_acpi_codec_list,
575f3c37847Sapoorv 		.quirk_data = &adl_lt6911_hdmi,
576f3c37847Sapoorv 		.sof_tplg_filename = "sof-adl-rt5682-ssp1-hdmi-ssp02.tplg",
577f3c37847Sapoorv 	},
578f3c37847Sapoorv 	{
579f3c37847Sapoorv 		.comp_ids = &adl_rt5682_rt5682s_hp,
580c8e98eafSAjye Huang 		.drv_name = "adl_rt5682",
581c8e98eafSAjye Huang 		.sof_tplg_filename = "sof-adl-rt5682.tplg",
582c8e98eafSAjye Huang 	},
583cd486d37SBrent Lu 	{
584cd486d37SBrent Lu 		.id = "10134242",
585cd486d37SBrent Lu 		.drv_name = "adl_mx98360a_cs4242",
586cd486d37SBrent Lu 		.machine_quirk = snd_soc_acpi_codec_list,
587cd486d37SBrent Lu 		.quirk_data = &adl_max98360a_amp,
588cd486d37SBrent Lu 		.sof_tplg_filename = "sof-adl-max98360a-cs42l42.tplg",
589cd486d37SBrent Lu 	},
5902ec8b081SMuralidhar Reddy 	{
5912ec8b081SMuralidhar Reddy 		.comp_ids = &essx_83x6,
59286b1959aSMuralidhar Reddy 		.drv_name = "adl_es83x6_c1_h02",
59386b1959aSMuralidhar Reddy 		.machine_quirk = snd_soc_acpi_codec_list,
59486b1959aSMuralidhar Reddy 		.quirk_data = &adl_lt6911_hdmi,
59586b1959aSMuralidhar Reddy 		.sof_tplg_filename = "sof-adl-es83x6-ssp1-hdmi-ssp02.tplg",
59686b1959aSMuralidhar Reddy 	},
59786b1959aSMuralidhar Reddy 	{
59886b1959aSMuralidhar Reddy 		.comp_ids = &essx_83x6,
5992ec8b081SMuralidhar Reddy 		.drv_name = "sof-essx8336",
600858a438aSPierre-Louis Bossart 		.sof_tplg_filename = "sof-adl-es8336", /* the tplg suffix is added at run time */
6012ec8b081SMuralidhar Reddy 		.tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER |
6022ec8b081SMuralidhar Reddy 					SND_SOC_ACPI_TPLG_INTEL_SSP_MSB |
6032ec8b081SMuralidhar Reddy 					SND_SOC_ACPI_TPLG_INTEL_DMIC_NUMBER,
6042ec8b081SMuralidhar Reddy 	},
605c3a3c06eSBalamurugan C 	/* place amp-only boards in the end of table */
606c3a3c06eSBalamurugan C 	{
607c3a3c06eSBalamurugan C 		.id = "CSC3541",
608c3a3c06eSBalamurugan C 		.drv_name = "adl_cs35l41",
609c3a3c06eSBalamurugan C 		.sof_tplg_filename = "sof-adl-cs35l41.tplg",
610c3a3c06eSBalamurugan C 	},
6115376d37bSBalamurugan C 	{
6125376d37bSBalamurugan C 		.id = "INTC10B0",
6135376d37bSBalamurugan C 		.drv_name = "adl_lt6911_hdmi_ssp",
6145376d37bSBalamurugan C 		.sof_tplg_filename = "sof-adl-nocodec-hdmi-ssp02.tplg"
6155376d37bSBalamurugan C 	},
6164c8a4cabSKai Vehmanen 	{},
6174c8a4cabSKai Vehmanen };
6184c8a4cabSKai Vehmanen EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_adl_machines);
6194c8a4cabSKai Vehmanen 
6204c8a4cabSKai Vehmanen /* this table is used when there is no I2S codec present */
6214c8a4cabSKai Vehmanen struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_sdw_machines[] = {
6224c8a4cabSKai Vehmanen 	{
623093b9dcbSPierre-Louis Bossart 		.link_mask = 0xF, /* 4 active links required */
624093b9dcbSPierre-Louis Bossart 		.links = adl_default,
625093b9dcbSPierre-Louis Bossart 		.drv_name = "sof_sdw",
626093b9dcbSPierre-Louis Bossart 		.sof_tplg_filename = "sof-adl-rt711-l0-rt1308-l12-rt715-l3.tplg",
627093b9dcbSPierre-Louis Bossart 	},
628093b9dcbSPierre-Louis Bossart 	{
629093b9dcbSPierre-Louis Bossart 		.link_mask = 0xF, /* 4 active links required */
630093b9dcbSPierre-Louis Bossart 		.links = adl_sdca_default,
631093b9dcbSPierre-Louis Bossart 		.drv_name = "sof_sdw",
632093b9dcbSPierre-Louis Bossart 		.sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l12-rt714-l3.tplg",
633093b9dcbSPierre-Louis Bossart 	},
634093b9dcbSPierre-Louis Bossart 	{
635093b9dcbSPierre-Louis Bossart 		.link_mask = 0xF, /* 4 active links required */
636093b9dcbSPierre-Louis Bossart 		.links = adl_sdca_3_in_1,
637093b9dcbSPierre-Louis Bossart 		.drv_name = "sof_sdw",
638093b9dcbSPierre-Louis Bossart 		.sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l13-rt714-l2.tplg",
639093b9dcbSPierre-Louis Bossart 	},
640093b9dcbSPierre-Louis Bossart 	{
641359ace2bSGongjun Song 		.link_mask = 0xF, /* 4 active links required */
642359ace2bSGongjun Song 		.links = adl_sdw_rt711_link2_rt1316_link01_rt714_link3,
643359ace2bSGongjun Song 		.drv_name = "sof_sdw",
644359ace2bSGongjun Song 		.sof_tplg_filename = "sof-adl-rt711-l2-rt1316-l01-rt714-l3.tplg",
645359ace2bSGongjun Song 	},
646359ace2bSGongjun Song 	{
647c4dcd710SLibin Yang 		.link_mask = 0x7, /* rt1316 on link0 and link1 & rt711 on link2*/
648c4dcd710SLibin Yang 		.links = adl_sdw_rt711_link2_rt1316_link01,
649c4dcd710SLibin Yang 		.drv_name = "sof_sdw",
650c4dcd710SLibin Yang 		.sof_tplg_filename = "sof-adl-rt711-l2-rt1316-l01.tplg",
651c4dcd710SLibin Yang 	},
652c4dcd710SLibin Yang 	{
65311e18f58SGongjun Song 		.link_mask = 0xC, /* rt1316 on link2 & rt714 on link3 */
65411e18f58SGongjun Song 		.links = adl_sdw_rt1316_link2_rt714_link3,
65511e18f58SGongjun Song 		.drv_name = "sof_sdw",
65611e18f58SGongjun Song 		.sof_tplg_filename = "sof-adl-rt1316-l2-mono-rt714-l3.tplg",
65711e18f58SGongjun Song 	},
65811e18f58SGongjun Song 	{
659a1797d61SGongjun Song 		.link_mask = 0x7, /* rt714 on link0 & two rt1316s on link1 and link2 */
660a1797d61SGongjun Song 		.links = adl_sdw_rt1316_link12_rt714_link0,
661a1797d61SGongjun Song 		.drv_name = "sof_sdw",
662a1797d61SGongjun Song 		.sof_tplg_filename = "sof-adl-rt1316-l12-rt714-l0.tplg",
663a1797d61SGongjun Song 	},
664a1797d61SGongjun Song 	{
665*b399f970SPierre-Louis Bossart 		.link_mask = 0x3, /* rt1316 on link1 & rt714 on link0 */
666*b399f970SPierre-Louis Bossart 		.links = adl_sdw_rt1316_link1_rt714_link0,
667*b399f970SPierre-Louis Bossart 		.drv_name = "sof_sdw",
668*b399f970SPierre-Louis Bossart 		.sof_tplg_filename = "sof-adl-rt1316-l1-mono-rt714-l0.tplg",
669*b399f970SPierre-Louis Bossart 	},
670*b399f970SPierre-Louis Bossart 	{
671870dc42fSPierre-Louis Bossart 		.link_mask = 0x5, /* 2 active links required */
672870dc42fSPierre-Louis Bossart 		.links = adl_sdw_rt1316_link2_rt714_link0,
673870dc42fSPierre-Louis Bossart 		.drv_name = "sof_sdw",
674870dc42fSPierre-Louis Bossart 		.sof_tplg_filename = "sof-adl-rt1316-l2-mono-rt714-l0.tplg",
675870dc42fSPierre-Louis Bossart 	},
676870dc42fSPierre-Louis Bossart 	{
6778d38cc29SPierre-Louis Bossart 		.link_mask = 0x9, /* 2 active links required */
6788d38cc29SPierre-Louis Bossart 		.links = adl_sdw_rt711_link0_rt1316_link3,
6798d38cc29SPierre-Louis Bossart 		.drv_name = "sof_sdw",
6808d38cc29SPierre-Louis Bossart 		.sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l3.tplg",
6818d38cc29SPierre-Louis Bossart 	},
6828d38cc29SPierre-Louis Bossart 	{
6839c691a42SEugene Huang 		.link_mask = 0x5, /* 2 active links required */
6849c691a42SEugene Huang 		.links = adl_sdw_rt711_link0_rt1316_link2,
6859c691a42SEugene Huang 		.drv_name = "sof_sdw",
6869c691a42SEugene Huang 		.sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l2.tplg",
6879c691a42SEugene Huang 	},
6889c691a42SEugene Huang 	{
6894c8a4cabSKai Vehmanen 		.link_mask = 0x1, /* link0 required */
6904c8a4cabSKai Vehmanen 		.links = adl_rvp,
6914c8a4cabSKai Vehmanen 		.drv_name = "sof_sdw",
6924c8a4cabSKai Vehmanen 		.sof_tplg_filename = "sof-adl-rt711.tplg",
6934c8a4cabSKai Vehmanen 	},
694c0fbe9fdSVamshi Krishna Gopal 	{
695d7be9e33SMuralidhar Reddy 		.link_mask = 0x1, /* link0 required */
696d7be9e33SMuralidhar Reddy 		.links = adlps_rvp,
697d7be9e33SMuralidhar Reddy 		.drv_name = "sof_sdw",
698d7be9e33SMuralidhar Reddy 		.sof_tplg_filename = "sof-adl-rt711.tplg",
699d7be9e33SMuralidhar Reddy 	},
700d7be9e33SMuralidhar Reddy 	{
701c0fbe9fdSVamshi Krishna Gopal 		.link_mask = 0x5, /* rt5682 on link0 & 2xmax98373 on link 2 */
702c0fbe9fdSVamshi Krishna Gopal 		.links = adl_chromebook_base,
703c0fbe9fdSVamshi Krishna Gopal 		.drv_name = "sof_sdw",
704c0fbe9fdSVamshi Krishna Gopal 		.sof_tplg_filename = "sof-adl-sdw-max98373-rt5682.tplg",
705c0fbe9fdSVamshi Krishna Gopal 	},
7064c8a4cabSKai Vehmanen 	{},
7074c8a4cabSKai Vehmanen };
7084c8a4cabSKai Vehmanen EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_adl_sdw_machines);
709