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 
77093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt1316_1_group1_adr[] = {
78093b9dcbSPierre-Louis Bossart 	{
790c52d3e2SPierre-Louis Bossart 		.adr = 0x000131025D131601ull, /* unique ID is set for some reason */
80093b9dcbSPierre-Louis Bossart 		.num_endpoints = 1,
81093b9dcbSPierre-Louis Bossart 		.endpoints = &spk_l_endpoint,
82093b9dcbSPierre-Louis Bossart 		.name_prefix = "rt1316-1"
83093b9dcbSPierre-Louis Bossart 	}
84093b9dcbSPierre-Louis Bossart };
85093b9dcbSPierre-Louis Bossart 
86093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt1316_2_group1_adr[] = {
87093b9dcbSPierre-Louis Bossart 	{
880c52d3e2SPierre-Louis Bossart 		.adr = 0x000230025D131601ull,
89093b9dcbSPierre-Louis Bossart 		.num_endpoints = 1,
90093b9dcbSPierre-Louis Bossart 		.endpoints = &spk_r_endpoint,
91093b9dcbSPierre-Louis Bossart 		.name_prefix = "rt1316-2"
92093b9dcbSPierre-Louis Bossart 	}
93093b9dcbSPierre-Louis Bossart };
94093b9dcbSPierre-Louis Bossart 
95093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt1316_3_group1_adr[] = {
96093b9dcbSPierre-Louis Bossart 	{
970c52d3e2SPierre-Louis Bossart 		.adr = 0x000330025D131601ull,
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 
104870dc42fSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt1316_2_single_adr[] = {
105870dc42fSPierre-Louis Bossart 	{
1060c52d3e2SPierre-Louis Bossart 		.adr = 0x000230025D131601ull,
107870dc42fSPierre-Louis Bossart 		.num_endpoints = 1,
108870dc42fSPierre-Louis Bossart 		.endpoints = &single_endpoint,
109870dc42fSPierre-Louis Bossart 		.name_prefix = "rt1316-1"
110870dc42fSPierre-Louis Bossart 	}
111870dc42fSPierre-Louis Bossart };
112870dc42fSPierre-Louis Bossart 
113870dc42fSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt714_0_adr[] = {
114870dc42fSPierre-Louis Bossart 	{
1150c52d3e2SPierre-Louis Bossart 		.adr = 0x000030025D071401ull,
116870dc42fSPierre-Louis Bossart 		.num_endpoints = 1,
117870dc42fSPierre-Louis Bossart 		.endpoints = &single_endpoint,
118870dc42fSPierre-Louis Bossart 		.name_prefix = "rt714"
119870dc42fSPierre-Louis Bossart 	}
120870dc42fSPierre-Louis Bossart };
121870dc42fSPierre-Louis Bossart 
122093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt714_2_adr[] = {
123093b9dcbSPierre-Louis Bossart 	{
1240c52d3e2SPierre-Louis Bossart 		.adr = 0x000230025D071401ull,
125093b9dcbSPierre-Louis Bossart 		.num_endpoints = 1,
126093b9dcbSPierre-Louis Bossart 		.endpoints = &single_endpoint,
127093b9dcbSPierre-Louis Bossart 		.name_prefix = "rt714"
128093b9dcbSPierre-Louis Bossart 	}
129093b9dcbSPierre-Louis Bossart };
130093b9dcbSPierre-Louis Bossart 
131093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_adr_device rt714_3_adr[] = {
132093b9dcbSPierre-Louis Bossart 	{
1330c52d3e2SPierre-Louis Bossart 		.adr = 0x000330025D071401ull,
134093b9dcbSPierre-Louis Bossart 		.num_endpoints = 1,
135093b9dcbSPierre-Louis Bossart 		.endpoints = &single_endpoint,
136093b9dcbSPierre-Louis Bossart 		.name_prefix = "rt714"
137093b9dcbSPierre-Louis Bossart 	}
138093b9dcbSPierre-Louis Bossart };
139093b9dcbSPierre-Louis Bossart 
140093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_link_adr adl_default[] = {
141093b9dcbSPierre-Louis Bossart 	{
142093b9dcbSPierre-Louis Bossart 		.mask = BIT(0),
143093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt711_0_adr),
144093b9dcbSPierre-Louis Bossart 		.adr_d = rt711_0_adr,
145093b9dcbSPierre-Louis Bossart 	},
146093b9dcbSPierre-Louis Bossart 	{
147093b9dcbSPierre-Louis Bossart 		.mask = BIT(1),
148093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt1308_1_group1_adr),
149093b9dcbSPierre-Louis Bossart 		.adr_d = rt1308_1_group1_adr,
150093b9dcbSPierre-Louis Bossart 	},
151093b9dcbSPierre-Louis Bossart 	{
152093b9dcbSPierre-Louis Bossart 		.mask = BIT(2),
153093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt1308_2_group1_adr),
154093b9dcbSPierre-Louis Bossart 		.adr_d = rt1308_2_group1_adr,
155093b9dcbSPierre-Louis Bossart 	},
156093b9dcbSPierre-Louis Bossart 	{
157093b9dcbSPierre-Louis Bossart 		.mask = BIT(3),
158093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt715_3_adr),
159093b9dcbSPierre-Louis Bossart 		.adr_d = rt715_3_adr,
160093b9dcbSPierre-Louis Bossart 	},
161093b9dcbSPierre-Louis Bossart 	{}
162093b9dcbSPierre-Louis Bossart };
163093b9dcbSPierre-Louis Bossart 
164093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_link_adr adl_sdca_default[] = {
165093b9dcbSPierre-Louis Bossart 	{
166093b9dcbSPierre-Louis Bossart 		.mask = BIT(0),
167093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),
168093b9dcbSPierre-Louis Bossart 		.adr_d = rt711_sdca_0_adr,
169093b9dcbSPierre-Louis Bossart 	},
170093b9dcbSPierre-Louis Bossart 	{
171093b9dcbSPierre-Louis Bossart 		.mask = BIT(1),
172093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt1316_1_group1_adr),
173093b9dcbSPierre-Louis Bossart 		.adr_d = rt1316_1_group1_adr,
174093b9dcbSPierre-Louis Bossart 	},
175093b9dcbSPierre-Louis Bossart 	{
176093b9dcbSPierre-Louis Bossart 		.mask = BIT(2),
177093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt1316_2_group1_adr),
178093b9dcbSPierre-Louis Bossart 		.adr_d = rt1316_2_group1_adr,
179093b9dcbSPierre-Louis Bossart 	},
180093b9dcbSPierre-Louis Bossart 	{
181093b9dcbSPierre-Louis Bossart 		.mask = BIT(3),
182093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt714_3_adr),
183093b9dcbSPierre-Louis Bossart 		.adr_d = rt714_3_adr,
184093b9dcbSPierre-Louis Bossart 	},
185093b9dcbSPierre-Louis Bossart 	{}
186093b9dcbSPierre-Louis Bossart };
187093b9dcbSPierre-Louis Bossart 
188093b9dcbSPierre-Louis Bossart static const struct snd_soc_acpi_link_adr adl_sdca_3_in_1[] = {
189093b9dcbSPierre-Louis Bossart 	{
190093b9dcbSPierre-Louis Bossart 		.mask = BIT(0),
191093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),
192093b9dcbSPierre-Louis Bossart 		.adr_d = rt711_sdca_0_adr,
193093b9dcbSPierre-Louis Bossart 	},
194093b9dcbSPierre-Louis Bossart 	{
195093b9dcbSPierre-Louis Bossart 		.mask = BIT(1),
196093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt1316_1_group1_adr),
197093b9dcbSPierre-Louis Bossart 		.adr_d = rt1316_1_group1_adr,
198093b9dcbSPierre-Louis Bossart 	},
199093b9dcbSPierre-Louis Bossart 	{
200093b9dcbSPierre-Louis Bossart 		.mask = BIT(2),
201093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt714_2_adr),
202093b9dcbSPierre-Louis Bossart 		.adr_d = rt714_2_adr,
203093b9dcbSPierre-Louis Bossart 	},
204093b9dcbSPierre-Louis Bossart 	{
205093b9dcbSPierre-Louis Bossart 		.mask = BIT(3),
206093b9dcbSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt1316_3_group1_adr),
207093b9dcbSPierre-Louis Bossart 		.adr_d = rt1316_3_group1_adr,
208093b9dcbSPierre-Louis Bossart 	},
209093b9dcbSPierre-Louis Bossart 	{}
210093b9dcbSPierre-Louis Bossart };
211093b9dcbSPierre-Louis Bossart 
212*a1797d61SGongjun Song static const struct snd_soc_acpi_link_adr adl_sdw_rt1316_link12_rt714_link0[] = {
213*a1797d61SGongjun Song 	{
214*a1797d61SGongjun Song 		.mask = BIT(1),
215*a1797d61SGongjun Song 		.num_adr = ARRAY_SIZE(rt1316_1_group1_adr),
216*a1797d61SGongjun Song 		.adr_d = rt1316_1_group1_adr,
217*a1797d61SGongjun Song 	},
218*a1797d61SGongjun Song 	{
219*a1797d61SGongjun Song 		.mask = BIT(2),
220*a1797d61SGongjun Song 		.num_adr = ARRAY_SIZE(rt1316_2_group1_adr),
221*a1797d61SGongjun Song 		.adr_d = rt1316_2_group1_adr,
222*a1797d61SGongjun Song 	},
223*a1797d61SGongjun Song 	{
224*a1797d61SGongjun Song 		.mask = BIT(0),
225*a1797d61SGongjun Song 		.num_adr = ARRAY_SIZE(rt714_0_adr),
226*a1797d61SGongjun Song 		.adr_d = rt714_0_adr,
227*a1797d61SGongjun Song 	},
228*a1797d61SGongjun Song 	{}
229*a1797d61SGongjun Song };
230*a1797d61SGongjun Song 
231870dc42fSPierre-Louis Bossart static const struct snd_soc_acpi_link_adr adl_sdw_rt1316_link2_rt714_link0[] = {
232870dc42fSPierre-Louis Bossart 	{
233870dc42fSPierre-Louis Bossart 		.mask = BIT(2),
234870dc42fSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt1316_2_single_adr),
235870dc42fSPierre-Louis Bossart 		.adr_d = rt1316_2_single_adr,
236870dc42fSPierre-Louis Bossart 	},
237870dc42fSPierre-Louis Bossart 	{
238870dc42fSPierre-Louis Bossart 		.mask = BIT(0),
239870dc42fSPierre-Louis Bossart 		.num_adr = ARRAY_SIZE(rt714_0_adr),
240870dc42fSPierre-Louis Bossart 		.adr_d = rt714_0_adr,
241870dc42fSPierre-Louis Bossart 	},
242870dc42fSPierre-Louis Bossart 	{}
243870dc42fSPierre-Louis Bossart };
244870dc42fSPierre-Louis Bossart 
245c0fbe9fdSVamshi Krishna Gopal static const struct snd_soc_acpi_adr_device mx8373_2_adr[] = {
246c0fbe9fdSVamshi Krishna Gopal 	{
247c0fbe9fdSVamshi Krishna Gopal 		.adr = 0x000223019F837300ull,
248c0fbe9fdSVamshi Krishna Gopal 		.num_endpoints = 1,
249c0fbe9fdSVamshi Krishna Gopal 		.endpoints = &spk_l_endpoint,
250c0fbe9fdSVamshi Krishna Gopal 		.name_prefix = "Left"
251c0fbe9fdSVamshi Krishna Gopal 	},
252c0fbe9fdSVamshi Krishna Gopal 	{
253c0fbe9fdSVamshi Krishna Gopal 		.adr = 0x000227019F837300ull,
254c0fbe9fdSVamshi Krishna Gopal 		.num_endpoints = 1,
255c0fbe9fdSVamshi Krishna Gopal 		.endpoints = &spk_r_endpoint,
256c0fbe9fdSVamshi Krishna Gopal 		.name_prefix = "Right"
257c0fbe9fdSVamshi Krishna Gopal 	}
258c0fbe9fdSVamshi Krishna Gopal };
259c0fbe9fdSVamshi Krishna Gopal 
260c0fbe9fdSVamshi Krishna Gopal static const struct snd_soc_acpi_adr_device rt5682_0_adr[] = {
261c0fbe9fdSVamshi Krishna Gopal 	{
262c0fbe9fdSVamshi Krishna Gopal 		.adr = 0x000021025D568200ull,
263c0fbe9fdSVamshi Krishna Gopal 		.num_endpoints = 1,
264c0fbe9fdSVamshi Krishna Gopal 		.endpoints = &single_endpoint,
265c0fbe9fdSVamshi Krishna Gopal 		.name_prefix = "rt5682"
266c0fbe9fdSVamshi Krishna Gopal 	}
267c0fbe9fdSVamshi Krishna Gopal };
268c0fbe9fdSVamshi Krishna Gopal 
2694c8a4cabSKai Vehmanen static const struct snd_soc_acpi_link_adr adl_rvp[] = {
2704c8a4cabSKai Vehmanen 	{
2714c8a4cabSKai Vehmanen 		.mask = BIT(0),
2724c8a4cabSKai Vehmanen 		.num_adr = ARRAY_SIZE(rt711_0_adr),
2734c8a4cabSKai Vehmanen 		.adr_d = rt711_0_adr,
2744c8a4cabSKai Vehmanen 	},
2754c8a4cabSKai Vehmanen 	{}
2764c8a4cabSKai Vehmanen };
2774c8a4cabSKai Vehmanen 
278c0fbe9fdSVamshi Krishna Gopal static const struct snd_soc_acpi_link_adr adl_chromebook_base[] = {
279c0fbe9fdSVamshi Krishna Gopal 	{
280c0fbe9fdSVamshi Krishna Gopal 		.mask = BIT(0),
281c0fbe9fdSVamshi Krishna Gopal 		.num_adr = ARRAY_SIZE(rt5682_0_adr),
282c0fbe9fdSVamshi Krishna Gopal 		.adr_d = rt5682_0_adr,
283c0fbe9fdSVamshi Krishna Gopal 	},
284c0fbe9fdSVamshi Krishna Gopal 	{
285c0fbe9fdSVamshi Krishna Gopal 		.mask = BIT(2),
286c0fbe9fdSVamshi Krishna Gopal 		.num_adr = ARRAY_SIZE(mx8373_2_adr),
287c0fbe9fdSVamshi Krishna Gopal 		.adr_d = mx8373_2_adr,
288c0fbe9fdSVamshi Krishna Gopal 	},
289c0fbe9fdSVamshi Krishna Gopal 	{}
290c0fbe9fdSVamshi Krishna Gopal };
291c0fbe9fdSVamshi Krishna Gopal 
2922a29ff7aSVamshi Krishna Gopal static const struct snd_soc_acpi_codecs adl_max98373_amp = {
2932a29ff7aSVamshi Krishna Gopal 	.num_codecs = 1,
2942a29ff7aSVamshi Krishna Gopal 	.codecs = {"MX98373"}
2952a29ff7aSVamshi Krishna Gopal };
2962a29ff7aSVamshi Krishna Gopal 
2972a29ff7aSVamshi Krishna Gopal static const struct snd_soc_acpi_codecs adl_max98357a_amp = {
2982a29ff7aSVamshi Krishna Gopal 	.num_codecs = 1,
2992a29ff7aSVamshi Krishna Gopal 	.codecs = {"MX98357A"}
3002a29ff7aSVamshi Krishna Gopal };
3012a29ff7aSVamshi Krishna Gopal 
3029c892547SMalik_Hsu static const struct snd_soc_acpi_codecs adl_max98360a_amp = {
3039c892547SMalik_Hsu 	.num_codecs = 1,
3049c892547SMalik_Hsu 	.codecs = {"MX98360A"}
3059c892547SMalik_Hsu };
3069c892547SMalik_Hsu 
307d4f3fdc2SBrent Lu static const struct snd_soc_acpi_codecs adl_rt5682_rt5682s_hp = {
308d4f3fdc2SBrent Lu 	.num_codecs = 2,
309d4f3fdc2SBrent Lu 	.codecs = {"10EC5682", "RTL5682"},
310d4f3fdc2SBrent Lu };
311d4f3fdc2SBrent Lu 
3124c8a4cabSKai Vehmanen struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_machines[] = {
3132a29ff7aSVamshi Krishna Gopal 	{
314d4f3fdc2SBrent Lu 		.comp_ids = &adl_rt5682_rt5682s_hp,
315590cfb08SPierre-Louis Bossart 		.drv_name = "adl_mx98373_rt5682",
3162a29ff7aSVamshi Krishna Gopal 		.machine_quirk = snd_soc_acpi_codec_list,
3172a29ff7aSVamshi Krishna Gopal 		.quirk_data = &adl_max98373_amp,
3182a29ff7aSVamshi Krishna Gopal 		.sof_fw_filename = "sof-adl.ri",
3192a29ff7aSVamshi Krishna Gopal 		.sof_tplg_filename = "sof-adl-max98373-rt5682.tplg",
3202a29ff7aSVamshi Krishna Gopal 	},
3212a29ff7aSVamshi Krishna Gopal 	{
322d4f3fdc2SBrent Lu 		.comp_ids = &adl_rt5682_rt5682s_hp,
3233c561a09SBrent Lu 		.drv_name = "adl_mx98357_rt5682",
3242a29ff7aSVamshi Krishna Gopal 		.machine_quirk = snd_soc_acpi_codec_list,
3252a29ff7aSVamshi Krishna Gopal 		.quirk_data = &adl_max98357a_amp,
3262a29ff7aSVamshi Krishna Gopal 		.sof_fw_filename = "sof-adl.ri",
3272a29ff7aSVamshi Krishna Gopal 		.sof_tplg_filename = "sof-adl-max98357a-rt5682.tplg",
3282a29ff7aSVamshi Krishna Gopal 	},
3299c892547SMalik_Hsu 	{
330d4f3fdc2SBrent Lu 		.comp_ids = &adl_rt5682_rt5682s_hp,
3319c892547SMalik_Hsu 		.drv_name = "adl_mx98360_rt5682",
3329c892547SMalik_Hsu 		.machine_quirk = snd_soc_acpi_codec_list,
3339c892547SMalik_Hsu 		.quirk_data = &adl_max98360a_amp,
3349c892547SMalik_Hsu 		.sof_fw_filename = "sof-adl.ri",
3359c892547SMalik_Hsu 		.sof_tplg_filename = "sof-adl-max98360a-rt5682.tplg",
3369c892547SMalik_Hsu 	},
3374c8a4cabSKai Vehmanen 	{},
3384c8a4cabSKai Vehmanen };
3394c8a4cabSKai Vehmanen EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_adl_machines);
3404c8a4cabSKai Vehmanen 
3414c8a4cabSKai Vehmanen /* this table is used when there is no I2S codec present */
3424c8a4cabSKai Vehmanen struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_sdw_machines[] = {
3434c8a4cabSKai Vehmanen 	{
344093b9dcbSPierre-Louis Bossart 		.link_mask = 0xF, /* 4 active links required */
345093b9dcbSPierre-Louis Bossart 		.links = adl_default,
346093b9dcbSPierre-Louis Bossart 		.drv_name = "sof_sdw",
347093b9dcbSPierre-Louis Bossart 		.sof_tplg_filename = "sof-adl-rt711-l0-rt1308-l12-rt715-l3.tplg",
348093b9dcbSPierre-Louis Bossart 	},
349093b9dcbSPierre-Louis Bossart 	{
350093b9dcbSPierre-Louis Bossart 		.link_mask = 0xF, /* 4 active links required */
351093b9dcbSPierre-Louis Bossart 		.links = adl_sdca_default,
352093b9dcbSPierre-Louis Bossart 		.drv_name = "sof_sdw",
353093b9dcbSPierre-Louis Bossart 		.sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l12-rt714-l3.tplg",
354093b9dcbSPierre-Louis Bossart 	},
355093b9dcbSPierre-Louis Bossart 	{
356093b9dcbSPierre-Louis Bossart 		.link_mask = 0xF, /* 4 active links required */
357093b9dcbSPierre-Louis Bossart 		.links = adl_sdca_3_in_1,
358093b9dcbSPierre-Louis Bossart 		.drv_name = "sof_sdw",
359093b9dcbSPierre-Louis Bossart 		.sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l13-rt714-l2.tplg",
360093b9dcbSPierre-Louis Bossart 	},
361093b9dcbSPierre-Louis Bossart 	{
362*a1797d61SGongjun Song 		.link_mask = 0x7, /* rt714 on link0 & two rt1316s on link1 and link2 */
363*a1797d61SGongjun Song 		.links = adl_sdw_rt1316_link12_rt714_link0,
364*a1797d61SGongjun Song 		.drv_name = "sof_sdw",
365*a1797d61SGongjun Song 		.sof_fw_filename = "sof-adl.ri",
366*a1797d61SGongjun Song 		.sof_tplg_filename = "sof-adl-rt1316-l12-rt714-l0.tplg",
367*a1797d61SGongjun Song 	},
368*a1797d61SGongjun Song 	{
369870dc42fSPierre-Louis Bossart 		.link_mask = 0x5, /* 2 active links required */
370870dc42fSPierre-Louis Bossart 		.links = adl_sdw_rt1316_link2_rt714_link0,
371870dc42fSPierre-Louis Bossart 		.drv_name = "sof_sdw",
372870dc42fSPierre-Louis Bossart 		.sof_tplg_filename = "sof-adl-rt1316-l2-mono-rt714-l0.tplg",
373870dc42fSPierre-Louis Bossart 	},
374870dc42fSPierre-Louis Bossart 	{
3754c8a4cabSKai Vehmanen 		.link_mask = 0x1, /* link0 required */
3764c8a4cabSKai Vehmanen 		.links = adl_rvp,
3774c8a4cabSKai Vehmanen 		.drv_name = "sof_sdw",
3784c8a4cabSKai Vehmanen 		.sof_tplg_filename = "sof-adl-rt711.tplg",
3794c8a4cabSKai Vehmanen 	},
380c0fbe9fdSVamshi Krishna Gopal 	{
381c0fbe9fdSVamshi Krishna Gopal 		.link_mask = 0x5, /* rt5682 on link0 & 2xmax98373 on link 2 */
382c0fbe9fdSVamshi Krishna Gopal 		.links = adl_chromebook_base,
383c0fbe9fdSVamshi Krishna Gopal 		.drv_name = "sof_sdw",
384c0fbe9fdSVamshi Krishna Gopal 		.sof_fw_filename = "sof-adl.ri",
385c0fbe9fdSVamshi Krishna Gopal 		.sof_tplg_filename = "sof-adl-sdw-max98373-rt5682.tplg",
386c0fbe9fdSVamshi Krishna Gopal 	},
3874c8a4cabSKai Vehmanen 	{},
3884c8a4cabSKai Vehmanen };
3894c8a4cabSKai Vehmanen EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_adl_sdw_machines);
390