~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/sound/soc/intel/common/soc-acpi-intel-mtl-match.c

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /sound/soc/intel/common/soc-acpi-intel-mtl-match.c (Architecture sparc64) and /sound/soc/intel/common/soc-acpi-intel-mtl-match.c (Architecture ppc)


  1 // SPDX-License-Identifier: GPL-2.0-only            1 // SPDX-License-Identifier: GPL-2.0-only
  2 /*                                                  2 /*
  3  * soc-acpi-intel-mtl-match.c - tables and sup      3  * soc-acpi-intel-mtl-match.c - tables and support for MTL ACPI enumeration.
  4  *                                                  4  *
  5  * Copyright (c) 2022, Intel Corporation.           5  * Copyright (c) 2022, Intel Corporation.
  6  *                                                  6  *
  7  */                                                 7  */
  8                                                     8 
  9 #include <sound/soc-acpi.h>                         9 #include <sound/soc-acpi.h>
 10 #include <sound/soc-acpi-intel-match.h>            10 #include <sound/soc-acpi-intel-match.h>
 11 #include <sound/soc-acpi-intel-ssp-common.h>       11 #include <sound/soc-acpi-intel-ssp-common.h>
 12 #include "soc-acpi-intel-sdw-mockup-match.h"       12 #include "soc-acpi-intel-sdw-mockup-match.h"
 13                                                    13 
 14 static const struct snd_soc_acpi_codecs mtl_rt     14 static const struct snd_soc_acpi_codecs mtl_rt5682_rt5682s_hp = {
 15         .num_codecs = 2,                           15         .num_codecs = 2,
 16         .codecs = {RT5682_ACPI_HID, RT5682S_AC     16         .codecs = {RT5682_ACPI_HID, RT5682S_ACPI_HID},
 17 };                                                 17 };
 18                                                    18 
 19 static const struct snd_soc_acpi_codecs mtl_es     19 static const struct snd_soc_acpi_codecs mtl_essx_83x6 = {
 20         .num_codecs = 3,                           20         .num_codecs = 3,
 21         .codecs = { "ESSX8316", "ESSX8326", "E     21         .codecs = { "ESSX8316", "ESSX8326", "ESSX8336"},
 22 };                                                 22 };
 23                                                    23 
 24 static const struct snd_soc_acpi_codecs mtl_lt     24 static const struct snd_soc_acpi_codecs mtl_lt6911_hdmi = {
 25         .num_codecs = 1,                           25         .num_codecs = 1,
 26         .codecs = {"INTC10B0"}                     26         .codecs = {"INTC10B0"}
 27 };                                                 27 };
 28                                                    28 
 29 struct snd_soc_acpi_mach snd_soc_acpi_intel_mt     29 struct snd_soc_acpi_mach snd_soc_acpi_intel_mtl_machines[] = {
 30         {                                          30         {
 31                 .comp_ids = &mtl_essx_83x6,        31                 .comp_ids = &mtl_essx_83x6,
 32                 .drv_name = "mtl_es83x6_c1_h02     32                 .drv_name = "mtl_es83x6_c1_h02",
 33                 .machine_quirk = snd_soc_acpi_     33                 .machine_quirk = snd_soc_acpi_codec_list,
 34                 .quirk_data = &mtl_lt6911_hdmi     34                 .quirk_data = &mtl_lt6911_hdmi,
 35                 .sof_tplg_filename = "sof-mtl-     35                 .sof_tplg_filename = "sof-mtl-es83x6-ssp1-hdmi-ssp02.tplg",
 36         },                                         36         },
 37         {                                          37         {
 38                 .comp_ids = &mtl_essx_83x6,        38                 .comp_ids = &mtl_essx_83x6,
 39                 .drv_name = "sof-essx8336",        39                 .drv_name = "sof-essx8336",
 40                 .sof_tplg_filename = "sof-mtl-     40                 .sof_tplg_filename = "sof-mtl-es8336", /* the tplg suffix is added at run time */
 41                 .tplg_quirk_mask = SND_SOC_ACP     41                 .tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER |
 42                                         SND_SO     42                                         SND_SOC_ACPI_TPLG_INTEL_SSP_MSB |
 43                                         SND_SO     43                                         SND_SOC_ACPI_TPLG_INTEL_DMIC_NUMBER,
 44         },                                         44         },
 45         /* place boards for each headphone cod     45         /* place boards for each headphone codec: sof driver will complete the
 46          * tplg name and machine driver will d     46          * tplg name and machine driver will detect the amp type
 47          */                                        47          */
 48         {                                          48         {
 49                 .id = CS42L42_ACPI_HID,            49                 .id = CS42L42_ACPI_HID,
 50                 .drv_name = "mtl_cs42l42_def",     50                 .drv_name = "mtl_cs42l42_def",
 51                 .sof_tplg_filename = "sof-mtl"     51                 .sof_tplg_filename = "sof-mtl", /* the tplg suffix is added at run time */
 52                 .tplg_quirk_mask = SND_SOC_ACP     52                 .tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_AMP_NAME |
 53                                         SND_SO     53                                         SND_SOC_ACPI_TPLG_INTEL_CODEC_NAME,
 54         },                                         54         },
 55         {                                          55         {
 56                 .id = DA7219_ACPI_HID,             56                 .id = DA7219_ACPI_HID,
 57                 .drv_name = "mtl_da7219_def",      57                 .drv_name = "mtl_da7219_def",
 58                 .sof_tplg_filename = "sof-mtl"     58                 .sof_tplg_filename = "sof-mtl", /* the tplg suffix is added at run time */
 59                 .tplg_quirk_mask = SND_SOC_ACP     59                 .tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_AMP_NAME |
 60                                         SND_SO     60                                         SND_SOC_ACPI_TPLG_INTEL_CODEC_NAME,
 61         },                                         61         },
 62         {                                          62         {
 63                 .id = NAU8825_ACPI_HID,            63                 .id = NAU8825_ACPI_HID,
 64                 .drv_name = "mtl_nau8825_def",     64                 .drv_name = "mtl_nau8825_def",
 65                 .sof_tplg_filename = "sof-mtl"     65                 .sof_tplg_filename = "sof-mtl", /* the tplg suffix is added at run time */
 66                 .tplg_quirk_mask = SND_SOC_ACP     66                 .tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_AMP_NAME |
 67                                         SND_SO     67                                         SND_SOC_ACPI_TPLG_INTEL_CODEC_NAME,
 68         },                                         68         },
 69         {                                          69         {
 70                 .id = RT5650_ACPI_HID,             70                 .id = RT5650_ACPI_HID,
 71                 .drv_name = "mtl_rt5682_def",      71                 .drv_name = "mtl_rt5682_def",
 72                 .sof_tplg_filename = "sof-mtl"     72                 .sof_tplg_filename = "sof-mtl", /* the tplg suffix is added at run time */
 73                 .tplg_quirk_mask = SND_SOC_ACP     73                 .tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_AMP_NAME |
 74                                         SND_SO     74                                         SND_SOC_ACPI_TPLG_INTEL_CODEC_NAME,
 75         },                                         75         },
 76         {                                          76         {
 77                 .comp_ids = &mtl_rt5682_rt5682     77                 .comp_ids = &mtl_rt5682_rt5682s_hp,
 78                 .drv_name = "mtl_rt5682_def",      78                 .drv_name = "mtl_rt5682_def",
 79                 .sof_tplg_filename = "sof-mtl"     79                 .sof_tplg_filename = "sof-mtl", /* the tplg suffix is added at run time */
 80                 .tplg_quirk_mask = SND_SOC_ACP     80                 .tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_AMP_NAME |
 81                                         SND_SO     81                                         SND_SOC_ACPI_TPLG_INTEL_CODEC_NAME,
 82         },                                         82         },
 83         /* place amp-only boards in the end of     83         /* place amp-only boards in the end of table */
 84         {                                          84         {
 85                 .id = "INTC10B0",                  85                 .id = "INTC10B0",
 86                 .drv_name = "mtl_lt6911_hdmi_s     86                 .drv_name = "mtl_lt6911_hdmi_ssp",
 87                 .sof_tplg_filename = "sof-mtl-     87                 .sof_tplg_filename = "sof-mtl-hdmi-ssp02.tplg",
 88         },                                         88         },
 89         {},                                        89         {},
 90 };                                                 90 };
 91 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_mtl_machi     91 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_mtl_machines);
 92                                                    92 
 93 static const struct snd_soc_acpi_endpoint sing     93 static const struct snd_soc_acpi_endpoint single_endpoint = {
 94         .num = 0,                                  94         .num = 0,
 95         .aggregated = 0,                           95         .aggregated = 0,
 96         .group_position = 0,                       96         .group_position = 0,
 97         .group_id = 0,                             97         .group_id = 0,
 98 };                                                 98 };
 99                                                    99 
