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