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 
114c8a4cabSKai Vehmanen static const struct snd_soc_acpi_endpoint single_endpoint = {
124c8a4cabSKai Vehmanen 	.num = 0,
134c8a4cabSKai Vehmanen 	.aggregated = 0,
144c8a4cabSKai Vehmanen 	.group_position = 0,
154c8a4cabSKai Vehmanen 	.group_id = 0,
164c8a4cabSKai Vehmanen };
174c8a4cabSKai Vehmanen 
18093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_endpoint spk_l_endpoint = {
19093b9dcbSPierre-Louis Bossart 	.num = 0,
20093b9dcbSPierre-Louis Bossart 	.aggregated = 1,
21093b9dcbSPierre-Louis Bossart 	.group_position = 0,
22093b9dcbSPierre-Louis Bossart 	.group_id = 1,
23093b9dcbSPierre-Louis Bossart };
24093b9dcbSPierre-Louis Bossart 
25093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_endpoint spk_r_endpoint = {
26093b9dcbSPierre-Louis Bossart 	.num = 0,
27093b9dcbSPierre-Louis Bossart 	.aggregated = 1,
28093b9dcbSPierre-Louis Bossart 	.group_position = 1,
29093b9dcbSPierre-Louis Bossart 	.group_id = 1,
30093b9dcbSPierre-Louis Bossart };
31093b9dcbSPierre-Louis Bossart 
324c8a4cabSKai Vehmanen static const struct snd_soc_acpi_adr_device rt711_0_adr[] = {
334c8a4cabSKai Vehmanen 	{
340c52d3e2SPierre-Louis Bossart 		.adr = 0x000020025D071100ull,
354c8a4cabSKai Vehmanen 		.num_endpoints = 1,
364c8a4cabSKai Vehmanen 		.endpoints = &single_endpoint,
374c8a4cabSKai Vehmanen 		.name_prefix = "rt711"
384c8a4cabSKai Vehmanen 	}
394c8a4cabSKai Vehmanen };
404c8a4cabSKai Vehmanen 
41093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt1308_1_group1_adr[] = {
42093b9dcbSPierre-Louis Bossart 	{
430c52d3e2SPierre-Louis Bossart 		.adr = 0x000120025D130800ull,
44093b9dcbSPierre-Louis Bossart 		.num_endpoints = 1,
45093b9dcbSPierre-Louis Bossart 		.endpoints = &spk_l_endpoint,
46093b9dcbSPierre-Louis Bossart 		.name_prefix = "rt1308-1"
47093b9dcbSPierre-Louis Bossart 	}
48093b9dcbSPierre-Louis Bossart };
49093b9dcbSPierre-Louis Bossart 
50093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt1308_2_group1_adr[] = {
51093b9dcbSPierre-Louis Bossart 	{
520c52d3e2SPierre-Louis Bossart 		.adr = 0x000220025D130800ull,
53093b9dcbSPierre-Louis Bossart 		.num_endpoints = 1,
54093b9dcbSPierre-Louis Bossart 		.endpoints = &spk_r_endpoint,
55093b9dcbSPierre-Louis Bossart 		.name_prefix = "rt1308-2"
56093b9dcbSPierre-Louis Bossart 	}
57093b9dcbSPierre-Louis Bossart };
58093b9dcbSPierre-Louis Bossart 
59093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt715_3_adr[] = {
60093b9dcbSPierre-Louis Bossart 	{
610c52d3e2SPierre-Louis Bossart 		.adr = 0x000320025D071500ull,
62093b9dcbSPierre-Louis Bossart 		.num_endpoints = 1,
63093b9dcbSPierre-Louis Bossart 		.endpoints = &single_endpoint,
64093b9dcbSPierre-Louis Bossart 		.name_prefix = "rt715"
65093b9dcbSPierre-Louis Bossart 	}
66093b9dcbSPierre-Louis Bossart };
67093b9dcbSPierre-Louis Bossart 
68093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt711_sdca_0_adr[] = {
69093b9dcbSPierre-Louis Bossart 	{
700c52d3e2SPierre-Louis Bossart 		.adr = 0x000030025D071101ull,
71093b9dcbSPierre-Louis Bossart 		.num_endpoints = 1,
72093b9dcbSPierre-Louis Bossart 		.endpoints = &single_endpoint,
73093b9dcbSPierre-Louis Bossart 		.name_prefix = "rt711"
74093b9dcbSPierre-Louis Bossart 	}
75093b9dcbSPierre-Louis Bossart };
76093b9dcbSPierre-Louis Bossart 
77359ace2bSGongjun Song static const struct snd_soc_acpi_adr_device rt711_sdca_2_adr[] = {
78359ace2bSGongjun Song 	{
79359ace2bSGongjun Song 		.adr = 0x000230025D071101ull,
80359ace2bSGongjun Song 		.num_endpoints = 1,
81359ace2bSGongjun Song 		.endpoints = &single_endpoint,
82359ace2bSGongjun Song 		.name_prefix = "rt711"
83359ace2bSGongjun Song 	}
84359ace2bSGongjun Song };
85359ace2bSGongjun Song 
86093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt1316_1_group1_adr[] = {
87093b9dcbSPierre-Louis Bossart 	{
880c52d3e2SPierre-Louis Bossart 		.adr = 0x000131025D131601ull, /* unique ID is set for some reason */
89093b9dcbSPierre-Louis Bossart 		.num_endpoints = 1,
90093b9dcbSPierre-Louis Bossart 		.endpoints = &spk_l_endpoint,
91093b9dcbSPierre-Louis Bossart 		.name_prefix = "rt1316-1"
92093b9dcbSPierre-Louis Bossart 	}
93093b9dcbSPierre-Louis Bossart };
94093b9dcbSPierre-Louis Bossart 
95093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt1316_2_group1_adr[] = {
96093b9dcbSPierre-Louis Bossart 	{
970c52d3e2SPierre-Louis Bossart 		.adr = 0x000230025D131601ull,
98093b9dcbSPierre-Louis Bossart 		.num_endpoints = 1,
99093b9dcbSPierre-Louis Bossart 		.endpoints = &spk_r_endpoint,
100093b9dcbSPierre-Louis Bossart 		.name_prefix = "rt1316-2"
101093b9dcbSPierre-Louis Bossart 	}
102093b9dcbSPierre-Louis Bossart };
103093b9dcbSPierre-Louis Bossart 
104093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt1316_3_group1_adr[] = {
105093b9dcbSPierre-Louis Bossart 	{
1060c52d3e2SPierre-Louis Bossart 		.adr = 0x000330025D131601ull,
107093b9dcbSPierre-Louis Bossart 		.num_endpoints = 1,
108093b9dcbSPierre-Louis Bossart 		.endpoints = &spk_r_endpoint,
109093b9dcbSPierre-Louis Bossart 		.name_prefix = "rt1316-2"
110093b9dcbSPierre-Louis Bossart 	}
111093b9dcbSPierre-Louis Bossart };
112093b9dcbSPierre-Louis Bossart 
113359ace2bSGongjun Song static const struct snd_soc_acpi_adr_device rt1316_0_group2_adr[] = {
114359ace2bSGongjun Song 	{
115359ace2bSGongjun Song 		.adr = 0x000031025D131601ull,
116359ace2bSGongjun Song 		.num_endpoints = 1,
117359ace2bSGongjun Song 		.endpoints = &spk_l_endpoint,
118359ace2bSGongjun Song 		.name_prefix = "rt1316-1"
119359ace2bSGongjun Song 	}
120359ace2bSGongjun Song };
121359ace2bSGongjun Song 
122359ace2bSGongjun Song static const struct snd_soc_acpi_adr_device rt1316_1_group2_adr[] = {
123359ace2bSGongjun Song 	{
124359ace2bSGongjun Song 		.adr = 0x000130025D131601ull,
125359ace2bSGongjun Song 		.num_endpoints = 1,
126359ace2bSGongjun Song 		.endpoints = &spk_r_endpoint,
127359ace2bSGongjun Song 		.name_prefix = "rt1316-2"
128359ace2bSGongjun Song 	}
129359ace2bSGongjun Song };
130359ace2bSGongjun Song 
131870dc42fSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt1316_2_single_adr[] = {
132870dc42fSPierre-Louis Bossart 	{
1330c52d3e2SPierre-Louis Bossart 		.adr = 0x000230025D131601ull,
134870dc42fSPierre-Louis Bossart 		.num_endpoints = 1,
135870dc42fSPierre-Louis Bossart 		.endpoints = &single_endpoint,
136870dc42fSPierre-Louis Bossart 		.name_prefix = "rt1316-1"
137870dc42fSPierre-Louis Bossart 	}
138870dc42fSPierre-Louis Bossart };
139870dc42fSPierre-Louis Bossart 
140*8d38cc29SPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt1316_3_single_adr[] = {
141*8d38cc29SPierre-Louis Bossart 	{
142*8d38cc29SPierre-Louis Bossart 		.adr = 0x000330025D131601ull,
143*8d38cc29SPierre-Louis Bossart 		.num_endpoints = 1,
144*8d38cc29SPierre-Louis Bossart 		.endpoints = &single_endpoint,
145*8d38cc29SPierre-Louis Bossart 		.name_prefix = "rt1316-1"
146*8d38cc29SPierre-Louis Bossart 	}
147*8d38cc29SPierre-Louis Bossart };
148*8d38cc29SPierre-Louis Bossart 
149870dc42fSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt714_0_adr[] = {
150870dc42fSPierre-Louis Bossart 	{
1510c52d3e2SPierre-Louis Bossart 		.adr = 0x000030025D071401ull,
152870dc42fSPierre-Louis Bossart 		.num_endpoints = 1,
153870dc42fSPierre-Louis Bossart 		.endpoints = &single_endpoint,
154870dc42fSPierre-Louis Bossart 		.name_prefix = "rt714"
155870dc42fSPierre-Louis Bossart 	}
156870dc42fSPierre-Louis Bossart };
157870dc42fSPierre-Louis Bossart 
158093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt714_2_adr[] = {
159093b9dcbSPierre-Louis Bossart 	{
1600c52d3e2SPierre-Louis Bossart 		.adr = 0x000230025D071401ull,
161093b9dcbSPierre-Louis Bossart 		.num_endpoints = 1,
162093b9dcbSPierre-Louis Bossart 		.endpoints = &single_endpoint,
163093b9dcbSPierre-Louis Bossart 		.name_prefix = "rt714"
164093b9dcbSPierre-Louis Bossart 	}
165093b9dcbSPierre-Louis Bossart };
166093b9dcbSPierre-Louis Bossart 
167093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt714_3_adr[] = {
168093b9dcbSPierre-Louis Bossart 	{
1690c52d3e2SPierre-Louis Bossart 		.adr = 0x000330025D071401ull,
170093b9dcbSPierre-Louis Bossart 		.num_endpoints = 1,
171093b9dcbSPierre-Louis Bossart 		.endpoints = &single_endpoint,
172093b9dcbSPierre-Louis Bossart 		.name_prefix = "rt714"
173093b9dcbSPierre-Louis Bossart 	}
174093b9dcbSPierre-Louis Bossart };
175093b9dcbSPierre-Louis Bossart 
176093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_link_adr adl_default[] = {
177093b9dcbSPierre-Louis Bossart 	{
178093b9dcbSPierre-Louis Bossart 		.mask = BIT(0),
179093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt711_0_adr),
180093b9dcbSPierre-Louis Bossart 		.adr_d = rt711_0_adr,
181093b9dcbSPierre-Louis Bossart 	},
182093b9dcbSPierre-Louis Bossart 	{
183093b9dcbSPierre-Louis Bossart 		.mask = BIT(1),
184093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt1308_1_group1_adr),
185093b9dcbSPierre-Louis Bossart 		.adr_d = rt1308_1_group1_adr,
186093b9dcbSPierre-Louis Bossart 	},
187093b9dcbSPierre-Louis Bossart 	{
188093b9dcbSPierre-Louis Bossart 		.mask = BIT(2),
189093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt1308_2_group1_adr),
190093b9dcbSPierre-Louis Bossart 		.adr_d = rt1308_2_group1_adr,
191093b9dcbSPierre-Louis Bossart 	},
192093b9dcbSPierre-Louis Bossart 	{
193093b9dcbSPierre-Louis Bossart 		.mask = BIT(3),
194093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt715_3_adr),
195093b9dcbSPierre-Louis Bossart 		.adr_d = rt715_3_adr,
196093b9dcbSPierre-Louis Bossart 	},
197093b9dcbSPierre-Louis Bossart 	{}
198093b9dcbSPierre-Louis Bossart };
199093b9dcbSPierre-Louis Bossart 
200093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_link_adr adl_sdca_default[] = {
201093b9dcbSPierre-Louis Bossart 	{
202093b9dcbSPierre-Louis Bossart 		.mask = BIT(0),
203093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),
204093b9dcbSPierre-Louis Bossart 		.adr_d = rt711_sdca_0_adr,
205093b9dcbSPierre-Louis Bossart 	},
206093b9dcbSPierre-Louis Bossart 	{
207093b9dcbSPierre-Louis Bossart 		.mask = BIT(1),
208093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt1316_1_group1_adr),
209093b9dcbSPierre-Louis Bossart 		.adr_d = rt1316_1_group1_adr,
210093b9dcbSPierre-Louis Bossart 	},
211093b9dcbSPierre-Louis Bossart 	{
212093b9dcbSPierre-Louis Bossart 		.mask = BIT(2),
213093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt1316_2_group1_adr),
214093b9dcbSPierre-Louis Bossart 		.adr_d = rt1316_2_group1_adr,
215093b9dcbSPierre-Louis Bossart 	},
216093b9dcbSPierre-Louis Bossart 	{
217093b9dcbSPierre-Louis Bossart 		.mask = BIT(3),
218093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt714_3_adr),
219093b9dcbSPierre-Louis Bossart 		.adr_d = rt714_3_adr,
220093b9dcbSPierre-Louis Bossart 	},
221093b9dcbSPierre-Louis Bossart 	{}
222093b9dcbSPierre-Louis Bossart };
223093b9dcbSPierre-Louis Bossart 
224093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_link_adr adl_sdca_3_in_1[] = {
225093b9dcbSPierre-Louis Bossart 	{
226093b9dcbSPierre-Louis Bossart 		.mask = BIT(0),
227093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),
228093b9dcbSPierre-Louis Bossart 		.adr_d = rt711_sdca_0_adr,
229093b9dcbSPierre-Louis Bossart 	},
230093b9dcbSPierre-Louis Bossart 	{
231093b9dcbSPierre-Louis Bossart 		.mask = BIT(1),
232093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt1316_1_group1_adr),
233093b9dcbSPierre-Louis Bossart 		.adr_d = rt1316_1_group1_adr,
234093b9dcbSPierre-Louis Bossart 	},
235093b9dcbSPierre-Louis Bossart 	{
236093b9dcbSPierre-Louis Bossart 		.mask = BIT(2),
237093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt714_2_adr),
238093b9dcbSPierre-Louis Bossart 		.adr_d = rt714_2_adr,
239093b9dcbSPierre-Louis Bossart 	},
240093b9dcbSPierre-Louis Bossart 	{
241093b9dcbSPierre-Louis Bossart 		.mask = BIT(3),
242093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt1316_3_group1_adr),
243093b9dcbSPierre-Louis Bossart 		.adr_d = rt1316_3_group1_adr,
244093b9dcbSPierre-Louis Bossart 	},
245093b9dcbSPierre-Louis Bossart 	{}
246093b9dcbSPierre-Louis Bossart };
247093b9dcbSPierre-Louis Bossart 
248359ace2bSGongjun Song static const struct snd_soc_acpi_link_adr adl_sdw_rt711_link2_rt1316_link01_rt714_link3[] = {
249359ace2bSGongjun Song 	{
250359ace2bSGongjun Song 		.mask = BIT(2),
251359ace2bSGongjun Song 		.num_adr = ARRAY_SIZE(rt711_sdca_2_adr),
252359ace2bSGongjun Song 		.adr_d = rt711_sdca_2_adr,
253359ace2bSGongjun Song 	},
254359ace2bSGongjun Song 	{
255359ace2bSGongjun Song 		.mask = BIT(0),
256359ace2bSGongjun Song 		.num_adr = ARRAY_SIZE(rt1316_0_group2_adr),
257359ace2bSGongjun Song 		.adr_d = rt1316_0_group2_adr,
258359ace2bSGongjun Song 	},
259359ace2bSGongjun Song 	{
260359ace2bSGongjun Song 		.mask = BIT(1),
261359ace2bSGongjun Song 		.num_adr = ARRAY_SIZE(rt1316_1_group2_adr),
262359ace2bSGongjun Song 		.adr_d = rt1316_1_group2_adr,
263359ace2bSGongjun Song 	},
264359ace2bSGongjun Song 	{
265359ace2bSGongjun Song 		.mask = BIT(3),
266359ace2bSGongjun Song 		.num_adr = ARRAY_SIZE(rt714_3_adr),
267359ace2bSGongjun Song 		.adr_d = rt714_3_adr,
268359ace2bSGongjun Song 	},
269359ace2bSGongjun Song 	{}
270359ace2bSGongjun Song };
271359ace2bSGongjun Song 
272c4dcd710SLibin Yang static const struct snd_soc_acpi_link_adr adl_sdw_rt711_link2_rt1316_link01[] = {
273c4dcd710SLibin Yang 	{
274c4dcd710SLibin Yang 		.mask = BIT(2),
275c4dcd710SLibin Yang 		.num_adr = ARRAY_SIZE(rt711_sdca_2_adr),
276c4dcd710SLibin Yang 		.adr_d = rt711_sdca_2_adr,
277c4dcd710SLibin Yang 	},
278c4dcd710SLibin Yang 	{
279c4dcd710SLibin Yang 		.mask = BIT(0),
280c4dcd710SLibin Yang 		.num_adr = ARRAY_SIZE(rt1316_0_group2_adr),
281c4dcd710SLibin Yang 		.adr_d = rt1316_0_group2_adr,
282c4dcd710SLibin Yang 	},
283c4dcd710SLibin Yang 	{
284c4dcd710SLibin Yang 		.mask = BIT(1),
285c4dcd710SLibin Yang 		.num_adr = ARRAY_SIZE(rt1316_1_group2_adr),
286c4dcd710SLibin Yang 		.adr_d = rt1316_1_group2_adr,
287c4dcd710SLibin Yang 	},
288c4dcd710SLibin Yang 	{}
289c4dcd710SLibin Yang };
290c4dcd710SLibin Yang 
291a1797d61SGongjun Song static const struct snd_soc_acpi_link_adr adl_sdw_rt1316_link12_rt714_link0[] = {
292a1797d61SGongjun Song 	{
293a1797d61SGongjun Song 		.mask = BIT(1),
294a1797d61SGongjun Song 		.num_adr = ARRAY_SIZE(rt1316_1_group1_adr),
295a1797d61SGongjun Song 		.adr_d = rt1316_1_group1_adr,
296a1797d61SGongjun Song 	},
297a1797d61SGongjun Song 	{
298a1797d61SGongjun Song 		.mask = BIT(2),
299a1797d61SGongjun Song 		.num_adr = ARRAY_SIZE(rt1316_2_group1_adr),
300a1797d61SGongjun Song 		.adr_d = rt1316_2_group1_adr,
301a1797d61SGongjun Song 	},
302a1797d61SGongjun Song 	{
303a1797d61SGongjun Song 		.mask = BIT(0),
304a1797d61SGongjun Song 		.num_adr = ARRAY_SIZE(rt714_0_adr),
305a1797d61SGongjun Song 		.adr_d = rt714_0_adr,
306a1797d61SGongjun Song 	},
307a1797d61SGongjun Song 	{}
308a1797d61SGongjun Song };
309a1797d61SGongjun Song 
31011e18f58SGongjun Song static const struct snd_soc_acpi_link_adr adl_sdw_rt1316_link2_rt714_link3[] = {
31111e18f58SGongjun Song 	{
31211e18f58SGongjun Song 		.mask = BIT(2),
31311e18f58SGongjun Song 		.num_adr = ARRAY_SIZE(rt1316_2_single_adr),
31411e18f58SGongjun Song 		.adr_d = rt1316_2_single_adr,
31511e18f58SGongjun Song 	},
31611e18f58SGongjun Song 	{
31711e18f58SGongjun Song 		.mask = BIT(3),
31811e18f58SGongjun Song 		.num_adr = ARRAY_SIZE(rt714_3_adr),
31911e18f58SGongjun Song 		.adr_d = rt714_3_adr,
32011e18f58SGongjun Song 	},
32111e18f58SGongjun Song 	{}
32211e18f58SGongjun Song };
32311e18f58SGongjun Song 
324870dc42fSPierre-Louis Bossart static const struct snd_soc_acpi_link_adr adl_sdw_rt1316_link2_rt714_link0[] = {
325870dc42fSPierre-Louis Bossart 	{
326870dc42fSPierre-Louis Bossart 		.mask = BIT(2),
327870dc42fSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt1316_2_single_adr),
328870dc42fSPierre-Louis Bossart 		.adr_d = rt1316_2_single_adr,
329870dc42fSPierre-Louis Bossart 	},
330870dc42fSPierre-Louis Bossart 	{
331870dc42fSPierre-Louis Bossart 		.mask = BIT(0),
332870dc42fSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt714_0_adr),
333870dc42fSPierre-Louis Bossart 		.adr_d = rt714_0_adr,
334870dc42fSPierre-Louis Bossart 	},
335870dc42fSPierre-Louis Bossart 	{}
336870dc42fSPierre-Louis Bossart };
337870dc42fSPierre-Louis Bossart 
338*8d38cc29SPierre-Louis Bossart static const struct snd_soc_acpi_link_adr adl_sdw_rt711_link0_rt1316_link3[] = {
339*8d38cc29SPierre-Louis Bossart 	{
340*8d38cc29SPierre-Louis Bossart 		.mask = BIT(0),
341*8d38cc29SPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),
342*8d38cc29SPierre-Louis Bossart 		.adr_d = rt711_sdca_0_adr,
343*8d38cc29SPierre-Louis Bossart 	},
344*8d38cc29SPierre-Louis Bossart 	{
345*8d38cc29SPierre-Louis Bossart 		.mask = BIT(3),
346*8d38cc29SPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt1316_3_single_adr),
347*8d38cc29SPierre-Louis Bossart 		.adr_d = rt1316_3_single_adr,
348*8d38cc29SPierre-Louis Bossart 	},
349*8d38cc29SPierre-Louis Bossart 	{}
350*8d38cc29SPierre-Louis Bossart };
351*8d38cc29SPierre-Louis Bossart 
352c0fbe9fdSVamshi Krishna Gopal static const struct snd_soc_acpi_adr_device mx8373_2_adr[] = {
353c0fbe9fdSVamshi Krishna Gopal 	{
354c0fbe9fdSVamshi Krishna Gopal 		.adr = 0x000223019F837300ull,
355c0fbe9fdSVamshi Krishna Gopal 		.num_endpoints = 1,
356c0fbe9fdSVamshi Krishna Gopal 		.endpoints = &spk_l_endpoint,
357c0fbe9fdSVamshi Krishna Gopal 		.name_prefix = "Left"
358c0fbe9fdSVamshi Krishna Gopal 	},
359c0fbe9fdSVamshi Krishna Gopal 	{
360c0fbe9fdSVamshi Krishna Gopal 		.adr = 0x000227019F837300ull,
361c0fbe9fdSVamshi Krishna Gopal 		.num_endpoints = 1,
362c0fbe9fdSVamshi Krishna Gopal 		.endpoints = &spk_r_endpoint,
363c0fbe9fdSVamshi Krishna Gopal 		.name_prefix = "Right"
364c0fbe9fdSVamshi Krishna Gopal 	}
365c0fbe9fdSVamshi Krishna Gopal };
366c0fbe9fdSVamshi Krishna Gopal 
367c0fbe9fdSVamshi Krishna Gopal static const struct snd_soc_acpi_adr_device rt5682_0_adr[] = {
368c0fbe9fdSVamshi Krishna Gopal 	{
369c0fbe9fdSVamshi Krishna Gopal 		.adr = 0x000021025D568200ull,
370c0fbe9fdSVamshi Krishna Gopal 		.num_endpoints = 1,
371c0fbe9fdSVamshi Krishna Gopal 		.endpoints = &single_endpoint,
372c0fbe9fdSVamshi Krishna Gopal 		.name_prefix = "rt5682"
373c0fbe9fdSVamshi Krishna Gopal 	}
374c0fbe9fdSVamshi Krishna Gopal };
375c0fbe9fdSVamshi Krishna Gopal 
3764c8a4cabSKai Vehmanen static const struct snd_soc_acpi_link_adr adl_rvp[] = {
3774c8a4cabSKai Vehmanen 	{
3784c8a4cabSKai Vehmanen 		.mask = BIT(0),
3794c8a4cabSKai Vehmanen 		.num_adr = ARRAY_SIZE(rt711_0_adr),
3804c8a4cabSKai Vehmanen 		.adr_d = rt711_0_adr,
3814c8a4cabSKai Vehmanen 	},
3824c8a4cabSKai Vehmanen 	{}
3834c8a4cabSKai Vehmanen };
3844c8a4cabSKai Vehmanen 
385d7be9e33SMuralidhar Reddy static const struct snd_soc_acpi_link_adr adlps_rvp[] = {
386d7be9e33SMuralidhar Reddy 	{
387d7be9e33SMuralidhar Reddy 		.mask = BIT(0),
388d7be9e33SMuralidhar Reddy 		.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),
389d7be9e33SMuralidhar Reddy 		.adr_d = rt711_sdca_0_adr,
390d7be9e33SMuralidhar Reddy 	},
391d7be9e33SMuralidhar Reddy 	{}
392d7be9e33SMuralidhar Reddy };
393d7be9e33SMuralidhar Reddy 
394c0fbe9fdSVamshi Krishna Gopal static const struct snd_soc_acpi_link_adr adl_chromebook_base[] = {
395c0fbe9fdSVamshi Krishna Gopal 	{
396c0fbe9fdSVamshi Krishna Gopal 		.mask = BIT(0),
397c0fbe9fdSVamshi Krishna Gopal 		.num_adr = ARRAY_SIZE(rt5682_0_adr),
398c0fbe9fdSVamshi Krishna Gopal 		.adr_d = rt5682_0_adr,
399c0fbe9fdSVamshi Krishna Gopal 	},
400c0fbe9fdSVamshi Krishna Gopal 	{
401c0fbe9fdSVamshi Krishna Gopal 		.mask = BIT(2),
402c0fbe9fdSVamshi Krishna Gopal 		.num_adr = ARRAY_SIZE(mx8373_2_adr),
403c0fbe9fdSVamshi Krishna Gopal 		.adr_d = mx8373_2_adr,
404c0fbe9fdSVamshi Krishna Gopal 	},
405c0fbe9fdSVamshi Krishna Gopal 	{}
406c0fbe9fdSVamshi Krishna Gopal };
407c0fbe9fdSVamshi Krishna Gopal 
4082a29ff7aSVamshi Krishna Gopal static const struct snd_soc_acpi_codecs adl_max98373_amp = {
4092a29ff7aSVamshi Krishna Gopal 	.num_codecs = 1,
4102a29ff7aSVamshi Krishna Gopal 	.codecs = {"MX98373"}
4112a29ff7aSVamshi Krishna Gopal };
4122a29ff7aSVamshi Krishna Gopal 
4132a29ff7aSVamshi Krishna Gopal static const struct snd_soc_acpi_codecs adl_max98357a_amp = {
4142a29ff7aSVamshi Krishna Gopal 	.num_codecs = 1,
4152a29ff7aSVamshi Krishna Gopal 	.codecs = {"MX98357A"}
4162a29ff7aSVamshi Krishna Gopal };
4172a29ff7aSVamshi Krishna Gopal 
4189c892547SMalik_Hsu static const struct snd_soc_acpi_codecs adl_max98360a_amp = {
4199c892547SMalik_Hsu 	.num_codecs = 1,
4209c892547SMalik_Hsu 	.codecs = {"MX98360A"}
4219c892547SMalik_Hsu };
4229c892547SMalik_Hsu 
423d4f3fdc2SBrent Lu static const struct snd_soc_acpi_codecs adl_rt5682_rt5682s_hp = {
424d4f3fdc2SBrent Lu 	.num_codecs = 2,
425d4f3fdc2SBrent Lu 	.codecs = {"10EC5682", "RTL5682"},
426d4f3fdc2SBrent Lu };
427d4f3fdc2SBrent Lu 
4288d0872f6SMac Chiang static const struct snd_soc_acpi_codecs adl_rt1019p_amp = {
4298d0872f6SMac Chiang 	.num_codecs = 1,
4308d0872f6SMac Chiang 	.codecs = {"RTL1019"}
4318d0872f6SMac Chiang };
4328d0872f6SMac Chiang 
433f316c9d9SMac Chiang static const struct snd_soc_acpi_codecs adl_max98390_amp = {
434f316c9d9SMac Chiang 	.num_codecs = 1,
435f316c9d9SMac Chiang 	.codecs = {"MX98390"}
436f316c9d9SMac Chiang };
437f316c9d9SMac Chiang 
4384c8a4cabSKai Vehmanen struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_machines[] = {
4392a29ff7aSVamshi Krishna Gopal 	{
440d4f3fdc2SBrent Lu 		.comp_ids = &adl_rt5682_rt5682s_hp,
441590cfb08SPierre-Louis Bossart 		.drv_name = "adl_mx98373_rt5682",
4422a29ff7aSVamshi Krishna Gopal 		.machine_quirk = snd_soc_acpi_codec_list,
4432a29ff7aSVamshi Krishna Gopal 		.quirk_data = &adl_max98373_amp,
4442a29ff7aSVamshi Krishna Gopal 		.sof_tplg_filename = "sof-adl-max98373-rt5682.tplg",
4452a29ff7aSVamshi Krishna Gopal 	},
4462a29ff7aSVamshi Krishna Gopal 	{
447d4f3fdc2SBrent Lu 		.comp_ids = &adl_rt5682_rt5682s_hp,
4483c561a09SBrent Lu 		.drv_name = "adl_mx98357_rt5682",
4492a29ff7aSVamshi Krishna Gopal 		.machine_quirk = snd_soc_acpi_codec_list,
4502a29ff7aSVamshi Krishna Gopal 		.quirk_data = &adl_max98357a_amp,
4512a29ff7aSVamshi Krishna Gopal 		.sof_tplg_filename = "sof-adl-max98357a-rt5682.tplg",
4522a29ff7aSVamshi Krishna Gopal 	},
4539c892547SMalik_Hsu 	{
454d4f3fdc2SBrent Lu 		.comp_ids = &adl_rt5682_rt5682s_hp,
4559c892547SMalik_Hsu 		.drv_name = "adl_mx98360_rt5682",
4569c892547SMalik_Hsu 		.machine_quirk = snd_soc_acpi_codec_list,
4579c892547SMalik_Hsu 		.quirk_data = &adl_max98360a_amp,
4589c892547SMalik_Hsu 		.sof_tplg_filename = "sof-adl-max98360a-rt5682.tplg",
4599c892547SMalik_Hsu 	},
4608d0872f6SMac Chiang 	{
4618d0872f6SMac Chiang 		.id = "10508825",
4628d0872f6SMac Chiang 		.drv_name = "adl_rt1019p_nau8825",
4638d0872f6SMac Chiang 		.machine_quirk = snd_soc_acpi_codec_list,
4648d0872f6SMac Chiang 		.quirk_data = &adl_rt1019p_amp,
4658d0872f6SMac Chiang 		.sof_tplg_filename = "sof-adl-rt1019-nau8825.tplg",
4668d0872f6SMac Chiang 	},
4678d0872f6SMac Chiang 	{
4688d0872f6SMac Chiang 		.id = "10508825",
4698d0872f6SMac Chiang 		.drv_name = "adl_max98373_nau8825",
4708d0872f6SMac Chiang 		.machine_quirk = snd_soc_acpi_codec_list,
4718d0872f6SMac Chiang 		.quirk_data = &adl_max98373_amp,
4728d0872f6SMac Chiang 		.sof_tplg_filename = "sof-adl-max98373-nau8825.tplg",
4738d0872f6SMac Chiang 	},
4748d0872f6SMac Chiang 	{
4758d0872f6SMac Chiang 		.id = "10508825",
4768d0872f6SMac Chiang 		.drv_name = "adl_mx98360a_nau8825",
4778d0872f6SMac Chiang 		.machine_quirk = snd_soc_acpi_codec_list,
4788d0872f6SMac Chiang 		.quirk_data = &adl_max98360a_amp,
4795fa66f29SDavid Lin 		.sof_tplg_filename = "sof-adl-max98360a-nau8825.tplg",
4808d0872f6SMac Chiang 	},
4818d0872f6SMac Chiang 	{
4820b56ed19SVamshi Krishna 		.id = "RTL5682",
4830b56ed19SVamshi Krishna 		.drv_name = "adl_rt1019_rt5682s",
4840b56ed19SVamshi Krishna 		.machine_quirk = snd_soc_acpi_codec_list,
4850b56ed19SVamshi Krishna 		.quirk_data = &adl_rt1019p_amp,
4860b56ed19SVamshi Krishna 		.sof_tplg_filename = "sof-adl-rt1019-rt5682.tplg",
4870b56ed19SVamshi Krishna 	},
4880b56ed19SVamshi Krishna 	{
4898d0872f6SMac Chiang 		.id = "10508825",
4908d0872f6SMac Chiang 		.drv_name = "sof_nau8825",
4918d0872f6SMac Chiang 		.sof_tplg_filename = "sof-adl-nau8825.tplg",
4928d0872f6SMac Chiang 	},
493f316c9d9SMac Chiang 	{
494f316c9d9SMac Chiang 		.comp_ids = &adl_rt5682_rt5682s_hp,
495f316c9d9SMac Chiang 		.drv_name = "adl_max98390_rt5682",
496f316c9d9SMac Chiang 		.machine_quirk = snd_soc_acpi_codec_list,
497f316c9d9SMac Chiang 		.quirk_data = &adl_max98390_amp,
498f316c9d9SMac Chiang 		.sof_tplg_filename = "sof-adl-max98390-rt5682.tplg",
499f316c9d9SMac Chiang 	},
500c8e98eafSAjye Huang 	{
501c8e98eafSAjye Huang 		.comp_ids = &adl_rt5682_rt5682s_hp,
502c8e98eafSAjye Huang 		.drv_name = "adl_rt5682",
503c8e98eafSAjye Huang 		.sof_tplg_filename = "sof-adl-rt5682.tplg",
504c8e98eafSAjye Huang 	},
505cd486d37SBrent Lu 	{
506cd486d37SBrent Lu 		.id = "10134242",
507cd486d37SBrent Lu 		.drv_name = "adl_mx98360a_cs4242",
508cd486d37SBrent Lu 		.machine_quirk = snd_soc_acpi_codec_list,
509cd486d37SBrent Lu 		.quirk_data = &adl_max98360a_amp,
510cd486d37SBrent Lu 		.sof_tplg_filename = "sof-adl-max98360a-cs42l42.tplg",
511cd486d37SBrent Lu 	},
5122fe14ff6SBrent Lu 	/* place amp-only boards in the end of table */
5132fe14ff6SBrent Lu 	{
5142fe14ff6SBrent Lu 		.id = "CSC3541",
5152fe14ff6SBrent Lu 		.drv_name = "adl_cs35l41",
5162fe14ff6SBrent Lu 		.sof_tplg_filename = "sof-adl-cs35l41.tplg",
5172fe14ff6SBrent Lu 	},
5184c8a4cabSKai Vehmanen 	{},
5194c8a4cabSKai Vehmanen };
5204c8a4cabSKai Vehmanen EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_adl_machines);
5214c8a4cabSKai Vehmanen 
5224c8a4cabSKai Vehmanen /* this table is used when there is no I2S codec present */
5234c8a4cabSKai Vehmanen struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_sdw_machines[] = {
5244c8a4cabSKai Vehmanen 	{
525093b9dcbSPierre-Louis Bossart 		.link_mask = 0xF, /* 4 active links required */
526093b9dcbSPierre-Louis Bossart 		.links = adl_default,
527093b9dcbSPierre-Louis Bossart 		.drv_name = "sof_sdw",
528093b9dcbSPierre-Louis Bossart 		.sof_tplg_filename = "sof-adl-rt711-l0-rt1308-l12-rt715-l3.tplg",
529093b9dcbSPierre-Louis Bossart 	},
530093b9dcbSPierre-Louis Bossart 	{
531093b9dcbSPierre-Louis Bossart 		.link_mask = 0xF, /* 4 active links required */
532093b9dcbSPierre-Louis Bossart 		.links = adl_sdca_default,
533093b9dcbSPierre-Louis Bossart 		.drv_name = "sof_sdw",
534093b9dcbSPierre-Louis Bossart 		.sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l12-rt714-l3.tplg",
535093b9dcbSPierre-Louis Bossart 	},
536093b9dcbSPierre-Louis Bossart 	{
537093b9dcbSPierre-Louis Bossart 		.link_mask = 0xF, /* 4 active links required */
538093b9dcbSPierre-Louis Bossart 		.links = adl_sdca_3_in_1,
539093b9dcbSPierre-Louis Bossart 		.drv_name = "sof_sdw",
540093b9dcbSPierre-Louis Bossart 		.sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l13-rt714-l2.tplg",
541093b9dcbSPierre-Louis Bossart 	},
542093b9dcbSPierre-Louis Bossart 	{
543359ace2bSGongjun Song 		.link_mask = 0xF, /* 4 active links required */
544359ace2bSGongjun Song 		.links = adl_sdw_rt711_link2_rt1316_link01_rt714_link3,
545359ace2bSGongjun Song 		.drv_name = "sof_sdw",
546359ace2bSGongjun Song 		.sof_tplg_filename = "sof-adl-rt711-l2-rt1316-l01-rt714-l3.tplg",
547359ace2bSGongjun Song 	},
548359ace2bSGongjun Song 	{
549c4dcd710SLibin Yang 		.link_mask = 0x7, /* rt1316 on link0 and link1 & rt711 on link2*/
550c4dcd710SLibin Yang 		.links = adl_sdw_rt711_link2_rt1316_link01,
551c4dcd710SLibin Yang 		.drv_name = "sof_sdw",
552c4dcd710SLibin Yang 		.sof_tplg_filename = "sof-adl-rt711-l2-rt1316-l01.tplg",
553c4dcd710SLibin Yang 	},
554c4dcd710SLibin Yang 	{
55511e18f58SGongjun Song 		.link_mask = 0xC, /* rt1316 on link2 & rt714 on link3 */
55611e18f58SGongjun Song 		.links = adl_sdw_rt1316_link2_rt714_link3,
55711e18f58SGongjun Song 		.drv_name = "sof_sdw",
55811e18f58SGongjun Song 		.sof_tplg_filename = "sof-adl-rt1316-l2-mono-rt714-l3.tplg",
55911e18f58SGongjun Song 	},
56011e18f58SGongjun Song 	{
561a1797d61SGongjun Song 		.link_mask = 0x7, /* rt714 on link0 & two rt1316s on link1 and link2 */
562a1797d61SGongjun Song 		.links = adl_sdw_rt1316_link12_rt714_link0,
563a1797d61SGongjun Song 		.drv_name = "sof_sdw",
564a1797d61SGongjun Song 		.sof_tplg_filename = "sof-adl-rt1316-l12-rt714-l0.tplg",
565a1797d61SGongjun Song 	},
566a1797d61SGongjun Song 	{
567870dc42fSPierre-Louis Bossart 		.link_mask = 0x5, /* 2 active links required */
568870dc42fSPierre-Louis Bossart 		.links = adl_sdw_rt1316_link2_rt714_link0,
569870dc42fSPierre-Louis Bossart 		.drv_name = "sof_sdw",
570870dc42fSPierre-Louis Bossart 		.sof_tplg_filename = "sof-adl-rt1316-l2-mono-rt714-l0.tplg",
571870dc42fSPierre-Louis Bossart 	},
572870dc42fSPierre-Louis Bossart 	{
573*8d38cc29SPierre-Louis Bossart 		.link_mask = 0x9, /* 2 active links required */
574*8d38cc29SPierre-Louis Bossart 		.links = adl_sdw_rt711_link0_rt1316_link3,
575*8d38cc29SPierre-Louis Bossart 		.drv_name = "sof_sdw",
576*8d38cc29SPierre-Louis Bossart 		.sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l3.tplg",
577*8d38cc29SPierre-Louis Bossart 	},
578*8d38cc29SPierre-Louis Bossart 	{
5794c8a4cabSKai Vehmanen 		.link_mask = 0x1, /* link0 required */
5804c8a4cabSKai Vehmanen 		.links = adl_rvp,
5814c8a4cabSKai Vehmanen 		.drv_name = "sof_sdw",
5824c8a4cabSKai Vehmanen 		.sof_tplg_filename = "sof-adl-rt711.tplg",
5834c8a4cabSKai Vehmanen 	},
584c0fbe9fdSVamshi Krishna Gopal 	{
585d7be9e33SMuralidhar Reddy 		.link_mask = 0x1, /* link0 required */
586d7be9e33SMuralidhar Reddy 		.links = adlps_rvp,
587d7be9e33SMuralidhar Reddy 		.drv_name = "sof_sdw",
588d7be9e33SMuralidhar Reddy 		.sof_tplg_filename = "sof-adl-rt711.tplg",
589d7be9e33SMuralidhar Reddy 	},
590d7be9e33SMuralidhar Reddy 	{
591c0fbe9fdSVamshi Krishna Gopal 		.link_mask = 0x5, /* rt5682 on link0 & 2xmax98373 on link 2 */
592c0fbe9fdSVamshi Krishna Gopal 		.links = adl_chromebook_base,
593c0fbe9fdSVamshi Krishna Gopal 		.drv_name = "sof_sdw",
594c0fbe9fdSVamshi Krishna Gopal 		.sof_tplg_filename = "sof-adl-sdw-max98373-rt5682.tplg",
595c0fbe9fdSVamshi Krishna Gopal 	},
5964c8a4cabSKai Vehmanen 	{},
5974c8a4cabSKai Vehmanen };
5984c8a4cabSKai Vehmanen EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_adl_sdw_machines);
599