100 static const struct snd_soc_acpi_endpoint spk_    100 static const struct snd_soc_acpi_endpoint spk_l_endpoint = {
101         .num = 0,                                 101         .num = 0,
102         .aggregated = 1,                          102         .aggregated = 1,
103         .group_position = 0,                      103         .group_position = 0,
104         .group_id = 1,                            104         .group_id = 1,
105 };                                                105 };
106                                                   106 
107 static const struct snd_soc_acpi_endpoint spk_    107 static const struct snd_soc_acpi_endpoint spk_r_endpoint = {
108         .num = 0,                                 108         .num = 0,
109         .aggregated = 1,                          109         .aggregated = 1,
110         .group_position = 1,                      110         .group_position = 1,
111         .group_id = 1,                            111         .group_id = 1,
112 };                                                112 };
113                                                   113 
114 static const struct snd_soc_acpi_endpoint rt71    114 static const struct snd_soc_acpi_endpoint rt712_endpoints[] = {
115         {                                         115         {
116                 .num = 0,                         116                 .num = 0,
117                 .aggregated = 0,                  117                 .aggregated = 0,
118                 .group_position = 0,              118                 .group_position = 0,
119                 .group_id = 0,                    119                 .group_id = 0,
120         },                                        120         },
121         {                                         121         {
122                 .num = 1,                         122                 .num = 1,
123                 .aggregated = 0,                  123                 .aggregated = 0,
124                 .group_position = 0,              124                 .group_position = 0,
125                 .group_id = 0,                    125                 .group_id = 0,
126         },                                        126         },
127 };                                                127 };
128                                                   128 
129 /*                                                129 /*
130  * RT722 is a multi-function codec, three endp    130  * RT722 is a multi-function codec, three endpoints are created for
131  * its headset, amp and dmic functions.           131  * its headset, amp and dmic functions.
132  */                                               132  */
133 static const struct snd_soc_acpi_endpoint rt72    133 static const struct snd_soc_acpi_endpoint rt722_endpoints[] = {
134         {                                         134         {
135                 .num = 0,                         135                 .num = 0,
136                 .aggregated = 0,                  136                 .aggregated = 0,
137                 .group_position = 0,              137                 .group_position = 0,
138                 .group_id = 0,                    138                 .group_id = 0,
139         },                                        139         },
140         {                                         140         {
141                 .num = 1,                         141                 .num = 1,
142                 .aggregated = 0,                  142                 .aggregated = 0,
143                 .group_position = 0,              143                 .group_position = 0,
144                 .group_id = 0,                    144                 .group_id = 0,
145         },                                        145         },
146         {                                         146         {
147                 .num = 2,                         147                 .num = 2,
148                 .aggregated = 0,                  148                 .aggregated = 0,
149                 .group_position = 0,              149                 .group_position = 0,
150                 .group_id = 0,                    150                 .group_id = 0,
151         },                                        151         },
152 };                                                152 };
153                                                   153 
154 static const struct snd_soc_acpi_endpoint spk_    154 static const struct snd_soc_acpi_endpoint spk_2_endpoint = {
155         .num = 0,                                 155         .num = 0,
156         .aggregated = 1,                          156         .aggregated = 1,
157         .group_position = 2,                      157         .group_position = 2,
158         .group_id = 1,                            158         .group_id = 1,
159 };                                                159 };
160                                                   160 
161 static const struct snd_soc_acpi_endpoint spk_    161 static const struct snd_soc_acpi_endpoint spk_3_endpoint = {
162         .num = 0,                                 162         .num = 0,
163         .aggregated = 1,                          163         .aggregated = 1,
164         .group_position = 3,                      164         .group_position = 3,
165         .group_id = 1,                            165         .group_id = 1,
166 };                                                166 };
167                                                   167 
168 static const struct snd_soc_acpi_adr_device rt    168 static const struct snd_soc_acpi_adr_device rt711_sdca_0_adr[] = {
169         {                                         169         {
170                 .adr = 0x000030025D071101ull,     170                 .adr = 0x000030025D071101ull,
171                 .num_endpoints = 1,               171                 .num_endpoints = 1,
172                 .endpoints = &single_endpoint,    172                 .endpoints = &single_endpoint,
173                 .name_prefix = "rt711"            173                 .name_prefix = "rt711"
174         }                                         174         }
175 };                                                175 };
176                                                   176 
177 static const struct snd_soc_acpi_adr_device rt    177 static const struct snd_soc_acpi_adr_device rt712_0_single_adr[] = {
178         {                                         178         {
179                 .adr = 0x000030025D071201ull,     179                 .adr = 0x000030025D071201ull,
180                 .num_endpoints = ARRAY_SIZE(rt    180                 .num_endpoints = ARRAY_SIZE(rt712_endpoints),
181                 .endpoints = rt712_endpoints,     181                 .endpoints = rt712_endpoints,
182                 .name_prefix = "rt712"            182                 .name_prefix = "rt712"
183         }                                         183         }
184 };                                                184 };
185                                                   185 
186 static const struct snd_soc_acpi_adr_device rt    186 static const struct snd_soc_acpi_adr_device rt1712_3_single_adr[] = {
187         {                                         187         {
188                 .adr = 0x000330025D171201ull,     188                 .adr = 0x000330025D171201ull,
189                 .num_endpoints = 1,               189                 .num_endpoints = 1,
190                 .endpoints = &single_endpoint,    190                 .endpoints = &single_endpoint,
191                 .name_prefix = "rt712-dmic"       191                 .name_prefix = "rt712-dmic"
192         }                                         192         }
193 };                                                193 };
194                                                   194 
195 static const struct snd_soc_acpi_adr_device rt    195 static const struct snd_soc_acpi_adr_device rt722_0_single_adr[] = {
196         {                                         196         {
197                 .adr = 0x000030025d072201ull,     197                 .adr = 0x000030025d072201ull,
198                 .num_endpoints = ARRAY_SIZE(rt    198                 .num_endpoints = ARRAY_SIZE(rt722_endpoints),
199                 .endpoints = rt722_endpoints,     199                 .endpoints = rt722_endpoints,
200                 .name_prefix = "rt722"            200                 .name_prefix = "rt722"
201         }                                         201         }
202 };                                                202 };
203                                                   203 
204 static const struct snd_soc_acpi_adr_device rt    204 static const struct snd_soc_acpi_adr_device rt713_0_single_adr[] = {
205         {                                         205         {
206                 .adr = 0x000031025D071301ull,     206                 .adr = 0x000031025D071301ull,
207                 .num_endpoints = 1,               207                 .num_endpoints = 1,
208                 .endpoints = &single_endpoint,    208                 .endpoints = &single_endpoint,
209                 .name_prefix = "rt713"            209                 .name_prefix = "rt713"
210         }                                         210         }
211 };                                                211 };
212                                                   212 
213 static const struct snd_soc_acpi_adr_device rt    213 static const struct snd_soc_acpi_adr_device rt1713_3_single_adr[] = {
214         {                                         214         {
215                 .adr = 0x000331025D171301ull,     215                 .adr = 0x000331025D171301ull,
216                 .num_endpoints = 1,               216                 .num_endpoints = 1,
217                 .endpoints = &single_endpoint,    217                 .endpoints = &single_endpoint,
218                 .name_prefix = "rt713-dmic"       218                 .name_prefix = "rt713-dmic"
219         }                                         219         }
220 };                                                220 };
221                                                   221 
222 static const struct snd_soc_acpi_adr_device mx    222 static const struct snd_soc_acpi_adr_device mx8373_0_adr[] = {
223         {                                         223         {
224                 .adr = 0x000023019F837300ull,     224                 .adr = 0x000023019F837300ull,
225                 .num_endpoints = 1,               225                 .num_endpoints = 1,
226                 .endpoints = &spk_l_endpoint,     226                 .endpoints = &spk_l_endpoint,
227                 .name_prefix = "Left"             227                 .name_prefix = "Left"
228         },                                        228         },
229         {                                         229         {
230                 .adr = 0x000027019F837300ull,     230                 .adr = 0x000027019F837300ull,
231                 .num_endpoints = 1,               231                 .num_endpoints = 1,
232                 .endpoints = &spk_r_endpoint,     232                 .endpoints = &spk_r_endpoint,
233                 .name_prefix = "Right"            233                 .name_prefix = "Right"
234         }                                         234         }
235 };                                                235 };
236                                                   236 
237 static const struct snd_soc_acpi_adr_device rt    237 static const struct snd_soc_acpi_adr_device rt5682_2_adr[] = {
238         {                                         238         {
239                 .adr = 0x000221025D568200ull,     239                 .adr = 0x000221025D568200ull,
240                 .num_endpoints = 1,               240                 .num_endpoints = 1,
241                 .endpoints = &single_endpoint,    241                 .endpoints = &single_endpoint,
242                 .name_prefix = "rt5682"           242                 .name_prefix = "rt5682"
243         }                                         243         }
244 };                                                244 };
245                                                   245 
246 static const struct snd_soc_acpi_adr_device rt    246 static const struct snd_soc_acpi_adr_device rt1316_2_group1_adr[] = {
247         {                                         247         {
248                 .adr = 0x000230025D131601ull,     248                 .adr = 0x000230025D131601ull,
249                 .num_endpoints = 1,               249                 .num_endpoints = 1,
250                 .endpoints = &spk_l_endpoint,     250                 .endpoints = &spk_l_endpoint,
251                 .name_prefix = "rt1316-1"         251                 .name_prefix = "rt1316-1"
252         }                                         252         }
253 };                                                253 };
254                                                   254 
255 static const struct snd_soc_acpi_adr_device rt    255 static const struct snd_soc_acpi_adr_device rt1316_3_group1_adr[] = {
256         {                                         256         {
257                 .adr = 0x000331025D131601ull,     257                 .adr = 0x000331025D131601ull,
258                 .num_endpoints = 1,               258                 .num_endpoints = 1,
259                 .endpoints = &spk_r_endpoint,     259                 .endpoints = &spk_r_endpoint,
260                 .name_prefix = "rt1316-2"         260                 .name_prefix = "rt1316-2"
261         }                                         261         }
262 };                                                262 };
263                                                   263 
264 static const struct snd_soc_acpi_adr_device rt    264 static const struct snd_soc_acpi_adr_device rt1316_1_group2_adr[] = {
265         {                                         265         {
266                 .adr = 0x000131025D131601ull,     266                 .adr = 0x000131025D131601ull,
267                 .num_endpoints = 1,               267                 .num_endpoints = 1,
268                 .endpoints = &spk_l_endpoint,     268                 .endpoints = &spk_l_endpoint,
269                 .name_prefix = "rt1316-1"         269                 .name_prefix = "rt1316-1"
270         }                                         270         }
271 };                                                271 };
272                                                   272 
273 static const struct snd_soc_acpi_adr_device rt    273 static const struct snd_soc_acpi_adr_device rt1316_2_group2_adr[] = {
274         {                                         274         {
275                 .adr = 0x000230025D131601ull,     275                 .adr = 0x000230025D131601ull,
276                 .num_endpoints = 1,               276                 .num_endpoints = 1,
277                 .endpoints = &spk_r_endpoint,     277                 .endpoints = &spk_r_endpoint,
278                 .name_prefix = "rt1316-2"         278                 .name_prefix = "rt1316-2"
279         }                                         279         }
280 };                                                280 };
281                                                   281 
282 static const struct snd_soc_acpi_adr_device rt    282 static const struct snd_soc_acpi_adr_device rt1316_3_single_adr[] = {
283         {                                         283         {
284                 .adr = 0x000330025D131601ull,     284                 .adr = 0x000330025D131601ull,
285                 .num_endpoints = 1,               285                 .num_endpoints = 1,
286                 .endpoints = &single_endpoint,    286                 .endpoints = &single_endpoint,
287                 .name_prefix = "rt1316-1"         287                 .name_prefix = "rt1316-1"
288         }                                         288         }
289 };                                                289 };
290                                                   290 
291 static const struct snd_soc_acpi_adr_device rt    291 static const struct snd_soc_acpi_adr_device rt1318_1_single_adr[] = {
292         {                                         292         {
293                 .adr = 0x000130025D131801,        293                 .adr = 0x000130025D131801,
294                 .num_endpoints = 1,               294                 .num_endpoints = 1,
295                 .endpoints = &single_endpoint,    295                 .endpoints = &single_endpoint,
296                 .name_prefix = "rt1318-1"         296                 .name_prefix = "rt1318-1"
297         }                                         297         }
298 };                                                298 };
299                                                   299 
300 static const struct snd_soc_acpi_adr_device rt    300 static const struct snd_soc_acpi_adr_device rt1318_1_group1_adr[] = {
301         {                                         301         {
302                 .adr = 0x000130025D131801ull,     302                 .adr = 0x000130025D131801ull,
303                 .num_endpoints = 1,               303                 .num_endpoints = 1,
304                 .endpoints = &spk_l_endpoint,     304                 .endpoints = &spk_l_endpoint,
305                 .name_prefix = "rt1318-1"         305                 .name_prefix = "rt1318-1"
306         }                                         306         }
307 };                                                307 };
308                                                   308 
309 static const struct snd_soc_acpi_adr_device rt    309 static const struct snd_soc_acpi_adr_device rt1318_2_group1_adr[] = {
310         {                                         310         {
311                 .adr = 0x000232025D131801ull,     311                 .adr = 0x000232025D131801ull,
312                 .num_endpoints = 1,               312                 .num_endpoints = 1,
313                 .endpoints = &spk_r_endpoint,     313                 .endpoints = &spk_r_endpoint,
314                 .name_prefix = "rt1318-2"         314                 .name_prefix = "rt1318-2"
315         }                                         315         }
316 };                                                316 };
317                                                   317 
318 static const struct snd_soc_acpi_adr_device rt    318 static const struct snd_soc_acpi_adr_device rt714_0_adr[] = {
319         {                                         319         {
320                 .adr = 0x000030025D071401ull,     320                 .adr = 0x000030025D071401ull,
321                 .num_endpoints = 1,               321                 .num_endpoints = 1,
322                 .endpoints = &single_endpoint,    322                 .endpoints = &single_endpoint,
323                 .name_prefix = "rt714"            323                 .name_prefix = "rt714"
324         }                                         324         }
325 };                                                325 };
326                                                   326 
327 static const struct snd_soc_acpi_adr_device rt    327 static const struct snd_soc_acpi_adr_device rt714_1_adr[] = {
328         {                                         328         {
329                 .adr = 0x000130025D071401ull,     329                 .adr = 0x000130025D071401ull,
330                 .num_endpoints = 1,               330                 .num_endpoints = 1,
331                 .endpoints = &single_endpoint,    331                 .endpoints = &single_endpoint,
332                 .name_prefix = "rt714"            332                 .name_prefix = "rt714"
333         }                                         333         }
334 };                                                334 };
335                                                   335 
336 static const struct snd_soc_acpi_link_adr mtl_    336 static const struct snd_soc_acpi_link_adr mtl_712_l0_1712_l3[] = {
337         {                                         337         {
338                 .mask = BIT(0),                   338                 .mask = BIT(0),
339                 .num_adr = ARRAY_SIZE(rt712_0_    339                 .num_adr = ARRAY_SIZE(rt712_0_single_adr),
340                 .adr_d = rt712_0_single_adr,      340                 .adr_d = rt712_0_single_adr,
341         },                                        341         },
342         {                                         342         {
343                 .mask = BIT(3),                   343                 .mask = BIT(3),
344                 .num_adr = ARRAY_SIZE(rt1712_3    344                 .num_adr = ARRAY_SIZE(rt1712_3_single_adr),
345                 .adr_d = rt1712_3_single_adr,     345                 .adr_d = rt1712_3_single_adr,
346         },                                        346         },
347         {}                                        347         {}
348 };                                                348 };
349                                                   349 
350 static const struct snd_soc_acpi_link_adr mtl_    350 static const struct snd_soc_acpi_link_adr mtl_712_l0[] = {
351         {                                         351         {
352                 .mask = BIT(0),                   352                 .mask = BIT(0),
353                 .num_adr = ARRAY_SIZE(rt712_0_    353                 .num_adr = ARRAY_SIZE(rt712_0_single_adr),
354                 .adr_d = rt712_0_single_adr,      354                 .adr_d = rt712_0_single_adr,
355         },                                        355         },
356         {}                                        356         {}
357 };                                                357 };
358                                                   358 
359 static const struct snd_soc_acpi_endpoint cs42    359 static const struct snd_soc_acpi_endpoint cs42l43_endpoints[] = {
360         { /* Jack Playback Endpoint */            360         { /* Jack Playback Endpoint */
361                 .num = 0,                         361                 .num = 0,
362                 .aggregated = 0,                  362                 .aggregated = 0,
363                 .group_position = 0,              363                 .group_position = 0,
364                 .group_id = 0,                    364                 .group_id = 0,
365         },                                        365         },
366         { /* DMIC Capture Endpoint */             366         { /* DMIC Capture Endpoint */
367                 .num = 1,                         367                 .num = 1,
368                 .aggregated = 0,                  368                 .aggregated = 0,
369                 .group_position = 0,              369                 .group_position = 0,
370                 .group_id = 0,                    370                 .group_id = 0,
371         },                                        371         },
372         { /* Jack Capture Endpoint */             372         { /* Jack Capture Endpoint */
373                 .num = 2,                         373                 .num = 2,
374                 .aggregated = 0,                  374                 .aggregated = 0,
375                 .group_position = 0,              375                 .group_position = 0,
376                 .group_id = 0,                    376                 .group_id = 0,
377         },                                        377         },
378         { /* Speaker Playback Endpoint */         378         { /* Speaker Playback Endpoint */
379                 .num = 3,                         379                 .num = 3,
380                 .aggregated = 0,                  380                 .aggregated = 0,
381                 .group_position = 0,              381                 .group_position = 0,
382                 .group_id = 0,                    382                 .group_id = 0,
383         },                                        383         },
384 };                                                384 };
385                                                   385 
386 static const struct snd_soc_acpi_adr_device cs    386 static const struct snd_soc_acpi_adr_device cs42l43_0_adr[] = {
387         {                                         387         {
388                 .adr = 0x00003001FA424301ull,     388                 .adr = 0x00003001FA424301ull,
389                 .num_endpoints = ARRAY_SIZE(cs    389                 .num_endpoints = ARRAY_SIZE(cs42l43_endpoints),
390                 .endpoints = cs42l43_endpoints    390                 .endpoints = cs42l43_endpoints,
391                 .name_prefix = "cs42l43"          391                 .name_prefix = "cs42l43"
392         }                                         392         }
393 };                                                393 };
394                                                   394 
395 static const struct snd_soc_acpi_adr_device cs    395 static const struct snd_soc_acpi_adr_device cs35l56_1_adr[] = {
396         {                                         396         {
397                 .adr = 0x00013701FA355601ull,     397                 .adr = 0x00013701FA355601ull,
398                 .num_endpoints = 1,               398                 .num_endpoints = 1,
399                 .endpoints = &spk_r_endpoint,     399                 .endpoints = &spk_r_endpoint,
400                 .name_prefix = "AMP3"             400                 .name_prefix = "AMP3"
401         },                                        401         },
402         {                                         402         {
403                 .adr = 0x00013601FA355601ull,     403                 .adr = 0x00013601FA355601ull,
404                 .num_endpoints = 1,               404                 .num_endpoints = 1,
405                 .endpoints = &spk_3_endpoint,     405                 .endpoints = &spk_3_endpoint,
406                 .name_prefix = "AMP4"             406                 .name_prefix = "AMP4"
407         }                                         407         }
408 };                                                408 };
409                                                   409 
410 static const struct snd_soc_acpi_adr_device cs    410 static const struct snd_soc_acpi_adr_device cs35l56_2_adr[] = {
411         {                                         411         {
412                 .adr = 0x00023301FA355601ull,     412                 .adr = 0x00023301FA355601ull,
413                 .num_endpoints = 1,               413                 .num_endpoints = 1,
414                 .endpoints = &spk_l_endpoint,     414                 .endpoints = &spk_l_endpoint,
415                 .name_prefix = "AMP1"             415                 .name_prefix = "AMP1"
416         },                                        416         },
417         {                                         417         {
418                 .adr = 0x00023201FA355601ull,     418                 .adr = 0x00023201FA355601ull,
419                 .num_endpoints = 1,               419                 .num_endpoints = 1,
420                 .endpoints = &spk_2_endpoint,     420                 .endpoints = &spk_2_endpoint,
421                 .name_prefix = "AMP2"             421                 .name_prefix = "AMP2"
422         }                                         422         }
423 };                                                423 };
424                                                   424 
425 static const struct snd_soc_acpi_adr_device cs    425 static const struct snd_soc_acpi_adr_device cs35l56_2_r_adr[] = {
426         {                                         426         {
427                 .adr = 0x00023201FA355601ull,     427                 .adr = 0x00023201FA355601ull,
428                 .num_endpoints = 1,               428                 .num_endpoints = 1,
429                 .endpoints = &spk_r_endpoint,     429                 .endpoints = &spk_r_endpoint,
430                 .name_prefix = "AMP3"             430                 .name_prefix = "AMP3"
431         },                                        431         },
432         {                                         432         {
433                 .adr = 0x00023301FA355601ull,     433                 .adr = 0x00023301FA355601ull,
434                 .num_endpoints = 1,               434                 .num_endpoints = 1,
435                 .endpoints = &spk_3_endpoint,     435                 .endpoints = &spk_3_endpoint,
436                 .name_prefix = "AMP4"             436                 .name_prefix = "AMP4"
437         }                                         437         }
438                                                   438 
439 };                                                439 };
440                                                   440 
441 static const struct snd_soc_acpi_adr_device cs    441 static const struct snd_soc_acpi_adr_device cs35l56_3_l_adr[] = {
442         {                                         442         {
443                 .adr = 0x00033001fa355601ull,     443                 .adr = 0x00033001fa355601ull,
444                 .num_endpoints = 1,               444                 .num_endpoints = 1,
445                 .endpoints = &spk_l_endpoint,     445                 .endpoints = &spk_l_endpoint,
446                 .name_prefix = "AMP1"             446                 .name_prefix = "AMP1"
447         },                                        447         },
448         {                                         448         {
449                 .adr = 0x00033101fa355601ull,     449                 .adr = 0x00033101fa355601ull,
450                 .num_endpoints = 1,               450                 .num_endpoints = 1,
451                 .endpoints = &spk_2_endpoint,     451                 .endpoints = &spk_2_endpoint,
452                 .name_prefix = "AMP2"             452                 .name_prefix = "AMP2"
453         }                                         453         }
454 };                                                454 };
455                                                   455 
456 static const struct snd_soc_acpi_link_adr rt56    456 static const struct snd_soc_acpi_link_adr rt5682_link2_max98373_link0[] = {
457         /* Expected order: jack -> amp */         457         /* Expected order: jack -> amp */
458         {                                         458         {
459                 .mask = BIT(2),                   459                 .mask = BIT(2),
460                 .num_adr = ARRAY_SIZE(rt5682_2    460                 .num_adr = ARRAY_SIZE(rt5682_2_adr),
461                 .adr_d = rt5682_2_adr,            461                 .adr_d = rt5682_2_adr,
462         },                                        462         },
463         {                                         463         {
464                 .mask = BIT(0),                   464                 .mask = BIT(0),
465                 .num_adr = ARRAY_SIZE(mx8373_0    465                 .num_adr = ARRAY_SIZE(mx8373_0_adr),
466                 .adr_d = mx8373_0_adr,            466                 .adr_d = mx8373_0_adr,
467         },                                        467         },
468         {}                                        468         {}
469 };                                                469 };
470                                                   470 
471 static const struct snd_soc_acpi_link_adr mtl_    471 static const struct snd_soc_acpi_link_adr mtl_rvp[] = {
472         {                                         472         {
473                 .mask = BIT(0),                   473                 .mask = BIT(0),
474                 .num_adr = ARRAY_SIZE(rt711_sd    474                 .num_adr = ARRAY_SIZE(rt711_sdca_0_adr),
475                 .adr_d = rt711_sdca_0_adr,        475                 .adr_d = rt711_sdca_0_adr,
476         },                                        476         },
477         {}                                        477         {}
478 };                                                478 };
479                                                   479 
480 static const struct snd_soc_acpi_link_adr mtl_    480 static const struct snd_soc_acpi_link_adr mtl_rt722_only[] = {
481         {                                         481         {
482                 .mask = BIT(0),                   482                 .mask = BIT(0),
483                 .num_adr = ARRAY_SIZE(rt722_0_    483                 .num_adr = ARRAY_SIZE(rt722_0_single_adr),
484                 .adr_d = rt722_0_single_adr,      484                 .adr_d = rt722_0_single_adr,
485         },                                        485         },
486         {}                                        486         {}
487 };                                                487 };
488                                                   488 
489 static const struct snd_soc_acpi_link_adr mtl_    489 static const struct snd_soc_acpi_link_adr mtl_3_in_1_sdca[] = {
490         {                                         490         {
491                 .mask = BIT(0),                   491                 .mask = BIT(0),
492                 .num_adr = ARRAY_SIZE(rt711_sd    492                 .num_adr = ARRAY_SIZE(rt711_sdca_0_adr),
493                 .adr_d = rt711_sdca_0_adr,        493                 .adr_d = rt711_sdca_0_adr,
494         },                                        494         },
495         {                                         495         {
496                 .mask = BIT(2),                   496                 .mask = BIT(2),
497                 .num_adr = ARRAY_SIZE(rt1316_2    497                 .num_adr = ARRAY_SIZE(rt1316_2_group1_adr),
498                 .adr_d = rt1316_2_group1_adr,     498                 .adr_d = rt1316_2_group1_adr,
499         },                                        499         },
500         {                                         500         {
501                 .mask = BIT(3),                   501                 .mask = BIT(3),
502                 .num_adr = ARRAY_SIZE(rt1316_3    502                 .num_adr = ARRAY_SIZE(rt1316_3_group1_adr),
503                 .adr_d = rt1316_3_group1_adr,     503                 .adr_d = rt1316_3_group1_adr,
504         },                                        504         },
505         {                                         505         {
506                 .mask = BIT(1),                   506                 .mask = BIT(1),
507                 .num_adr = ARRAY_SIZE(rt714_1_    507                 .num_adr = ARRAY_SIZE(rt714_1_adr),
508                 .adr_d = rt714_1_adr,             508                 .adr_d = rt714_1_adr,
509         },                                        509         },
510         {}                                        510         {}
511 };                                                511 };
512                                                   512 
513 static const struct snd_soc_acpi_link_adr mtl_    513 static const struct snd_soc_acpi_link_adr mtl_sdw_rt1318_l12_rt714_l0[] = {
514         {                                         514         {
515                 .mask = BIT(1),                   515                 .mask = BIT(1),
516                 .num_adr = ARRAY_SIZE(rt1318_1    516                 .num_adr = ARRAY_SIZE(rt1318_1_group1_adr),
517                 .adr_d = rt1318_1_group1_adr,     517                 .adr_d = rt1318_1_group1_adr,
518         },                                        518         },
519         {                                         519         {
520                 .mask = BIT(2),                   520                 .mask = BIT(2),
521                 .num_adr = ARRAY_SIZE(rt1318_2    521                 .num_adr = ARRAY_SIZE(rt1318_2_group1_adr),
522                 .adr_d = rt1318_2_group1_adr,     522                 .adr_d = rt1318_2_group1_adr,
523         },                                        523         },
524         {                                         524         {
525                 .mask = BIT(0),                   525                 .mask = BIT(0),
526                 .num_adr = ARRAY_SIZE(rt714_0_    526                 .num_adr = ARRAY_SIZE(rt714_0_adr),
527                 .adr_d = rt714_0_adr,             527                 .adr_d = rt714_0_adr,
528         },                                        528         },
529         {}                                        529         {}
530 };                                                530 };
531                                                   531 
532 static const struct snd_soc_acpi_link_adr mtl_    532 static const struct snd_soc_acpi_link_adr mtl_rt713_l0_rt1316_l12_rt1713_l3[] = {
533         {                                         533         {
534                 .mask = BIT(0),                   534                 .mask = BIT(0),
535                 .num_adr = ARRAY_SIZE(rt713_0_    535                 .num_adr = ARRAY_SIZE(rt713_0_single_adr),
536                 .adr_d = rt713_0_single_adr,      536                 .adr_d = rt713_0_single_adr,
537         },                                        537         },
538         {                                         538         {
539                 .mask = BIT(1),                   539                 .mask = BIT(1),
540                 .num_adr = ARRAY_SIZE(rt1316_1    540                 .num_adr = ARRAY_SIZE(rt1316_1_group2_adr),
541                 .adr_d = rt1316_1_group2_adr,     541                 .adr_d = rt1316_1_group2_adr,
542         },                                        542         },
543         {                                         543         {
544                 .mask = BIT(2),                   544                 .mask = BIT(2),
545                 .num_adr = ARRAY_SIZE(rt1316_2    545                 .num_adr = ARRAY_SIZE(rt1316_2_group2_adr),
546                 .adr_d = rt1316_2_group2_adr,     546                 .adr_d = rt1316_2_group2_adr,
547         },                                        547         },
548         {                                         548         {
549                 .mask = BIT(3),                   549                 .mask = BIT(3),
550                 .num_adr = ARRAY_SIZE(rt1713_3    550                 .num_adr = ARRAY_SIZE(rt1713_3_single_adr),
551                 .adr_d = rt1713_3_single_adr,     551                 .adr_d = rt1713_3_single_adr,
552         },                                        552         },
553         {}                                        553         {}
554 };                                                554 };
555                                                   555 
556 static const struct snd_soc_acpi_link_adr mtl_    556 static const struct snd_soc_acpi_link_adr mtl_rt713_l0_rt1318_l1_rt1713_l3[] = {
557         {                                         557         {
558                 .mask = BIT(0),                   558                 .mask = BIT(0),
559                 .num_adr = ARRAY_SIZE(rt713_0_    559                 .num_adr = ARRAY_SIZE(rt713_0_single_adr),
560                 .adr_d = rt713_0_single_adr,      560                 .adr_d = rt713_0_single_adr,
561         },                                        561         },
562         {                                         562         {
563                 .mask = BIT(1),                   563                 .mask = BIT(1),
564                 .num_adr = ARRAY_SIZE(rt1318_1    564                 .num_adr = ARRAY_SIZE(rt1318_1_single_adr),
565                 .adr_d = rt1318_1_single_adr,     565                 .adr_d = rt1318_1_single_adr,
566         },                                        566         },
567         {                                         567         {
568                 .mask = BIT(3),                   568                 .mask = BIT(3),
569                 .num_adr = ARRAY_SIZE(rt1713_3    569                 .num_adr = ARRAY_SIZE(rt1713_3_single_adr),
570                 .adr_d = rt1713_3_single_adr,     570                 .adr_d = rt1713_3_single_adr,
571         },                                        571         },
572         {}                                        572         {}
573 };                                                573 };
574                                                   574 
575 static const struct snd_soc_acpi_link_adr mtl_    575 static const struct snd_soc_acpi_link_adr mtl_rt713_l0_rt1318_l12_rt1713_l3[] = {
576         {                                         576         {
577                 .mask = BIT(0),                   577                 .mask = BIT(0),
578                 .num_adr = ARRAY_SIZE(rt713_0_    578                 .num_adr = ARRAY_SIZE(rt713_0_single_adr),
579                 .adr_d = rt713_0_single_adr,      579                 .adr_d = rt713_0_single_adr,
580         },                                        580         },
581         {                                         581         {
582                 .mask = BIT(1),                   582                 .mask = BIT(1),
583                 .num_adr = ARRAY_SIZE(rt1318_1    583                 .num_adr = ARRAY_SIZE(rt1318_1_group1_adr),
584                 .adr_d = rt1318_1_group1_adr,     584                 .adr_d = rt1318_1_group1_adr,
585         },                                        585         },
586         {                                         586         {
587                 .mask = BIT(2),                   587                 .mask = BIT(2),
588                 .num_adr = ARRAY_SIZE(rt1318_2    588                 .num_adr = ARRAY_SIZE(rt1318_2_group1_adr),
589                 .adr_d = rt1318_2_group1_adr,     589                 .adr_d = rt1318_2_group1_adr,
590         },                                        590         },
591         {                                         591         {
592                 .mask = BIT(3),                   592                 .mask = BIT(3),
593                 .num_adr = ARRAY_SIZE(rt1713_3    593                 .num_adr = ARRAY_SIZE(rt1713_3_single_adr),
594                 .adr_d = rt1713_3_single_adr,     594                 .adr_d = rt1713_3_single_adr,
595         },                                        595         },
596         {}                                        596         {}
597 };                                                597 };
598                                                   598 
599 static const struct snd_soc_acpi_link_adr mtl_    599 static const struct snd_soc_acpi_link_adr mtl_rt713_l0_rt1316_l12[] = {
600         {                                         600         {
601                 .mask = BIT(0),                   601                 .mask = BIT(0),
602                 .num_adr = ARRAY_SIZE(rt713_0_    602                 .num_adr = ARRAY_SIZE(rt713_0_single_adr),
603                 .adr_d = rt713_0_single_adr,      603                 .adr_d = rt713_0_single_adr,
604         },                                        604         },
605         {                                         605         {
606                 .mask = BIT(1),                   606                 .mask = BIT(1),
607                 .num_adr = ARRAY_SIZE(rt1316_1    607                 .num_adr = ARRAY_SIZE(rt1316_1_group2_adr),
608                 .adr_d = rt1316_1_group2_adr,     608                 .adr_d = rt1316_1_group2_adr,
609         },                                        609         },
610         {                                         610         {
611                 .mask = BIT(2),                   611                 .mask = BIT(2),
612                 .num_adr = ARRAY_SIZE(rt1316_2    612                 .num_adr = ARRAY_SIZE(rt1316_2_group2_adr),
613                 .adr_d = rt1316_2_group2_adr,     613                 .adr_d = rt1316_2_group2_adr,
614         },                                        614         },
615         {}                                        615         {}
616 };                                                616 };
617                                                   617 
618 static const struct snd_soc_acpi_link_adr mtl_    618 static const struct snd_soc_acpi_link_adr mtl_rt711_l0_rt1316_l3[] = {
619         {                                         619         {
620                 .mask = BIT(0),                   620                 .mask = BIT(0),
621                 .num_adr = ARRAY_SIZE(rt711_sd    621                 .num_adr = ARRAY_SIZE(rt711_sdca_0_adr),
622                 .adr_d = rt711_sdca_0_adr,        622                 .adr_d = rt711_sdca_0_adr,
623         },                                        623         },
624         {                                         624         {
625                 .mask = BIT(3),                   625                 .mask = BIT(3),
626                 .num_adr = ARRAY_SIZE(rt1316_3    626                 .num_adr = ARRAY_SIZE(rt1316_3_single_adr),
627                 .adr_d = rt1316_3_single_adr,     627                 .adr_d = rt1316_3_single_adr,
628         },                                        628         },
629         {}                                        629         {}
630 };                                                630 };
631                                                   631 
632 static const struct snd_soc_acpi_adr_device mx    632 static const struct snd_soc_acpi_adr_device mx8363_2_adr[] = {
633         {                                         633         {
634                 .adr = 0x000230019F836300ull,     634                 .adr = 0x000230019F836300ull,
635                 .num_endpoints = 1,               635                 .num_endpoints = 1,
636                 .endpoints = &spk_l_endpoint,     636                 .endpoints = &spk_l_endpoint,
637                 .name_prefix = "Left"             637                 .name_prefix = "Left"
638         },                                        638         },
639         {                                         639         {
640                 .adr = 0x000231019F836300ull,     640                 .adr = 0x000231019F836300ull,
641                 .num_endpoints = 1,               641                 .num_endpoints = 1,
642                 .endpoints = &spk_r_endpoint,     642                 .endpoints = &spk_r_endpoint,
643                 .name_prefix = "Right"            643                 .name_prefix = "Right"
644         }                                         644         }
645 };                                                645 };
646                                                   646 
647 static const struct snd_soc_acpi_adr_device cs    647 static const struct snd_soc_acpi_adr_device cs42l42_0_adr[] = {
648         {                                         648         {
649                 .adr = 0x00001001FA424200ull,     649                 .adr = 0x00001001FA424200ull,
650                 .num_endpoints = 1,               650                 .num_endpoints = 1,
651                 .endpoints = &single_endpoint,    651                 .endpoints = &single_endpoint,
652                 .name_prefix = "cs42l42"          652                 .name_prefix = "cs42l42"
653         }                                         653         }
654 };                                                654 };
655                                                   655 
656 static const struct snd_soc_acpi_link_adr cs42    656 static const struct snd_soc_acpi_link_adr cs42l42_link0_max98363_link2[] = {
657         /* Expected order: jack -> amp */         657         /* Expected order: jack -> amp */
658         {                                         658         {
659                 .mask = BIT(0),                   659                 .mask = BIT(0),
660                 .num_adr = ARRAY_SIZE(cs42l42_    660                 .num_adr = ARRAY_SIZE(cs42l42_0_adr),
661                 .adr_d = cs42l42_0_adr,           661                 .adr_d = cs42l42_0_adr,
662         },                                        662         },
663         {                                         663         {
664                 .mask = BIT(2),                   664                 .mask = BIT(2),
665                 .num_adr = ARRAY_SIZE(mx8363_2    665                 .num_adr = ARRAY_SIZE(mx8363_2_adr),
666                 .adr_d = mx8363_2_adr,            666                 .adr_d = mx8363_2_adr,
667         },                                        667         },
668         {}                                        668         {}
669 };                                                669 };
670                                                   670 
671 static const struct snd_soc_acpi_link_adr mtl_    671 static const struct snd_soc_acpi_link_adr mtl_cs42l43_l0[] = {
672         {                                         672         {
673                 .mask = BIT(0),                   673                 .mask = BIT(0),
674                 .num_adr = ARRAY_SIZE(cs42l43_    674                 .num_adr = ARRAY_SIZE(cs42l43_0_adr),
675                 .adr_d = cs42l43_0_adr,           675                 .adr_d = cs42l43_0_adr,
676         },                                        676         },
677         {}                                        677         {}
678 };                                                678 };
679                                                   679 
680 static const struct snd_soc_acpi_link_adr mtl_    680 static const struct snd_soc_acpi_link_adr mtl_cs42l43_cs35l56[] = {
681         {                                         681         {
682                 .mask = BIT(0),                   682                 .mask = BIT(0),
683                 .num_adr = ARRAY_SIZE(cs42l43_    683                 .num_adr = ARRAY_SIZE(cs42l43_0_adr),
684                 .adr_d = cs42l43_0_adr,           684                 .adr_d = cs42l43_0_adr,
685         },                                        685         },
686         {                                         686         {
687                 .mask = BIT(1),                   687                 .mask = BIT(1),
688                 .num_adr = ARRAY_SIZE(cs35l56_    688                 .num_adr = ARRAY_SIZE(cs35l56_1_adr),
689                 .adr_d = cs35l56_1_adr,           689                 .adr_d = cs35l56_1_adr,
690         },                                        690         },
691         {                                         691         {
692                 .mask = BIT(2),                   692                 .mask = BIT(2),
693                 .num_adr = ARRAY_SIZE(cs35l56_    693                 .num_adr = ARRAY_SIZE(cs35l56_2_adr),
694                 .adr_d = cs35l56_2_adr,           694                 .adr_d = cs35l56_2_adr,
695         },                                        695         },
696         {}                                        696         {}
697 };                                                697 };
698                                                   698 
699 static const struct snd_soc_acpi_link_adr cs42    699 static const struct snd_soc_acpi_link_adr cs42l43_link0_cs35l56_link2_link3[] = {
700         /* Expected order: jack -> amp */         700         /* Expected order: jack -> amp */
701         {                                         701         {
702                 .mask = BIT(0),                   702                 .mask = BIT(0),
703                 .num_adr = ARRAY_SIZE(cs42l43_    703                 .num_adr = ARRAY_SIZE(cs42l43_0_adr),
704                 .adr_d = cs42l43_0_adr,           704                 .adr_d = cs42l43_0_adr,
705         },                                        705         },
706         {                                         706         {
707                 .mask = BIT(2),                   707                 .mask = BIT(2),
708                 .num_adr = ARRAY_SIZE(cs35l56_    708                 .num_adr = ARRAY_SIZE(cs35l56_2_r_adr),
709                 .adr_d = cs35l56_2_r_adr,         709                 .adr_d = cs35l56_2_r_adr,
710         },                                        710         },
711         {                                         711         {
712                 .mask = BIT(3),                   712                 .mask = BIT(3),
713                 .num_adr = ARRAY_SIZE(cs35l56_    713                 .num_adr = ARRAY_SIZE(cs35l56_3_l_adr),
714                 .adr_d = cs35l56_3_l_adr,         714                 .adr_d = cs35l56_3_l_adr,
715         },                                        715         },
716         {}                                        716         {}
717 };                                                717 };
718                                                   718 
719 /* this table is used when there is no I2S cod    719 /* this table is used when there is no I2S codec present */
720 struct snd_soc_acpi_mach snd_soc_acpi_intel_mt    720 struct snd_soc_acpi_mach snd_soc_acpi_intel_mtl_sdw_machines[] = {
721         /* mockup tests need to be first */       721         /* mockup tests need to be first */
722         {                                         722         {
723                 .link_mask = GENMASK(3, 0),       723                 .link_mask = GENMASK(3, 0),
724                 .links = sdw_mockup_headset_2a    724                 .links = sdw_mockup_headset_2amps_mic,
725                 .drv_name = "sof_sdw",            725                 .drv_name = "sof_sdw",
726                 .sof_tplg_filename = "sof-mtl-    726                 .sof_tplg_filename = "sof-mtl-rt711-rt1308-rt715.tplg",
727         },                                        727         },
728         {                                         728         {
729                 .link_mask = BIT(0) | BIT(1) |    729                 .link_mask = BIT(0) | BIT(1) | BIT(3),
730                 .links = sdw_mockup_headset_1a    730                 .links = sdw_mockup_headset_1amp_mic,
731                 .drv_name = "sof_sdw",            731                 .drv_name = "sof_sdw",
732                 .sof_tplg_filename = "sof-mtl-    732                 .sof_tplg_filename = "sof-mtl-rt711-rt1308-mono-rt715.tplg",
733         },                                        733         },
734         {                                         734         {
735                 .link_mask = GENMASK(2, 0),       735                 .link_mask = GENMASK(2, 0),
736                 .links = sdw_mockup_mic_headse    736                 .links = sdw_mockup_mic_headset_1amp,
737                 .drv_name = "sof_sdw",            737                 .drv_name = "sof_sdw",
738                 .sof_tplg_filename = "sof-mtl-    738                 .sof_tplg_filename = "sof-mtl-rt715-rt711-rt1308-mono.tplg",
739         },                                        739         },
740         {                                         740         {
741                 .link_mask = GENMASK(3, 0),       741                 .link_mask = GENMASK(3, 0),
742                 .links = mtl_rt713_l0_rt1316_l    742                 .links = mtl_rt713_l0_rt1316_l12_rt1713_l3,
743                 .drv_name = "sof_sdw",            743                 .drv_name = "sof_sdw",
744                 .sof_tplg_filename = "sof-mtl-    744                 .sof_tplg_filename = "sof-mtl-rt713-l0-rt1316-l12-rt1713-l3.tplg",
745         },                                        745         },
746         {                                         746         {
747                 .link_mask = GENMASK(3, 0),       747                 .link_mask = GENMASK(3, 0),
748                 .links = mtl_rt713_l0_rt1318_l    748                 .links = mtl_rt713_l0_rt1318_l12_rt1713_l3,
749                 .drv_name = "sof_sdw",            749                 .drv_name = "sof_sdw",
750                 .sof_tplg_filename = "sof-mtl-    750                 .sof_tplg_filename = "sof-mtl-rt713-l0-rt1318-l12-rt1713-l3.tplg",
751         },                                        751         },
752         {                                         752         {
753                 .link_mask = BIT(0) | BIT(1) |    753                 .link_mask = BIT(0) | BIT(1) | BIT(3),
754                 .links = mtl_rt713_l0_rt1318_l    754                 .links = mtl_rt713_l0_rt1318_l1_rt1713_l3,
755                 .drv_name = "sof_sdw",            755                 .drv_name = "sof_sdw",
756                 .sof_tplg_filename = "sof-mtl-    756                 .sof_tplg_filename = "sof-mtl-rt713-l0-rt1318-l1-rt1713-l3.tplg",
757         },                                        757         },
758         {                                         758         {
759                 .link_mask = GENMASK(2, 0),       759                 .link_mask = GENMASK(2, 0),
760                 .links = mtl_rt713_l0_rt1316_l    760                 .links = mtl_rt713_l0_rt1316_l12,
761                 .drv_name = "sof_sdw",            761                 .drv_name = "sof_sdw",
762                 .sof_tplg_filename = "sof-mtl-    762                 .sof_tplg_filename = "sof-mtl-rt713-l0-rt1316-l12.tplg",
763         },                                        763         },
764         {                                         764         {
765                 .link_mask = BIT(3) | BIT(0),     765                 .link_mask = BIT(3) | BIT(0),
766                 .links = mtl_712_l0_1712_l3,      766                 .links = mtl_712_l0_1712_l3,
767                 .drv_name = "sof_sdw",            767                 .drv_name = "sof_sdw",
768                 .sof_tplg_filename = "sof-mtl-    768                 .sof_tplg_filename = "sof-mtl-rt712-l0-rt1712-l3.tplg",
769         },                                        769         },
770         {                                         770         {
771                 .link_mask = BIT(0),              771                 .link_mask = BIT(0),
772                 .links = mtl_712_l0,              772                 .links = mtl_712_l0,
773                 .drv_name = "sof_sdw",            773                 .drv_name = "sof_sdw",
774                 .sof_tplg_filename = "sof-mtl-    774                 .sof_tplg_filename = "sof-mtl-rt712-l0.tplg",
775         },                                        775         },
776         {                                         776         {
777                 .link_mask = GENMASK(2, 0),       777                 .link_mask = GENMASK(2, 0),
778                 .links = mtl_sdw_rt1318_l12_rt    778                 .links = mtl_sdw_rt1318_l12_rt714_l0,
779                 .drv_name = "sof_sdw",            779                 .drv_name = "sof_sdw",
780                 .sof_tplg_filename = "sof-mtl-    780                 .sof_tplg_filename = "sof-mtl-rt1318-l12-rt714-l0.tplg"
781         },                                        781         },
782         {                                         782         {
783                 .link_mask = BIT(0) | BIT(2) |    783                 .link_mask = BIT(0) | BIT(2) | BIT(3),
784                 .links = cs42l43_link0_cs35l56    784                 .links = cs42l43_link0_cs35l56_link2_link3,
785                 .drv_name = "sof_sdw",            785                 .drv_name = "sof_sdw",
786                 .sof_tplg_filename = "sof-mtl-    786                 .sof_tplg_filename = "sof-mtl-cs42l43-l0-cs35l56-l23.tplg",
787         },                                        787         },
788         {                                         788         {
789                 .link_mask = GENMASK(2, 0),       789                 .link_mask = GENMASK(2, 0),
790                 .links = mtl_cs42l43_cs35l56,     790                 .links = mtl_cs42l43_cs35l56,
791                 .drv_name = "sof_sdw",            791                 .drv_name = "sof_sdw",
792                 .sof_tplg_filename = "sof-mtl-    792                 .sof_tplg_filename = "sof-mtl-cs42l43-l0-cs35l56-l12.tplg",
793         },                                        793         },
794         {                                         794         {
795                 .link_mask = BIT(0),              795                 .link_mask = BIT(0),
796                 .links = mtl_cs42l43_l0,          796                 .links = mtl_cs42l43_l0,
797                 .drv_name = "sof_sdw",            797                 .drv_name = "sof_sdw",
798                 .sof_tplg_filename = "sof-mtl-    798                 .sof_tplg_filename = "sof-mtl-cs42l43-l0.tplg",
799         },                                        799         },
800         {                                         800         {
801                 .link_mask = GENMASK(3, 0),       801                 .link_mask = GENMASK(3, 0),
802                 .links = mtl_3_in_1_sdca,         802                 .links = mtl_3_in_1_sdca,
803                 .drv_name = "sof_sdw",            803                 .drv_name = "sof_sdw",
804                 .sof_tplg_filename = "sof-mtl-    804                 .sof_tplg_filename = "sof-mtl-rt711-l0-rt1316-l23-rt714-l1.tplg",
805         },                                        805         },
806         {                                         806         {
807                 .link_mask = 0x9, /* 2 active     807                 .link_mask = 0x9, /* 2 active links required */
808                 .links = mtl_rt711_l0_rt1316_l    808                 .links = mtl_rt711_l0_rt1316_l3,
809                 .drv_name = "sof_sdw",            809                 .drv_name = "sof_sdw",
810                 .sof_tplg_filename = "sof-mtl-    810                 .sof_tplg_filename = "sof-mtl-rt711-l0-rt1316-l3.tplg",
811         },                                        811         },
812         {                                         812         {
813                 .link_mask = BIT(0),              813                 .link_mask = BIT(0),
814                 .links = mtl_rt722_only,          814                 .links = mtl_rt722_only,
815                 .drv_name = "sof_sdw",            815                 .drv_name = "sof_sdw",
816                 .sof_tplg_filename = "sof-mtl-    816                 .sof_tplg_filename = "sof-mtl-rt722-l0.tplg",
817         },                                        817         },
818         {                                         818         {
819                 .link_mask = BIT(0),              819                 .link_mask = BIT(0),
820                 .links = mtl_rvp,                 820                 .links = mtl_rvp,
821                 .drv_name = "sof_sdw",            821                 .drv_name = "sof_sdw",
822                 .sof_tplg_filename = "sof-mtl-    822                 .sof_tplg_filename = "sof-mtl-rt711.tplg",
823         },                                        823         },
824         {                                         824         {
825                 .link_mask = BIT(0) | BIT(2),     825                 .link_mask = BIT(0) | BIT(2),
826                 .links = rt5682_link2_max98373    826                 .links = rt5682_link2_max98373_link0,
827                 .drv_name = "sof_sdw",            827                 .drv_name = "sof_sdw",
828                 .sof_tplg_filename = "sof-mtl-    828                 .sof_tplg_filename = "sof-mtl-sdw-rt5682-l2-max98373-l0.tplg",
829         },                                        829         },
830         {                                         830         {
831                 .link_mask = BIT(0) | BIT(2),     831                 .link_mask = BIT(0) | BIT(2),
832                 .links = cs42l42_link0_max9836    832                 .links = cs42l42_link0_max98363_link2,
833                 .drv_name = "sof_sdw",            833                 .drv_name = "sof_sdw",
834                 .sof_tplg_filename = "sof-mtl-    834                 .sof_tplg_filename = "sof-mtl-sdw-cs42l42-l0-max98363-l2.tplg",
835         },                                        835         },
836         {},                                       836         {},
837 };                                                837 };
838 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_mtl_sdw_m    838 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_mtl_sdw_machines);
839                                                   839 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php