1 // SPDX-License-Identifier: GPL-2.0-only 1 // SPDX-License-Identifier: GPL-2.0-only 2 /* 2 /* 3 * soc-apci-intel-adl-match.c - tables and sup 3 * soc-apci-intel-adl-match.c - tables and support for ADL ACPI enumeration. 4 * 4 * 5 * Copyright (c) 2020, Intel Corporation. 5 * Copyright (c) 2020, Intel Corporation. 6 */ 6 */ 7 7 8 #include <sound/soc-acpi.h> 8 #include <sound/soc-acpi.h> 9 #include <sound/soc-acpi-intel-match.h> 9 #include <sound/soc-acpi-intel-match.h> 10 #include <sound/soc-acpi-intel-ssp-common.h> << 11 10 12 static const struct snd_soc_acpi_codecs essx_8 11 static const struct snd_soc_acpi_codecs essx_83x6 = { 13 .num_codecs = 3, 12 .num_codecs = 3, 14 .codecs = { "ESSX8316", "ESSX8326", "E 13 .codecs = { "ESSX8316", "ESSX8326", "ESSX8336"}, 15 }; 14 }; 16 15 17 static const struct snd_soc_acpi_endpoint sing 16 static const struct snd_soc_acpi_endpoint single_endpoint = { 18 .num = 0, 17 .num = 0, 19 .aggregated = 0, 18 .aggregated = 0, 20 .group_position = 0, 19 .group_position = 0, 21 .group_id = 0, 20 .group_id = 0, 22 }; 21 }; 23 22 24 static const struct snd_soc_acpi_endpoint spk_ 23 static const struct snd_soc_acpi_endpoint spk_l_endpoint = { 25 .num = 0, 24 .num = 0, 26 .aggregated = 1, 25 .aggregated = 1, 27 .group_position = 0, 26 .group_position = 0, 28 .group_id = 1, 27 .group_id = 1, 29 }; 28 }; 30 29 31 static const struct snd_soc_acpi_endpoint spk_ 30 static const struct snd_soc_acpi_endpoint spk_r_endpoint = { 32 .num = 0, 31 .num = 0, 33 .aggregated = 1, 32 .aggregated = 1, 34 .group_position = 1, 33 .group_position = 1, 35 .group_id = 1, 34 .group_id = 1, 36 }; 35 }; 37 36 38 static const struct snd_soc_acpi_endpoint spk_ << 39 .num = 0, << 40 .aggregated = 1, << 41 .group_position = 2, << 42 .group_id = 1, << 43 }; << 44 << 45 static const struct snd_soc_acpi_endpoint spk_ << 46 .num = 0, << 47 .aggregated = 1, << 48 .group_position = 3, << 49 .group_id = 1, << 50 }; << 51 << 52 static const struct snd_soc_acpi_adr_device cs << 53 { << 54 .adr = 0x00023201FA355601ull, << 55 .num_endpoints = 1, << 56 .endpoints = &spk_r_endpoint, << 57 .name_prefix = "AMP3" << 58 }, << 59 { << 60 .adr = 0x00023301FA355601ull, << 61 .num_endpoints = 1, << 62 .endpoints = &spk_3_endpoint, << 63 .name_prefix = "AMP4" << 64 } << 65 }; << 66 << 67 static const struct snd_soc_acpi_adr_device cs << 68 { << 69 .adr = 0x00033001fa355601ull, << 70 .num_endpoints = 1, << 71 .endpoints = &spk_l_endpoint, << 72 .name_prefix = "AMP1" << 73 }, << 74 { << 75 .adr = 0x00033101fa355601ull, << 76 .num_endpoints = 1, << 77 .endpoints = &spk_2_endpoint, << 78 .name_prefix = "AMP2" << 79 } << 80 }; << 81 << 82 static const struct snd_soc_acpi_endpoint cs42 << 83 { /* Jack Playback Endpoint */ << 84 .num = 0, << 85 .aggregated = 0, << 86 .group_position = 0, << 87 .group_id = 0, << 88 }, << 89 { /* DMIC Capture Endpoint */ << 90 .num = 1, << 91 .aggregated = 0, << 92 .group_position = 0, << 93 .group_id = 0, << 94 }, << 95 { /* Jack Capture Endpoint */ << 96 .num = 2, << 97 .aggregated = 0, << 98 .group_position = 0, << 99 .group_id = 0, << 100 }, << 101 { /* Speaker Playback Endpoint */ << 102 .num = 3, << 103 .aggregated = 0, << 104 .group_position = 0, << 105 .group_id = 0, << 106 }, << 107 }; << 108 << 109 static const struct snd_soc_acpi_adr_device cs << 110 { << 111 .adr = 0x00003001FA424301ull, << 112 .num_endpoints = ARRAY_SIZE(cs << 113 .endpoints = cs42l43_endpoints << 114 .name_prefix = "cs42l43" << 115 } << 116 }; << 117 << 118 static const struct snd_soc_acpi_adr_device rt 37 static const struct snd_soc_acpi_adr_device rt711_0_adr[] = { 119 { 38 { 120 .adr = 0x000020025D071100ull, 39 .adr = 0x000020025D071100ull, 121 .num_endpoints = 1, 40 .num_endpoints = 1, 122 .endpoints = &single_endpoint, 41 .endpoints = &single_endpoint, 123 .name_prefix = "rt711" 42 .name_prefix = "rt711" 124 } 43 } 125 }; 44 }; 126 45 127 static const struct snd_soc_acpi_adr_device rt 46 static const struct snd_soc_acpi_adr_device rt1308_1_group1_adr[] = { 128 { 47 { 129 .adr = 0x000120025D130800ull, 48 .adr = 0x000120025D130800ull, 130 .num_endpoints = 1, 49 .num_endpoints = 1, 131 .endpoints = &spk_l_endpoint, 50 .endpoints = &spk_l_endpoint, 132 .name_prefix = "rt1308-1" 51 .name_prefix = "rt1308-1" 133 } 52 } 134 }; 53 }; 135 54 136 static const struct snd_soc_acpi_adr_device rt 55 static const struct snd_soc_acpi_adr_device rt1308_2_group1_adr[] = { 137 { 56 { 138 .adr = 0x000220025D130800ull, 57 .adr = 0x000220025D130800ull, 139 .num_endpoints = 1, 58 .num_endpoints = 1, 140 .endpoints = &spk_r_endpoint, 59 .endpoints = &spk_r_endpoint, 141 .name_prefix = "rt1308-2" 60 .name_prefix = "rt1308-2" 142 } 61 } 143 }; 62 }; 144 63 145 static const struct snd_soc_acpi_adr_device rt 64 static const struct snd_soc_acpi_adr_device rt715_3_adr[] = { 146 { 65 { 147 .adr = 0x000320025D071500ull, 66 .adr = 0x000320025D071500ull, 148 .num_endpoints = 1, 67 .num_endpoints = 1, 149 .endpoints = &single_endpoint, 68 .endpoints = &single_endpoint, 150 .name_prefix = "rt715" 69 .name_prefix = "rt715" 151 } 70 } 152 }; 71 }; 153 72 154 static const struct snd_soc_acpi_adr_device rt 73 static const struct snd_soc_acpi_adr_device rt711_sdca_0_adr[] = { 155 { 74 { 156 .adr = 0x000030025D071101ull, 75 .adr = 0x000030025D071101ull, 157 .num_endpoints = 1, 76 .num_endpoints = 1, 158 .endpoints = &single_endpoint, 77 .endpoints = &single_endpoint, 159 .name_prefix = "rt711" 78 .name_prefix = "rt711" 160 } 79 } 161 }; 80 }; 162 81 163 static const struct snd_soc_acpi_adr_device rt 82 static const struct snd_soc_acpi_adr_device rt711_sdca_2_adr[] = { 164 { 83 { 165 .adr = 0x000230025D071101ull, 84 .adr = 0x000230025D071101ull, 166 .num_endpoints = 1, 85 .num_endpoints = 1, 167 .endpoints = &single_endpoint, 86 .endpoints = &single_endpoint, 168 .name_prefix = "rt711" 87 .name_prefix = "rt711" 169 } 88 } 170 }; 89 }; 171 90 172 static const struct snd_soc_acpi_adr_device rt 91 static const struct snd_soc_acpi_adr_device rt1316_1_group1_adr[] = { 173 { 92 { 174 .adr = 0x000131025D131601ull, 93 .adr = 0x000131025D131601ull, /* unique ID is set for some reason */ 175 .num_endpoints = 1, 94 .num_endpoints = 1, 176 .endpoints = &spk_l_endpoint, 95 .endpoints = &spk_l_endpoint, 177 .name_prefix = "rt1316-1" 96 .name_prefix = "rt1316-1" 178 } 97 } 179 }; 98 }; 180 99 181 static const struct snd_soc_acpi_adr_device rt 100 static const struct snd_soc_acpi_adr_device rt1316_2_group1_adr[] = { 182 { 101 { 183 .adr = 0x000230025D131601ull, 102 .adr = 0x000230025D131601ull, 184 .num_endpoints = 1, 103 .num_endpoints = 1, 185 .endpoints = &spk_r_endpoint, 104 .endpoints = &spk_r_endpoint, 186 .name_prefix = "rt1316-2" 105 .name_prefix = "rt1316-2" 187 } 106 } 188 }; 107 }; 189 108 190 static const struct snd_soc_acpi_adr_device rt 109 static const struct snd_soc_acpi_adr_device rt1316_3_group1_adr[] = { 191 { 110 { 192 .adr = 0x000330025D131601ull, 111 .adr = 0x000330025D131601ull, 193 .num_endpoints = 1, 112 .num_endpoints = 1, 194 .endpoints = &spk_r_endpoint, 113 .endpoints = &spk_r_endpoint, 195 .name_prefix = "rt1316-2" 114 .name_prefix = "rt1316-2" 196 } 115 } 197 }; 116 }; 198 117 199 static const struct snd_soc_acpi_adr_device rt 118 static const struct snd_soc_acpi_adr_device rt1316_0_group2_adr[] = { 200 { 119 { 201 .adr = 0x000031025D131601ull, 120 .adr = 0x000031025D131601ull, 202 .num_endpoints = 1, 121 .num_endpoints = 1, 203 .endpoints = &spk_l_endpoint, 122 .endpoints = &spk_l_endpoint, 204 .name_prefix = "rt1316-1" 123 .name_prefix = "rt1316-1" 205 } 124 } 206 }; 125 }; 207 126 208 static const struct snd_soc_acpi_adr_device rt 127 static const struct snd_soc_acpi_adr_device rt1316_1_group2_adr[] = { 209 { 128 { 210 .adr = 0x000130025D131601ull, 129 .adr = 0x000130025D131601ull, 211 .num_endpoints = 1, 130 .num_endpoints = 1, 212 .endpoints = &spk_r_endpoint, 131 .endpoints = &spk_r_endpoint, 213 .name_prefix = "rt1316-2" 132 .name_prefix = "rt1316-2" 214 } 133 } 215 }; 134 }; 216 135 217 static const struct snd_soc_acpi_adr_device rt 136 static const struct snd_soc_acpi_adr_device rt1316_1_single_adr[] = { 218 { 137 { 219 .adr = 0x000130025D131601ull, 138 .adr = 0x000130025D131601ull, 220 .num_endpoints = 1, 139 .num_endpoints = 1, 221 .endpoints = &single_endpoint, 140 .endpoints = &single_endpoint, 222 .name_prefix = "rt1316-1" 141 .name_prefix = "rt1316-1" 223 } 142 } 224 }; 143 }; 225 144 226 static const struct snd_soc_acpi_adr_device rt 145 static const struct snd_soc_acpi_adr_device rt1316_2_single_adr[] = { 227 { 146 { 228 .adr = 0x000230025D131601ull, 147 .adr = 0x000230025D131601ull, 229 .num_endpoints = 1, 148 .num_endpoints = 1, 230 .endpoints = &single_endpoint, 149 .endpoints = &single_endpoint, 231 .name_prefix = "rt1316-1" 150 .name_prefix = "rt1316-1" 232 } 151 } 233 }; 152 }; 234 153 235 static const struct snd_soc_acpi_adr_device rt 154 static const struct snd_soc_acpi_adr_device rt1316_3_single_adr[] = { 236 { 155 { 237 .adr = 0x000330025D131601ull, 156 .adr = 0x000330025D131601ull, 238 .num_endpoints = 1, 157 .num_endpoints = 1, 239 .endpoints = &single_endpoint, 158 .endpoints = &single_endpoint, 240 .name_prefix = "rt1316-1" 159 .name_prefix = "rt1316-1" 241 } 160 } 242 }; 161 }; 243 162 244 static const struct snd_soc_acpi_adr_device rt 163 static const struct snd_soc_acpi_adr_device rt714_0_adr[] = { 245 { 164 { 246 .adr = 0x000030025D071401ull, 165 .adr = 0x000030025D071401ull, 247 .num_endpoints = 1, 166 .num_endpoints = 1, 248 .endpoints = &single_endpoint, 167 .endpoints = &single_endpoint, 249 .name_prefix = "rt714" 168 .name_prefix = "rt714" 250 } 169 } 251 }; 170 }; 252 171 253 static const struct snd_soc_acpi_adr_device rt 172 static const struct snd_soc_acpi_adr_device rt714_2_adr[] = { 254 { 173 { 255 .adr = 0x000230025D071401ull, 174 .adr = 0x000230025D071401ull, 256 .num_endpoints = 1, 175 .num_endpoints = 1, 257 .endpoints = &single_endpoint, 176 .endpoints = &single_endpoint, 258 .name_prefix = "rt714" 177 .name_prefix = "rt714" 259 } 178 } 260 }; 179 }; 261 180 262 static const struct snd_soc_acpi_adr_device rt 181 static const struct snd_soc_acpi_adr_device rt714_3_adr[] = { 263 { 182 { 264 .adr = 0x000330025D071401ull, 183 .adr = 0x000330025D071401ull, 265 .num_endpoints = 1, 184 .num_endpoints = 1, 266 .endpoints = &single_endpoint, 185 .endpoints = &single_endpoint, 267 .name_prefix = "rt714" 186 .name_prefix = "rt714" 268 } 187 } 269 }; 188 }; 270 189 271 static const struct snd_soc_acpi_link_adr adl_ 190 static const struct snd_soc_acpi_link_adr adl_default[] = { 272 { 191 { 273 .mask = BIT(0), 192 .mask = BIT(0), 274 .num_adr = ARRAY_SIZE(rt711_0_ 193 .num_adr = ARRAY_SIZE(rt711_0_adr), 275 .adr_d = rt711_0_adr, 194 .adr_d = rt711_0_adr, 276 }, 195 }, 277 { 196 { 278 .mask = BIT(1), 197 .mask = BIT(1), 279 .num_adr = ARRAY_SIZE(rt1308_1 198 .num_adr = ARRAY_SIZE(rt1308_1_group1_adr), 280 .adr_d = rt1308_1_group1_adr, 199 .adr_d = rt1308_1_group1_adr, 281 }, 200 }, 282 { 201 { 283 .mask = BIT(2), 202 .mask = BIT(2), 284 .num_adr = ARRAY_SIZE(rt1308_2 203 .num_adr = ARRAY_SIZE(rt1308_2_group1_adr), 285 .adr_d = rt1308_2_group1_adr, 204 .adr_d = rt1308_2_group1_adr, 286 }, 205 }, 287 { 206 { 288 .mask = BIT(3), 207 .mask = BIT(3), 289 .num_adr = ARRAY_SIZE(rt715_3_ 208 .num_adr = ARRAY_SIZE(rt715_3_adr), 290 .adr_d = rt715_3_adr, 209 .adr_d = rt715_3_adr, 291 }, 210 }, 292 {} 211 {} 293 }; 212 }; 294 213 295 static const struct snd_soc_acpi_link_adr adl_ 214 static const struct snd_soc_acpi_link_adr adl_sdca_default[] = { 296 { 215 { 297 .mask = BIT(0), 216 .mask = BIT(0), 298 .num_adr = ARRAY_SIZE(rt711_sd 217 .num_adr = ARRAY_SIZE(rt711_sdca_0_adr), 299 .adr_d = rt711_sdca_0_adr, 218 .adr_d = rt711_sdca_0_adr, 300 }, 219 }, 301 { 220 { 302 .mask = BIT(1), 221 .mask = BIT(1), 303 .num_adr = ARRAY_SIZE(rt1316_1 222 .num_adr = ARRAY_SIZE(rt1316_1_group1_adr), 304 .adr_d = rt1316_1_group1_adr, 223 .adr_d = rt1316_1_group1_adr, 305 }, 224 }, 306 { 225 { 307 .mask = BIT(2), 226 .mask = BIT(2), 308 .num_adr = ARRAY_SIZE(rt1316_2 227 .num_adr = ARRAY_SIZE(rt1316_2_group1_adr), 309 .adr_d = rt1316_2_group1_adr, 228 .adr_d = rt1316_2_group1_adr, 310 }, 229 }, 311 { 230 { 312 .mask = BIT(3), 231 .mask = BIT(3), 313 .num_adr = ARRAY_SIZE(rt714_3_ 232 .num_adr = ARRAY_SIZE(rt714_3_adr), 314 .adr_d = rt714_3_adr, 233 .adr_d = rt714_3_adr, 315 }, 234 }, 316 {} 235 {} 317 }; 236 }; 318 237 319 static const struct snd_soc_acpi_link_adr adl_ 238 static const struct snd_soc_acpi_link_adr adl_sdca_3_in_1[] = { 320 { 239 { 321 .mask = BIT(0), 240 .mask = BIT(0), 322 .num_adr = ARRAY_SIZE(rt711_sd 241 .num_adr = ARRAY_SIZE(rt711_sdca_0_adr), 323 .adr_d = rt711_sdca_0_adr, 242 .adr_d = rt711_sdca_0_adr, 324 }, 243 }, 325 { 244 { 326 .mask = BIT(1), 245 .mask = BIT(1), 327 .num_adr = ARRAY_SIZE(rt1316_1 246 .num_adr = ARRAY_SIZE(rt1316_1_group1_adr), 328 .adr_d = rt1316_1_group1_adr, 247 .adr_d = rt1316_1_group1_adr, 329 }, 248 }, 330 { 249 { 331 .mask = BIT(2), 250 .mask = BIT(2), 332 .num_adr = ARRAY_SIZE(rt714_2_ 251 .num_adr = ARRAY_SIZE(rt714_2_adr), 333 .adr_d = rt714_2_adr, 252 .adr_d = rt714_2_adr, 334 }, 253 }, 335 { 254 { 336 .mask = BIT(3), 255 .mask = BIT(3), 337 .num_adr = ARRAY_SIZE(rt1316_3 256 .num_adr = ARRAY_SIZE(rt1316_3_group1_adr), 338 .adr_d = rt1316_3_group1_adr, 257 .adr_d = rt1316_3_group1_adr, 339 }, 258 }, 340 {} 259 {} 341 }; 260 }; 342 261 343 static const struct snd_soc_acpi_link_adr adl_ 262 static const struct snd_soc_acpi_link_adr adl_sdw_rt711_link2_rt1316_link01_rt714_link3[] = { 344 { 263 { 345 .mask = BIT(2), 264 .mask = BIT(2), 346 .num_adr = ARRAY_SIZE(rt711_sd 265 .num_adr = ARRAY_SIZE(rt711_sdca_2_adr), 347 .adr_d = rt711_sdca_2_adr, 266 .adr_d = rt711_sdca_2_adr, 348 }, 267 }, 349 { 268 { 350 .mask = BIT(0), 269 .mask = BIT(0), 351 .num_adr = ARRAY_SIZE(rt1316_0 270 .num_adr = ARRAY_SIZE(rt1316_0_group2_adr), 352 .adr_d = rt1316_0_group2_adr, 271 .adr_d = rt1316_0_group2_adr, 353 }, 272 }, 354 { 273 { 355 .mask = BIT(1), 274 .mask = BIT(1), 356 .num_adr = ARRAY_SIZE(rt1316_1 275 .num_adr = ARRAY_SIZE(rt1316_1_group2_adr), 357 .adr_d = rt1316_1_group2_adr, 276 .adr_d = rt1316_1_group2_adr, 358 }, 277 }, 359 { 278 { 360 .mask = BIT(3), 279 .mask = BIT(3), 361 .num_adr = ARRAY_SIZE(rt714_3_ 280 .num_adr = ARRAY_SIZE(rt714_3_adr), 362 .adr_d = rt714_3_adr, 281 .adr_d = rt714_3_adr, 363 }, 282 }, 364 {} 283 {} 365 }; 284 }; 366 285 367 static const struct snd_soc_acpi_link_adr adl_ 286 static const struct snd_soc_acpi_link_adr adl_sdw_rt711_link2_rt1316_link01[] = { 368 { 287 { 369 .mask = BIT(2), 288 .mask = BIT(2), 370 .num_adr = ARRAY_SIZE(rt711_sd 289 .num_adr = ARRAY_SIZE(rt711_sdca_2_adr), 371 .adr_d = rt711_sdca_2_adr, 290 .adr_d = rt711_sdca_2_adr, 372 }, 291 }, 373 { 292 { 374 .mask = BIT(0), 293 .mask = BIT(0), 375 .num_adr = ARRAY_SIZE(rt1316_0 294 .num_adr = ARRAY_SIZE(rt1316_0_group2_adr), 376 .adr_d = rt1316_0_group2_adr, 295 .adr_d = rt1316_0_group2_adr, 377 }, 296 }, 378 { 297 { 379 .mask = BIT(1), 298 .mask = BIT(1), 380 .num_adr = ARRAY_SIZE(rt1316_1 299 .num_adr = ARRAY_SIZE(rt1316_1_group2_adr), 381 .adr_d = rt1316_1_group2_adr, 300 .adr_d = rt1316_1_group2_adr, 382 }, 301 }, 383 {} 302 {} 384 }; 303 }; 385 304 386 static const struct snd_soc_acpi_link_adr adl_ 305 static const struct snd_soc_acpi_link_adr adl_sdw_rt1316_link12_rt714_link0[] = { 387 { 306 { 388 .mask = BIT(1), 307 .mask = BIT(1), 389 .num_adr = ARRAY_SIZE(rt1316_1 308 .num_adr = ARRAY_SIZE(rt1316_1_group1_adr), 390 .adr_d = rt1316_1_group1_adr, 309 .adr_d = rt1316_1_group1_adr, 391 }, 310 }, 392 { 311 { 393 .mask = BIT(2), 312 .mask = BIT(2), 394 .num_adr = ARRAY_SIZE(rt1316_2 313 .num_adr = ARRAY_SIZE(rt1316_2_group1_adr), 395 .adr_d = rt1316_2_group1_adr, 314 .adr_d = rt1316_2_group1_adr, 396 }, 315 }, 397 { 316 { 398 .mask = BIT(0), 317 .mask = BIT(0), 399 .num_adr = ARRAY_SIZE(rt714_0_ 318 .num_adr = ARRAY_SIZE(rt714_0_adr), 400 .adr_d = rt714_0_adr, 319 .adr_d = rt714_0_adr, 401 }, 320 }, 402 {} 321 {} 403 }; 322 }; 404 323 405 static const struct snd_soc_acpi_link_adr adl_ 324 static const struct snd_soc_acpi_link_adr adl_sdw_rt1316_link1_rt714_link0[] = { 406 { 325 { 407 .mask = BIT(1), 326 .mask = BIT(1), 408 .num_adr = ARRAY_SIZE(rt1316_1 327 .num_adr = ARRAY_SIZE(rt1316_1_single_adr), 409 .adr_d = rt1316_1_single_adr, 328 .adr_d = rt1316_1_single_adr, 410 }, 329 }, 411 { 330 { 412 .mask = BIT(0), 331 .mask = BIT(0), 413 .num_adr = ARRAY_SIZE(rt714_0_ 332 .num_adr = ARRAY_SIZE(rt714_0_adr), 414 .adr_d = rt714_0_adr, 333 .adr_d = rt714_0_adr, 415 }, 334 }, 416 {} 335 {} 417 }; 336 }; 418 337 419 static const struct snd_soc_acpi_link_adr adl_ 338 static const struct snd_soc_acpi_link_adr adl_sdw_rt1316_link2_rt714_link3[] = { 420 { 339 { 421 .mask = BIT(2), 340 .mask = BIT(2), 422 .num_adr = ARRAY_SIZE(rt1316_2 341 .num_adr = ARRAY_SIZE(rt1316_2_single_adr), 423 .adr_d = rt1316_2_single_adr, 342 .adr_d = rt1316_2_single_adr, 424 }, 343 }, 425 { 344 { 426 .mask = BIT(3), 345 .mask = BIT(3), 427 .num_adr = ARRAY_SIZE(rt714_3_ 346 .num_adr = ARRAY_SIZE(rt714_3_adr), 428 .adr_d = rt714_3_adr, 347 .adr_d = rt714_3_adr, 429 }, 348 }, 430 {} 349 {} 431 }; 350 }; 432 351 433 static const struct snd_soc_acpi_link_adr adl_ 352 static const struct snd_soc_acpi_link_adr adl_sdw_rt1316_link2_rt714_link0[] = { 434 { 353 { 435 .mask = BIT(2), 354 .mask = BIT(2), 436 .num_adr = ARRAY_SIZE(rt1316_2 355 .num_adr = ARRAY_SIZE(rt1316_2_single_adr), 437 .adr_d = rt1316_2_single_adr, 356 .adr_d = rt1316_2_single_adr, 438 }, 357 }, 439 { 358 { 440 .mask = BIT(0), 359 .mask = BIT(0), 441 .num_adr = ARRAY_SIZE(rt714_0_ 360 .num_adr = ARRAY_SIZE(rt714_0_adr), 442 .adr_d = rt714_0_adr, 361 .adr_d = rt714_0_adr, 443 }, 362 }, 444 {} 363 {} 445 }; 364 }; 446 365 447 static const struct snd_soc_acpi_link_adr adl_ 366 static const struct snd_soc_acpi_link_adr adl_sdw_rt711_link0_rt1316_link3[] = { 448 { 367 { 449 .mask = BIT(0), 368 .mask = BIT(0), 450 .num_adr = ARRAY_SIZE(rt711_sd 369 .num_adr = ARRAY_SIZE(rt711_sdca_0_adr), 451 .adr_d = rt711_sdca_0_adr, 370 .adr_d = rt711_sdca_0_adr, 452 }, 371 }, 453 { 372 { 454 .mask = BIT(3), 373 .mask = BIT(3), 455 .num_adr = ARRAY_SIZE(rt1316_3 374 .num_adr = ARRAY_SIZE(rt1316_3_single_adr), 456 .adr_d = rt1316_3_single_adr, 375 .adr_d = rt1316_3_single_adr, 457 }, 376 }, 458 {} 377 {} 459 }; 378 }; 460 379 461 static const struct snd_soc_acpi_link_adr adl_ 380 static const struct snd_soc_acpi_link_adr adl_sdw_rt711_link0_rt1316_link2[] = { 462 { 381 { 463 .mask = BIT(0), 382 .mask = BIT(0), 464 .num_adr = ARRAY_SIZE(rt711_sd 383 .num_adr = ARRAY_SIZE(rt711_sdca_0_adr), 465 .adr_d = rt711_sdca_0_adr, 384 .adr_d = rt711_sdca_0_adr, 466 }, 385 }, 467 { 386 { 468 .mask = BIT(2), 387 .mask = BIT(2), 469 .num_adr = ARRAY_SIZE(rt1316_2 388 .num_adr = ARRAY_SIZE(rt1316_2_single_adr), 470 .adr_d = rt1316_2_single_adr, 389 .adr_d = rt1316_2_single_adr, 471 }, 390 }, 472 {} 391 {} 473 }; 392 }; 474 393 475 static const struct snd_soc_acpi_adr_device mx 394 static const struct snd_soc_acpi_adr_device mx8373_2_adr[] = { 476 { 395 { 477 .adr = 0x000223019F837300ull, 396 .adr = 0x000223019F837300ull, 478 .num_endpoints = 1, 397 .num_endpoints = 1, 479 .endpoints = &spk_l_endpoint, 398 .endpoints = &spk_l_endpoint, 480 .name_prefix = "Left" 399 .name_prefix = "Left" 481 }, 400 }, 482 { 401 { 483 .adr = 0x000227019F837300ull, 402 .adr = 0x000227019F837300ull, 484 .num_endpoints = 1, 403 .num_endpoints = 1, 485 .endpoints = &spk_r_endpoint, 404 .endpoints = &spk_r_endpoint, 486 .name_prefix = "Right" 405 .name_prefix = "Right" 487 } 406 } 488 }; 407 }; 489 408 490 static const struct snd_soc_acpi_adr_device rt 409 static const struct snd_soc_acpi_adr_device rt5682_0_adr[] = { 491 { 410 { 492 .adr = 0x000021025D568200ull, 411 .adr = 0x000021025D568200ull, 493 .num_endpoints = 1, 412 .num_endpoints = 1, 494 .endpoints = &single_endpoint, 413 .endpoints = &single_endpoint, 495 .name_prefix = "rt5682" 414 .name_prefix = "rt5682" 496 } 415 } 497 }; 416 }; 498 417 499 static const struct snd_soc_acpi_link_adr adl_ << 500 { << 501 .mask = BIT(0), << 502 .num_adr = ARRAY_SIZE(cs42l43_ << 503 .adr_d = cs42l43_0_adr, << 504 }, << 505 { << 506 .mask = BIT(2), << 507 .num_adr = ARRAY_SIZE(cs35l56_ << 508 .adr_d = cs35l56_2_r_adr, << 509 }, << 510 { << 511 .mask = BIT(3), << 512 .num_adr = ARRAY_SIZE(cs35l56_ << 513 .adr_d = cs35l56_3_l_adr, << 514 }, << 515 {} << 516 }; << 517 << 518 static const struct snd_soc_acpi_link_adr adl_ 418 static const struct snd_soc_acpi_link_adr adl_rvp[] = { 519 { 419 { 520 .mask = BIT(0), 420 .mask = BIT(0), 521 .num_adr = ARRAY_SIZE(rt711_0_ 421 .num_adr = ARRAY_SIZE(rt711_0_adr), 522 .adr_d = rt711_0_adr, 422 .adr_d = rt711_0_adr, 523 }, 423 }, 524 {} 424 {} 525 }; 425 }; 526 426 527 static const struct snd_soc_acpi_link_adr adlp 427 static const struct snd_soc_acpi_link_adr adlps_rvp[] = { 528 { 428 { 529 .mask = BIT(0), 429 .mask = BIT(0), 530 .num_adr = ARRAY_SIZE(rt711_sd 430 .num_adr = ARRAY_SIZE(rt711_sdca_0_adr), 531 .adr_d = rt711_sdca_0_adr, 431 .adr_d = rt711_sdca_0_adr, 532 }, 432 }, 533 {} 433 {} 534 }; 434 }; 535 435 536 static const struct snd_soc_acpi_link_adr adl_ 436 static const struct snd_soc_acpi_link_adr adl_chromebook_base[] = { 537 { 437 { 538 .mask = BIT(0), 438 .mask = BIT(0), 539 .num_adr = ARRAY_SIZE(rt5682_0 439 .num_adr = ARRAY_SIZE(rt5682_0_adr), 540 .adr_d = rt5682_0_adr, 440 .adr_d = rt5682_0_adr, 541 }, 441 }, 542 { 442 { 543 .mask = BIT(2), 443 .mask = BIT(2), 544 .num_adr = ARRAY_SIZE(mx8373_2 444 .num_adr = ARRAY_SIZE(mx8373_2_adr), 545 .adr_d = mx8373_2_adr, 445 .adr_d = mx8373_2_adr, 546 }, 446 }, 547 {} 447 {} 548 }; 448 }; 549 449 >> 450 static const struct snd_soc_acpi_codecs adl_max98373_amp = { >> 451 .num_codecs = 1, >> 452 .codecs = {"MX98373"} >> 453 }; >> 454 550 static const struct snd_soc_acpi_codecs adl_ma 455 static const struct snd_soc_acpi_codecs adl_max98357a_amp = { 551 .num_codecs = 1, 456 .num_codecs = 1, 552 .codecs = {"MX98357A"} 457 .codecs = {"MX98357A"} 553 }; 458 }; 554 459 >> 460 static const struct snd_soc_acpi_codecs adl_max98360a_amp = { >> 461 .num_codecs = 1, >> 462 .codecs = {"MX98360A"} >> 463 }; >> 464 555 static const struct snd_soc_acpi_codecs adl_rt 465 static const struct snd_soc_acpi_codecs adl_rt5682_rt5682s_hp = { 556 .num_codecs = 2, 466 .num_codecs = 2, 557 .codecs = {RT5682_ACPI_HID, RT5682S_AC !! 467 .codecs = {"10EC5682", "RTL5682"}, >> 468 }; >> 469 >> 470 static const struct snd_soc_acpi_codecs adl_rt1015p_amp = { >> 471 .num_codecs = 1, >> 472 .codecs = {"RTL1015"} 558 }; 473 }; 559 474 560 static const struct snd_soc_acpi_codecs adl_rt 475 static const struct snd_soc_acpi_codecs adl_rt1019p_amp = { 561 .num_codecs = 1, 476 .num_codecs = 1, 562 .codecs = {"RTL1019"} 477 .codecs = {"RTL1019"} 563 }; 478 }; 564 479 >> 480 static const struct snd_soc_acpi_codecs adl_max98390_amp = { >> 481 .num_codecs = 1, >> 482 .codecs = {"MX98390"} >> 483 }; >> 484 565 static const struct snd_soc_acpi_codecs adl_lt 485 static const struct snd_soc_acpi_codecs adl_lt6911_hdmi = { 566 .num_codecs = 1, 486 .num_codecs = 1, 567 .codecs = {"INTC10B0"} 487 .codecs = {"INTC10B0"} 568 }; 488 }; 569 489 >> 490 static const struct snd_soc_acpi_codecs adl_nau8318_amp = { >> 491 .num_codecs = 1, >> 492 .codecs = {"NVTN2012"} >> 493 }; >> 494 >> 495 static struct snd_soc_acpi_codecs adl_rt5650_amp = { >> 496 .num_codecs = 1, >> 497 .codecs = {"10EC5650"} >> 498 }; >> 499 570 struct snd_soc_acpi_mach snd_soc_acpi_intel_ad 500 struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_machines[] = { 571 { 501 { 572 .comp_ids = &adl_rt5682_rt5682 502 .comp_ids = &adl_rt5682_rt5682s_hp, >> 503 .drv_name = "adl_mx98373_rt5682", >> 504 .machine_quirk = snd_soc_acpi_codec_list, >> 505 .quirk_data = &adl_max98373_amp, >> 506 .sof_tplg_filename = "sof-adl-max98373-rt5682.tplg", >> 507 }, >> 508 { >> 509 .comp_ids = &adl_rt5682_rt5682s_hp, 573 .drv_name = "adl_mx98357_rt568 510 .drv_name = "adl_mx98357_rt5682", 574 .machine_quirk = snd_soc_acpi_ 511 .machine_quirk = snd_soc_acpi_codec_list, 575 .quirk_data = &adl_max98357a_a 512 .quirk_data = &adl_max98357a_amp, 576 .sof_tplg_filename = "sof-adl- 513 .sof_tplg_filename = "sof-adl-max98357a-rt5682.tplg", 577 }, 514 }, 578 { 515 { >> 516 .comp_ids = &adl_rt5682_rt5682s_hp, >> 517 .drv_name = "adl_mx98360_rt5682", >> 518 .machine_quirk = snd_soc_acpi_codec_list, >> 519 .quirk_data = &adl_max98360a_amp, >> 520 .sof_tplg_filename = "sof-adl-max98360a-rt5682.tplg", >> 521 }, >> 522 { 579 .id = "10508825", 523 .id = "10508825", 580 .drv_name = "adl_rt1019p_8825" 524 .drv_name = "adl_rt1019p_8825", 581 .machine_quirk = snd_soc_acpi_ 525 .machine_quirk = snd_soc_acpi_codec_list, 582 .quirk_data = &adl_rt1019p_amp 526 .quirk_data = &adl_rt1019p_amp, 583 .sof_tplg_filename = "sof-adl- 527 .sof_tplg_filename = "sof-adl-rt1019-nau8825.tplg", 584 }, 528 }, 585 { 529 { >> 530 .id = "10508825", >> 531 .drv_name = "adl_nau8825_def", >> 532 .machine_quirk = snd_soc_acpi_codec_list, >> 533 .quirk_data = &adl_max98373_amp, >> 534 .sof_tplg_filename = "sof-adl-max98373-nau8825.tplg", >> 535 }, >> 536 { >> 537 .id = "10508825", >> 538 .drv_name = "adl_nau8825_def", >> 539 .machine_quirk = snd_soc_acpi_codec_list, >> 540 .quirk_data = &adl_max98360a_amp, >> 541 .sof_tplg_filename = "sof-adl-max98360a-nau8825.tplg", >> 542 }, >> 543 { >> 544 .comp_ids = &adl_rt5682_rt5682s_hp, >> 545 .drv_name = "adl_rt1019_rt5682", >> 546 .machine_quirk = snd_soc_acpi_codec_list, >> 547 .quirk_data = &adl_rt1019p_amp, >> 548 .sof_tplg_filename = "sof-adl-rt1019-rt5682.tplg", >> 549 }, >> 550 { >> 551 .id = "10508825", >> 552 .drv_name = "adl_nau8825_def", >> 553 .machine_quirk = snd_soc_acpi_codec_list, >> 554 .quirk_data = &adl_rt1015p_amp, >> 555 .sof_tplg_filename = "sof-adl-rt1015-nau8825.tplg", >> 556 }, >> 557 { >> 558 .id = "10508825", >> 559 .drv_name = "adl_nau8825_def", >> 560 .machine_quirk = snd_soc_acpi_codec_list, >> 561 .quirk_data = &adl_nau8318_amp, >> 562 .sof_tplg_filename = "sof-adl-nau8318-nau8825.tplg", >> 563 }, >> 564 { >> 565 .id = "10508825", >> 566 .drv_name = "sof_nau8825", >> 567 .sof_tplg_filename = "sof-adl-nau8825.tplg", >> 568 }, >> 569 { >> 570 .comp_ids = &adl_rt5682_rt5682s_hp, >> 571 .drv_name = "adl_max98390_rt5682", >> 572 .machine_quirk = snd_soc_acpi_codec_list, >> 573 .quirk_data = &adl_max98390_amp, >> 574 .sof_tplg_filename = "sof-adl-max98390-rt5682.tplg", >> 575 }, >> 576 { 586 .comp_ids = &adl_rt5682_rt5682 577 .comp_ids = &adl_rt5682_rt5682s_hp, 587 .drv_name = "adl_rt5682_c1_h02 578 .drv_name = "adl_rt5682_c1_h02", 588 .machine_quirk = snd_soc_acpi_ 579 .machine_quirk = snd_soc_acpi_codec_list, 589 .quirk_data = &adl_lt6911_hdmi 580 .quirk_data = &adl_lt6911_hdmi, 590 .sof_tplg_filename = "sof-adl- 581 .sof_tplg_filename = "sof-adl-rt5682-ssp1-hdmi-ssp02.tplg", 591 }, 582 }, 592 { 583 { >> 584 .comp_ids = &adl_rt5682_rt5682s_hp, >> 585 .drv_name = "adl_rt5682", >> 586 .sof_tplg_filename = "sof-adl-rt5682.tplg", >> 587 }, >> 588 { >> 589 .id = "10134242", >> 590 .drv_name = "adl_mx98360a_cs4242", >> 591 .machine_quirk = snd_soc_acpi_codec_list, >> 592 .quirk_data = &adl_max98360a_amp, >> 593 .sof_tplg_filename = "sof-adl-max98360a-cs42l42.tplg", >> 594 }, >> 595 { 593 .comp_ids = &essx_83x6, 596 .comp_ids = &essx_83x6, 594 .drv_name = "adl_es83x6_c1_h02 597 .drv_name = "adl_es83x6_c1_h02", 595 .machine_quirk = snd_soc_acpi_ 598 .machine_quirk = snd_soc_acpi_codec_list, 596 .quirk_data = &adl_lt6911_hdmi 599 .quirk_data = &adl_lt6911_hdmi, 597 .sof_tplg_filename = "sof-adl- 600 .sof_tplg_filename = "sof-adl-es83x6-ssp1-hdmi-ssp02.tplg", 598 }, 601 }, 599 { 602 { 600 .comp_ids = &essx_83x6, 603 .comp_ids = &essx_83x6, 601 .drv_name = "sof-essx8336", 604 .drv_name = "sof-essx8336", 602 .sof_tplg_filename = "sof-adl- 605 .sof_tplg_filename = "sof-adl-es8336", /* the tplg suffix is added at run time */ 603 .tplg_quirk_mask = SND_SOC_ACP 606 .tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER | 604 SND_SO 607 SND_SOC_ACPI_TPLG_INTEL_SSP_MSB | 605 SND_SO 608 SND_SOC_ACPI_TPLG_INTEL_DMIC_NUMBER, 606 }, 609 }, 607 /* place boards for each headphone cod << 608 * tplg name and machine driver will d << 609 */ << 610 { << 611 .id = CS42L42_ACPI_HID, << 612 .drv_name = "adl_cs42l42_def", << 613 .sof_tplg_filename = "sof-adl" << 614 .tplg_quirk_mask = SND_SOC_ACP << 615 SND_SO << 616 }, << 617 { << 618 .id = DA7219_ACPI_HID, << 619 .drv_name = "adl_da7219_def", << 620 .sof_tplg_filename = "sof-adl" << 621 .tplg_quirk_mask = SND_SOC_ACP << 622 SND_SO << 623 }, << 624 { 610 { 625 .id = NAU8825_ACPI_HID, !! 611 .id = "10EC5650", 626 .drv_name = "adl_nau8825_def", !! 612 .drv_name = "adl_rt5650", 627 .sof_tplg_filename = "sof-adl" !! 613 .machine_quirk = snd_soc_acpi_codec_list, 628 .tplg_quirk_mask = SND_SOC_ACP !! 614 .quirk_data = &adl_rt5650_amp, 629 SND_SO !! 615 .sof_tplg_filename = "sof-adl-rt5650.tplg", 630 }, << 631 { << 632 .id = RT5650_ACPI_HID, << 633 .drv_name = "adl_rt5682_def", << 634 .sof_tplg_filename = "sof-adl" << 635 .tplg_quirk_mask = SND_SOC_ACP << 636 SND_SO << 637 }, 616 }, 638 { 617 { 639 .comp_ids = &adl_rt5682_rt5682 !! 618 .id = "DLGS7219", 640 .drv_name = "adl_rt5682_def", !! 619 .drv_name = "adl_mx98360_da7219", 641 .sof_tplg_filename = "sof-adl" !! 620 .machine_quirk = snd_soc_acpi_codec_list, 642 .tplg_quirk_mask = SND_SOC_ACP !! 621 .quirk_data = &adl_max98360a_amp, 643 SND_SO !! 622 .sof_tplg_filename = "sof-adl-max98360a-da7219.tplg", 644 }, 623 }, 645 /* place amp-only boards in the end of 624 /* place amp-only boards in the end of table */ 646 { 625 { 647 .id = "CSC3541", 626 .id = "CSC3541", 648 .drv_name = "adl_cs35l41", 627 .drv_name = "adl_cs35l41", 649 .sof_tplg_filename = "sof-adl- 628 .sof_tplg_filename = "sof-adl-cs35l41.tplg", 650 }, 629 }, 651 { 630 { 652 .id = "INTC10B0", 631 .id = "INTC10B0", 653 .drv_name = "adl_lt6911_hdmi_s 632 .drv_name = "adl_lt6911_hdmi_ssp", 654 .sof_tplg_filename = "sof-adl- 633 .sof_tplg_filename = "sof-adl-nocodec-hdmi-ssp02.tplg" 655 }, 634 }, 656 {}, 635 {}, 657 }; 636 }; 658 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_adl_machi 637 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_adl_machines); 659 638 660 /* this table is used when there is no I2S cod 639 /* this table is used when there is no I2S codec present */ 661 struct snd_soc_acpi_mach snd_soc_acpi_intel_ad 640 struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_sdw_machines[] = { 662 { << 663 .link_mask = BIT(0) | BIT(2) | << 664 .links = adl_cs42l43_l0_cs35l5 << 665 .drv_name = "sof_sdw", << 666 .sof_tplg_filename = "sof-adl- << 667 }, << 668 { 641 { 669 .link_mask = 0xF, /* 4 active 642 .link_mask = 0xF, /* 4 active links required */ 670 .links = adl_default, 643 .links = adl_default, 671 .drv_name = "sof_sdw", 644 .drv_name = "sof_sdw", 672 .sof_tplg_filename = "sof-adl- 645 .sof_tplg_filename = "sof-adl-rt711-l0-rt1308-l12-rt715-l3.tplg", 673 }, 646 }, 674 { 647 { 675 .link_mask = 0xF, /* 4 active 648 .link_mask = 0xF, /* 4 active links required */ 676 .links = adl_sdca_default, 649 .links = adl_sdca_default, 677 .drv_name = "sof_sdw", 650 .drv_name = "sof_sdw", 678 .sof_tplg_filename = "sof-adl- 651 .sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l12-rt714-l3.tplg", 679 }, 652 }, 680 { 653 { 681 .link_mask = 0xF, /* 4 active 654 .link_mask = 0xF, /* 4 active links required */ 682 .links = adl_sdca_3_in_1, 655 .links = adl_sdca_3_in_1, 683 .drv_name = "sof_sdw", 656 .drv_name = "sof_sdw", 684 .sof_tplg_filename = "sof-adl- 657 .sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l13-rt714-l2.tplg", 685 }, 658 }, 686 { 659 { 687 .link_mask = 0xF, /* 4 active 660 .link_mask = 0xF, /* 4 active links required */ 688 .links = adl_sdw_rt711_link2_r 661 .links = adl_sdw_rt711_link2_rt1316_link01_rt714_link3, 689 .drv_name = "sof_sdw", 662 .drv_name = "sof_sdw", 690 .sof_tplg_filename = "sof-adl- 663 .sof_tplg_filename = "sof-adl-rt711-l2-rt1316-l01-rt714-l3.tplg", 691 }, 664 }, 692 { 665 { 693 .link_mask = 0x7, /* rt1316 on 666 .link_mask = 0x7, /* rt1316 on link0 and link1 & rt711 on link2*/ 694 .links = adl_sdw_rt711_link2_r 667 .links = adl_sdw_rt711_link2_rt1316_link01, 695 .drv_name = "sof_sdw", 668 .drv_name = "sof_sdw", 696 .sof_tplg_filename = "sof-adl- 669 .sof_tplg_filename = "sof-adl-rt711-l2-rt1316-l01.tplg", 697 }, 670 }, 698 { 671 { 699 .link_mask = 0xC, /* rt1316 on 672 .link_mask = 0xC, /* rt1316 on link2 & rt714 on link3 */ 700 .links = adl_sdw_rt1316_link2_ 673 .links = adl_sdw_rt1316_link2_rt714_link3, 701 .drv_name = "sof_sdw", 674 .drv_name = "sof_sdw", 702 .sof_tplg_filename = "sof-adl- 675 .sof_tplg_filename = "sof-adl-rt1316-l2-mono-rt714-l3.tplg", 703 }, 676 }, 704 { 677 { 705 .link_mask = 0x7, /* rt714 on 678 .link_mask = 0x7, /* rt714 on link0 & two rt1316s on link1 and link2 */ 706 .links = adl_sdw_rt1316_link12 679 .links = adl_sdw_rt1316_link12_rt714_link0, 707 .drv_name = "sof_sdw", 680 .drv_name = "sof_sdw", 708 .sof_tplg_filename = "sof-adl- 681 .sof_tplg_filename = "sof-adl-rt1316-l12-rt714-l0.tplg", 709 }, 682 }, 710 { 683 { 711 .link_mask = 0x3, /* rt1316 on 684 .link_mask = 0x3, /* rt1316 on link1 & rt714 on link0 */ 712 .links = adl_sdw_rt1316_link1_ 685 .links = adl_sdw_rt1316_link1_rt714_link0, 713 .drv_name = "sof_sdw", 686 .drv_name = "sof_sdw", 714 .sof_tplg_filename = "sof-adl- 687 .sof_tplg_filename = "sof-adl-rt1316-l1-mono-rt714-l0.tplg", 715 }, 688 }, 716 { 689 { 717 .link_mask = 0x5, /* 2 active 690 .link_mask = 0x5, /* 2 active links required */ 718 .links = adl_sdw_rt1316_link2_ 691 .links = adl_sdw_rt1316_link2_rt714_link0, 719 .drv_name = "sof_sdw", 692 .drv_name = "sof_sdw", 720 .sof_tplg_filename = "sof-adl- 693 .sof_tplg_filename = "sof-adl-rt1316-l2-mono-rt714-l0.tplg", 721 }, 694 }, 722 { 695 { 723 .link_mask = 0x9, /* 2 active 696 .link_mask = 0x9, /* 2 active links required */ 724 .links = adl_sdw_rt711_link0_r 697 .links = adl_sdw_rt711_link0_rt1316_link3, 725 .drv_name = "sof_sdw", 698 .drv_name = "sof_sdw", 726 .sof_tplg_filename = "sof-adl- 699 .sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l3.tplg", 727 }, 700 }, 728 { 701 { 729 .link_mask = 0x5, /* 2 active 702 .link_mask = 0x5, /* 2 active links required */ 730 .links = adl_sdw_rt711_link0_r 703 .links = adl_sdw_rt711_link0_rt1316_link2, 731 .drv_name = "sof_sdw", 704 .drv_name = "sof_sdw", 732 .sof_tplg_filename = "sof-adl- 705 .sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l2.tplg", 733 }, 706 }, 734 { 707 { 735 .link_mask = 0x1, /* link0 req 708 .link_mask = 0x1, /* link0 required */ 736 .links = adl_rvp, 709 .links = adl_rvp, 737 .drv_name = "sof_sdw", 710 .drv_name = "sof_sdw", 738 .sof_tplg_filename = "sof-adl- 711 .sof_tplg_filename = "sof-adl-rt711.tplg", 739 }, 712 }, 740 { 713 { 741 .link_mask = 0x1, /* link0 req 714 .link_mask = 0x1, /* link0 required */ 742 .links = adlps_rvp, 715 .links = adlps_rvp, 743 .drv_name = "sof_sdw", 716 .drv_name = "sof_sdw", 744 .sof_tplg_filename = "sof-adl- 717 .sof_tplg_filename = "sof-adl-rt711.tplg", 745 }, 718 }, 746 { 719 { 747 .link_mask = 0x5, /* rt5682 on 720 .link_mask = 0x5, /* rt5682 on link0 & 2xmax98373 on link 2 */ 748 .links = adl_chromebook_base, 721 .links = adl_chromebook_base, 749 .drv_name = "sof_sdw", 722 .drv_name = "sof_sdw", 750 .sof_tplg_filename = "sof-adl- 723 .sof_tplg_filename = "sof-adl-sdw-max98373-rt5682.tplg", 751 }, 724 }, 752 {}, 725 {}, 753 }; 726 }; 754 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_adl_sdw_m 727 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_adl_sdw_machines); 755 728
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.