1 // SPDX-License-Identifier: GPL-2.0-only 1 // SPDX-License-Identifier: GPL-2.0-only 2 /* 2 /* 3 * soc-apci-intel-rpl-match.c - tables and sup 3 * soc-apci-intel-rpl-match.c - tables and support for RPL ACPI enumeration. 4 * 4 * 5 * Copyright (c) 2022 Intel Corporation. 5 * Copyright (c) 2022 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_endpoint sing 11 static const struct snd_soc_acpi_endpoint single_endpoint = { 13 .num = 0, 12 .num = 0, 14 .aggregated = 0, 13 .aggregated = 0, 15 .group_position = 0, 14 .group_position = 0, 16 .group_id = 0, 15 .group_id = 0, 17 }; 16 }; 18 17 19 static const struct snd_soc_acpi_endpoint spk_ 18 static const struct snd_soc_acpi_endpoint spk_l_endpoint = { 20 .num = 0, 19 .num = 0, 21 .aggregated = 1, 20 .aggregated = 1, 22 .group_position = 0, 21 .group_position = 0, 23 .group_id = 1, 22 .group_id = 1, 24 }; 23 }; 25 24 26 static const struct snd_soc_acpi_endpoint spk_ 25 static const struct snd_soc_acpi_endpoint spk_r_endpoint = { 27 .num = 0, 26 .num = 0, 28 .aggregated = 1, 27 .aggregated = 1, 29 .group_position = 1, 28 .group_position = 1, 30 .group_id = 1, 29 .group_id = 1, 31 }; 30 }; 32 31 33 static const struct snd_soc_acpi_endpoint cs42 << 34 { /* Jack Playback Endpoint */ << 35 .num = 0, << 36 .aggregated = 0, << 37 .group_position = 0, << 38 .group_id = 0, << 39 }, << 40 { /* DMIC Capture Endpoint */ << 41 .num = 1, << 42 .aggregated = 0, << 43 .group_position = 0, << 44 .group_id = 0, << 45 }, << 46 { /* Jack Capture Endpoint */ << 47 .num = 2, << 48 .aggregated = 0, << 49 .group_position = 0, << 50 .group_id = 0, << 51 }, << 52 { /* Speaker Playback Endpoint */ << 53 .num = 3, << 54 .aggregated = 0, << 55 .group_position = 0, << 56 .group_id = 0, << 57 }, << 58 }; << 59 << 60 static const struct snd_soc_acpi_adr_device cs << 61 { << 62 .adr = 0x00003001FA424301ull, << 63 .num_endpoints = ARRAY_SIZE(cs << 64 .endpoints = cs42l43_endpoints << 65 .name_prefix = "cs42l43" << 66 } << 67 }; << 68 << 69 static const struct snd_soc_acpi_adr_device rt 32 static const struct snd_soc_acpi_adr_device rt711_0_adr[] = { 70 { 33 { 71 .adr = 0x000020025D071100ull, 34 .adr = 0x000020025D071100ull, 72 .num_endpoints = 1, 35 .num_endpoints = 1, 73 .endpoints = &single_endpoint, 36 .endpoints = &single_endpoint, 74 .name_prefix = "rt711" 37 .name_prefix = "rt711" 75 } 38 } 76 }; 39 }; 77 40 78 static const struct snd_soc_acpi_link_adr rpl_ 41 static const struct snd_soc_acpi_link_adr rpl_rvp[] = { 79 { 42 { 80 .mask = BIT(0), 43 .mask = BIT(0), 81 .num_adr = ARRAY_SIZE(rt711_0_ 44 .num_adr = ARRAY_SIZE(rt711_0_adr), 82 .adr_d = rt711_0_adr, 45 .adr_d = rt711_0_adr, 83 }, 46 }, 84 {} 47 {} 85 }; 48 }; 86 49 87 static const struct snd_soc_acpi_adr_device rt 50 static const struct snd_soc_acpi_adr_device rt711_sdca_0_adr[] = { 88 { 51 { 89 .adr = 0x000030025D071101ull, 52 .adr = 0x000030025D071101ull, 90 .num_endpoints = 1, 53 .num_endpoints = 1, 91 .endpoints = &single_endpoint, 54 .endpoints = &single_endpoint, 92 .name_prefix = "rt711" 55 .name_prefix = "rt711" 93 } 56 } 94 }; 57 }; 95 58 96 static const struct snd_soc_acpi_adr_device rt 59 static const struct snd_soc_acpi_adr_device rt711_sdca_2_adr[] = { 97 { 60 { 98 .adr = 0x000230025D071101ull, 61 .adr = 0x000230025D071101ull, 99 .num_endpoints = 1, 62 .num_endpoints = 1, 100 .endpoints = &single_endpoint, 63 .endpoints = &single_endpoint, 101 .name_prefix = "rt711" 64 .name_prefix = "rt711" 102 } 65 } 103 }; 66 }; 104 67 105 static const struct snd_soc_acpi_adr_device rt 68 static const struct snd_soc_acpi_adr_device rt1316_1_group1_adr[] = { 106 { 69 { 107 .adr = 0x000131025D131601ull, 70 .adr = 0x000131025D131601ull, /* unique ID is set for some reason */ 108 .num_endpoints = 1, 71 .num_endpoints = 1, 109 .endpoints = &spk_l_endpoint, 72 .endpoints = &spk_l_endpoint, 110 .name_prefix = "rt1316-1" 73 .name_prefix = "rt1316-1" 111 } 74 } 112 }; 75 }; 113 76 114 static const struct snd_soc_acpi_adr_device rt 77 static const struct snd_soc_acpi_adr_device rt1316_2_group1_adr[] = { 115 { 78 { 116 .adr = 0x000230025D131601ull, 79 .adr = 0x000230025D131601ull, 117 .num_endpoints = 1, 80 .num_endpoints = 1, 118 .endpoints = &spk_r_endpoint, 81 .endpoints = &spk_r_endpoint, 119 .name_prefix = "rt1316-2" 82 .name_prefix = "rt1316-2" 120 } 83 } 121 }; 84 }; 122 85 123 static const struct snd_soc_acpi_adr_device rt 86 static const struct snd_soc_acpi_adr_device rt1316_3_group1_adr[] = { 124 { 87 { 125 .adr = 0x000330025D131601ull, 88 .adr = 0x000330025D131601ull, 126 .num_endpoints = 1, 89 .num_endpoints = 1, 127 .endpoints = &spk_r_endpoint, 90 .endpoints = &spk_r_endpoint, 128 .name_prefix = "rt1316-2" 91 .name_prefix = "rt1316-2" 129 } 92 } 130 }; 93 }; 131 94 132 static const struct snd_soc_acpi_adr_device rt 95 static const struct snd_soc_acpi_adr_device rt1316_0_group2_adr[] = { 133 { 96 { 134 .adr = 0x000030025D131601ull, 97 .adr = 0x000030025D131601ull, 135 .num_endpoints = 1, 98 .num_endpoints = 1, 136 .endpoints = &spk_l_endpoint, 99 .endpoints = &spk_l_endpoint, 137 .name_prefix = "rt1316-1" 100 .name_prefix = "rt1316-1" 138 } 101 } 139 }; 102 }; 140 103 141 static const struct snd_soc_acpi_adr_device rt 104 static const struct snd_soc_acpi_adr_device rt1316_1_group2_adr[] = { 142 { 105 { 143 .adr = 0x000131025D131601ull, 106 .adr = 0x000131025D131601ull, 144 .num_endpoints = 1, 107 .num_endpoints = 1, 145 .endpoints = &spk_r_endpoint, 108 .endpoints = &spk_r_endpoint, 146 .name_prefix = "rt1316-2" 109 .name_prefix = "rt1316-2" 147 } 110 } 148 }; 111 }; 149 112 150 static const struct snd_soc_acpi_adr_device rt 113 static const struct snd_soc_acpi_adr_device rt1318_1_group1_adr[] = { 151 { 114 { 152 .adr = 0x000132025D131801ull, 115 .adr = 0x000132025D131801ull, 153 .num_endpoints = 1, 116 .num_endpoints = 1, 154 .endpoints = &spk_l_endpoint, 117 .endpoints = &spk_l_endpoint, 155 .name_prefix = "rt1318-1" 118 .name_prefix = "rt1318-1" 156 } 119 } 157 }; 120 }; 158 121 159 static const struct snd_soc_acpi_adr_device rt 122 static const struct snd_soc_acpi_adr_device rt1318_2_group1_adr[] = { 160 { 123 { 161 .adr = 0x000230025D131801ull, 124 .adr = 0x000230025D131801ull, 162 .num_endpoints = 1, 125 .num_endpoints = 1, 163 .endpoints = &spk_r_endpoint, 126 .endpoints = &spk_r_endpoint, 164 .name_prefix = "rt1318-2" 127 .name_prefix = "rt1318-2" 165 } 128 } 166 }; 129 }; 167 130 168 static const struct snd_soc_acpi_adr_device rt 131 static const struct snd_soc_acpi_adr_device rt714_0_adr[] = { 169 { 132 { 170 .adr = 0x000030025D071401ull, 133 .adr = 0x000030025D071401ull, 171 .num_endpoints = 1, 134 .num_endpoints = 1, 172 .endpoints = &single_endpoint, 135 .endpoints = &single_endpoint, 173 .name_prefix = "rt714" 136 .name_prefix = "rt714" 174 } 137 } 175 }; 138 }; 176 139 177 static const struct snd_soc_acpi_adr_device rt 140 static const struct snd_soc_acpi_adr_device rt714_2_adr[] = { 178 { 141 { 179 .adr = 0x000230025D071401ull, 142 .adr = 0x000230025D071401ull, 180 .num_endpoints = 1, 143 .num_endpoints = 1, 181 .endpoints = &single_endpoint, 144 .endpoints = &single_endpoint, 182 .name_prefix = "rt714" 145 .name_prefix = "rt714" 183 } 146 } 184 }; 147 }; 185 148 186 static const struct snd_soc_acpi_adr_device rt 149 static const struct snd_soc_acpi_adr_device rt714_3_adr[] = { 187 { 150 { 188 .adr = 0x000330025D071401ull, 151 .adr = 0x000330025D071401ull, 189 .num_endpoints = 1, 152 .num_endpoints = 1, 190 .endpoints = &single_endpoint, 153 .endpoints = &single_endpoint, 191 .name_prefix = "rt714" 154 .name_prefix = "rt714" 192 } 155 } 193 }; 156 }; 194 157 195 static const struct snd_soc_acpi_link_adr rpl_ << 196 { << 197 .mask = BIT(0), << 198 .num_adr = ARRAY_SIZE(cs42l43_ << 199 .adr_d = cs42l43_0_adr, << 200 }, << 201 {} << 202 }; << 203 << 204 static const struct snd_soc_acpi_link_adr rpl_ 158 static const struct snd_soc_acpi_link_adr rpl_sdca_3_in_1[] = { 205 { 159 { 206 .mask = BIT(0), 160 .mask = BIT(0), 207 .num_adr = ARRAY_SIZE(rt711_sd 161 .num_adr = ARRAY_SIZE(rt711_sdca_0_adr), 208 .adr_d = rt711_sdca_0_adr, 162 .adr_d = rt711_sdca_0_adr, 209 }, 163 }, 210 { 164 { 211 .mask = BIT(1), 165 .mask = BIT(1), 212 .num_adr = ARRAY_SIZE(rt1316_1 166 .num_adr = ARRAY_SIZE(rt1316_1_group1_adr), 213 .adr_d = rt1316_1_group1_adr, 167 .adr_d = rt1316_1_group1_adr, 214 }, 168 }, 215 { 169 { 216 .mask = BIT(2), 170 .mask = BIT(2), 217 .num_adr = ARRAY_SIZE(rt714_2_ 171 .num_adr = ARRAY_SIZE(rt714_2_adr), 218 .adr_d = rt714_2_adr, 172 .adr_d = rt714_2_adr, 219 }, 173 }, 220 { 174 { 221 .mask = BIT(3), 175 .mask = BIT(3), 222 .num_adr = ARRAY_SIZE(rt1316_3 176 .num_adr = ARRAY_SIZE(rt1316_3_group1_adr), 223 .adr_d = rt1316_3_group1_adr, 177 .adr_d = rt1316_3_group1_adr, 224 }, 178 }, 225 {} 179 {} 226 }; 180 }; 227 181 228 static const struct snd_soc_acpi_link_adr rpl_ << 229 { << 230 .mask = BIT(0), << 231 .num_adr = ARRAY_SIZE(rt711_sd << 232 .adr_d = rt711_sdca_0_adr, << 233 }, << 234 { << 235 .mask = BIT(1), << 236 .num_adr = ARRAY_SIZE(rt1316_1 << 237 .adr_d = rt1316_1_group1_adr, << 238 }, << 239 { << 240 .mask = BIT(2), << 241 .num_adr = ARRAY_SIZE(rt1316_2 << 242 .adr_d = rt1316_2_group1_adr, << 243 }, << 244 { << 245 .mask = BIT(3), << 246 .num_adr = ARRAY_SIZE(rt714_3_ << 247 .adr_d = rt714_3_adr, << 248 }, << 249 {} << 250 }; << 251 << 252 static const struct snd_soc_acpi_link_adr rpl_ 182 static const struct snd_soc_acpi_link_adr rpl_sdw_rt711_link2_rt1316_link01_rt714_link3[] = { 253 { 183 { 254 .mask = BIT(2), 184 .mask = BIT(2), 255 .num_adr = ARRAY_SIZE(rt711_sd 185 .num_adr = ARRAY_SIZE(rt711_sdca_2_adr), 256 .adr_d = rt711_sdca_2_adr, 186 .adr_d = rt711_sdca_2_adr, 257 }, 187 }, 258 { 188 { 259 .mask = BIT(0), 189 .mask = BIT(0), 260 .num_adr = ARRAY_SIZE(rt1316_0 190 .num_adr = ARRAY_SIZE(rt1316_0_group2_adr), 261 .adr_d = rt1316_0_group2_adr, 191 .adr_d = rt1316_0_group2_adr, 262 }, 192 }, 263 { 193 { 264 .mask = BIT(1), 194 .mask = BIT(1), 265 .num_adr = ARRAY_SIZE(rt1316_1 195 .num_adr = ARRAY_SIZE(rt1316_1_group2_adr), 266 .adr_d = rt1316_1_group2_adr, 196 .adr_d = rt1316_1_group2_adr, 267 }, 197 }, 268 { 198 { 269 .mask = BIT(3), 199 .mask = BIT(3), 270 .num_adr = ARRAY_SIZE(rt714_3_ 200 .num_adr = ARRAY_SIZE(rt714_3_adr), 271 .adr_d = rt714_3_adr, 201 .adr_d = rt714_3_adr, 272 }, 202 }, 273 {} 203 {} 274 }; 204 }; 275 205 276 static const struct snd_soc_acpi_link_adr rpl_ 206 static const struct snd_soc_acpi_link_adr rpl_sdw_rt711_link2_rt1316_link01[] = { 277 { 207 { 278 .mask = BIT(2), 208 .mask = BIT(2), 279 .num_adr = ARRAY_SIZE(rt711_sd 209 .num_adr = ARRAY_SIZE(rt711_sdca_2_adr), 280 .adr_d = rt711_sdca_2_adr, 210 .adr_d = rt711_sdca_2_adr, 281 }, 211 }, 282 { 212 { 283 .mask = BIT(0), 213 .mask = BIT(0), 284 .num_adr = ARRAY_SIZE(rt1316_0 214 .num_adr = ARRAY_SIZE(rt1316_0_group2_adr), 285 .adr_d = rt1316_0_group2_adr, 215 .adr_d = rt1316_0_group2_adr, 286 }, 216 }, 287 { 217 { 288 .mask = BIT(1), 218 .mask = BIT(1), 289 .num_adr = ARRAY_SIZE(rt1316_1 219 .num_adr = ARRAY_SIZE(rt1316_1_group2_adr), 290 .adr_d = rt1316_1_group2_adr, 220 .adr_d = rt1316_1_group2_adr, 291 }, 221 }, 292 {} 222 {} 293 }; 223 }; 294 224 295 static const struct snd_soc_acpi_link_adr rpl_ << 296 { << 297 .mask = BIT(0), << 298 .num_adr = ARRAY_SIZE(rt711_sd << 299 .adr_d = rt711_sdca_0_adr, << 300 }, << 301 { << 302 .mask = BIT(1), << 303 .num_adr = ARRAY_SIZE(rt1316_1 << 304 .adr_d = rt1316_1_group1_adr, << 305 }, << 306 { << 307 .mask = BIT(2), << 308 .num_adr = ARRAY_SIZE(rt1316_2 << 309 .adr_d = rt1316_2_group1_adr, << 310 }, << 311 {} << 312 }; << 313 << 314 static const struct snd_soc_acpi_link_adr rpl_ 225 static const struct snd_soc_acpi_link_adr rpl_sdw_rt711_link0_rt1318_link12_rt714_link3[] = { 315 { 226 { 316 .mask = BIT(0), 227 .mask = BIT(0), 317 .num_adr = ARRAY_SIZE(rt711_sd 228 .num_adr = ARRAY_SIZE(rt711_sdca_0_adr), 318 .adr_d = rt711_sdca_0_adr, 229 .adr_d = rt711_sdca_0_adr, 319 }, 230 }, 320 { 231 { 321 .mask = BIT(1), 232 .mask = BIT(1), 322 .num_adr = ARRAY_SIZE(rt1318_1 233 .num_adr = ARRAY_SIZE(rt1318_1_group1_adr), 323 .adr_d = rt1318_1_group1_adr, 234 .adr_d = rt1318_1_group1_adr, 324 }, 235 }, 325 { 236 { 326 .mask = BIT(2), 237 .mask = BIT(2), 327 .num_adr = ARRAY_SIZE(rt1318_2 238 .num_adr = ARRAY_SIZE(rt1318_2_group1_adr), 328 .adr_d = rt1318_2_group1_adr, 239 .adr_d = rt1318_2_group1_adr, 329 }, 240 }, 330 { 241 { 331 .mask = BIT(3), 242 .mask = BIT(3), 332 .num_adr = ARRAY_SIZE(rt714_3_ 243 .num_adr = ARRAY_SIZE(rt714_3_adr), 333 .adr_d = rt714_3_adr, 244 .adr_d = rt714_3_adr, 334 }, 245 }, 335 {} 246 {} 336 }; 247 }; 337 248 338 static const struct snd_soc_acpi_link_adr rpl_ 249 static const struct snd_soc_acpi_link_adr rpl_sdw_rt711_link0_rt1318_link12[] = { 339 { 250 { 340 .mask = BIT(0), 251 .mask = BIT(0), 341 .num_adr = ARRAY_SIZE(rt711_sd 252 .num_adr = ARRAY_SIZE(rt711_sdca_0_adr), 342 .adr_d = rt711_sdca_0_adr, 253 .adr_d = rt711_sdca_0_adr, 343 }, 254 }, 344 { 255 { 345 .mask = BIT(1), 256 .mask = BIT(1), 346 .num_adr = ARRAY_SIZE(rt1318_1 257 .num_adr = ARRAY_SIZE(rt1318_1_group1_adr), 347 .adr_d = rt1318_1_group1_adr, 258 .adr_d = rt1318_1_group1_adr, 348 }, 259 }, 349 { 260 { 350 .mask = BIT(2), 261 .mask = BIT(2), 351 .num_adr = ARRAY_SIZE(rt1318_2 262 .num_adr = ARRAY_SIZE(rt1318_2_group1_adr), 352 .adr_d = rt1318_2_group1_adr, 263 .adr_d = rt1318_2_group1_adr, 353 }, 264 }, 354 {} 265 {} 355 }; 266 }; 356 267 357 static const struct snd_soc_acpi_link_adr rpl_ 268 static const struct snd_soc_acpi_link_adr rpl_sdw_rt1316_link12_rt714_link0[] = { 358 { 269 { 359 .mask = BIT(1), 270 .mask = BIT(1), 360 .num_adr = ARRAY_SIZE(rt1316_1 271 .num_adr = ARRAY_SIZE(rt1316_1_group1_adr), 361 .adr_d = rt1316_1_group1_adr, 272 .adr_d = rt1316_1_group1_adr, 362 }, 273 }, 363 { 274 { 364 .mask = BIT(2), 275 .mask = BIT(2), 365 .num_adr = ARRAY_SIZE(rt1316_2 276 .num_adr = ARRAY_SIZE(rt1316_2_group1_adr), 366 .adr_d = rt1316_2_group1_adr, 277 .adr_d = rt1316_2_group1_adr, 367 }, 278 }, 368 { 279 { 369 .mask = BIT(0), 280 .mask = BIT(0), 370 .num_adr = ARRAY_SIZE(rt714_0_ 281 .num_adr = ARRAY_SIZE(rt714_0_adr), 371 .adr_d = rt714_0_adr, 282 .adr_d = rt714_0_adr, 372 }, 283 }, 373 {} 284 {} 374 }; 285 }; 375 286 376 static const struct snd_soc_acpi_link_adr rpl_ << 377 { << 378 .mask = BIT(0), << 379 .num_adr = ARRAY_SIZE(rt711_sd << 380 .adr_d = rt711_sdca_0_adr, << 381 }, << 382 {} << 383 }; << 384 << 385 static const struct snd_soc_acpi_link_adr rplp 287 static const struct snd_soc_acpi_link_adr rplp_crb[] = { 386 { 288 { 387 .mask = BIT(2), 289 .mask = BIT(2), 388 .num_adr = ARRAY_SIZE(rt711_sd 290 .num_adr = ARRAY_SIZE(rt711_sdca_2_adr), 389 .adr_d = rt711_sdca_2_adr, 291 .adr_d = rt711_sdca_2_adr, 390 }, 292 }, 391 {} 293 {} 392 }; 294 }; 393 295 394 static const struct snd_soc_acpi_codecs rpl_rt 296 static const struct snd_soc_acpi_codecs rpl_rt5682_hp = { 395 .num_codecs = 2, 297 .num_codecs = 2, 396 .codecs = {RT5682_ACPI_HID, RT5682S_AC !! 298 .codecs = {"10EC5682", "RTL5682"}, 397 }; 299 }; 398 300 399 static const struct snd_soc_acpi_codecs rpl_es !! 301 static const struct snd_soc_acpi_codecs rpl_max98360a_amp = { 400 .num_codecs = 3, << 401 .codecs = { "ESSX8316", "ESSX8326", "E << 402 }; << 403 << 404 static const struct snd_soc_acpi_codecs rpl_ma << 405 .num_codecs = 1, 302 .num_codecs = 1, 406 .codecs = {"MX98357A"} !! 303 .codecs = {"MX98360A"}, 407 }; << 408 << 409 static const struct snd_soc_acpi_codecs rpl_lt << 410 .num_codecs = 1, << 411 .codecs = {"INTC10B0"} << 412 }; 304 }; 413 305 414 struct snd_soc_acpi_mach snd_soc_acpi_intel_rp 306 struct snd_soc_acpi_mach snd_soc_acpi_intel_rpl_machines[] = { 415 { 307 { 416 .comp_ids = &rpl_rt5682_hp, 308 .comp_ids = &rpl_rt5682_hp, 417 .drv_name = "rpl_mx98357_rt568 !! 309 .drv_name = "rpl_mx98360_rt5682", 418 .machine_quirk = snd_soc_acpi_ << 419 .quirk_data = &rpl_max98357a_a << 420 .sof_tplg_filename = "sof-rpl- << 421 }, << 422 { << 423 .comp_ids = &rpl_rt5682_hp, << 424 .drv_name = "rpl_rt5682_c1_h02 << 425 .machine_quirk = snd_soc_acpi_ << 426 .quirk_data = &rpl_lt6911_hdmi << 427 .sof_tplg_filename = "sof-rpl- << 428 }, << 429 { << 430 .comp_ids = &rpl_essx_83x6, << 431 .drv_name = "rpl_es83x6_c1_h02 << 432 .machine_quirk = snd_soc_acpi_ 310 .machine_quirk = snd_soc_acpi_codec_list, 433 .quirk_data = &rpl_lt6911_hdmi !! 311 .quirk_data = &rpl_max98360a_amp, 434 .sof_tplg_filename = "sof-rpl- !! 312 .sof_tplg_filename = "sof-rpl-max98360a-rt5682.tplg", 435 }, << 436 { << 437 .comp_ids = &rpl_essx_83x6, << 438 .drv_name = "sof-essx8336", << 439 .sof_tplg_filename = "sof-rpl- << 440 .tplg_quirk_mask = SND_SOC_ACP << 441 SND_SO << 442 SND_SO << 443 }, << 444 /* place boards for each headphone cod << 445 * tplg name and machine driver will d << 446 */ << 447 { << 448 .id = CS42L42_ACPI_HID, << 449 .drv_name = "rpl_cs42l42_def", << 450 .sof_tplg_filename = "sof-rpl" << 451 .tplg_quirk_mask = SND_SOC_ACP << 452 SND_SO << 453 }, << 454 { << 455 .id = DA7219_ACPI_HID, << 456 .drv_name = "rpl_da7219_def", << 457 .sof_tplg_filename = "sof-rpl" << 458 .tplg_quirk_mask = SND_SOC_ACP << 459 SND_SO << 460 }, << 461 { << 462 .id = NAU8825_ACPI_HID, << 463 .drv_name = "rpl_nau8825_def", << 464 .sof_tplg_filename = "sof-rpl" << 465 .tplg_quirk_mask = SND_SOC_ACP << 466 SND_SO << 467 }, << 468 { << 469 .id = RT5650_ACPI_HID, << 470 .drv_name = "rpl_rt5682_def", << 471 .sof_tplg_filename = "sof-rpl" << 472 .tplg_quirk_mask = SND_SOC_ACP << 473 SND_SO << 474 }, << 475 { << 476 .comp_ids = &rpl_rt5682_hp, << 477 .drv_name = "rpl_rt5682_def", << 478 .sof_tplg_filename = "sof-rpl" << 479 .tplg_quirk_mask = SND_SOC_ACP << 480 SND_SO << 481 }, << 482 /* place amp-only boards in the end of << 483 { << 484 .id = "INTC10B0", << 485 .drv_name = "rpl_lt6911_hdmi_s << 486 .sof_tplg_filename = "sof-rpl- << 487 }, 313 }, 488 {}, 314 {}, 489 }; 315 }; 490 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_rpl_machi 316 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_rpl_machines); 491 317 492 /* this table is used when there is no I2S cod 318 /* this table is used when there is no I2S codec present */ 493 struct snd_soc_acpi_mach snd_soc_acpi_intel_rp 319 struct snd_soc_acpi_mach snd_soc_acpi_intel_rpl_sdw_machines[] = { 494 { 320 { 495 .link_mask = BIT(0), << 496 .links = rpl_cs42l43_l0, << 497 .drv_name = "sof_sdw", << 498 .sof_tplg_filename = "sof-rpl- << 499 }, << 500 { << 501 .link_mask = 0xF, /* 4 active 321 .link_mask = 0xF, /* 4 active links required */ 502 .links = rpl_sdca_3_in_1, 322 .links = rpl_sdca_3_in_1, 503 .drv_name = "sof_sdw", 323 .drv_name = "sof_sdw", 504 .sof_tplg_filename = "sof-rpl- 324 .sof_tplg_filename = "sof-rpl-rt711-l0-rt1316-l13-rt714-l2.tplg", 505 }, 325 }, 506 { 326 { 507 .link_mask = 0xF, /* 4 active 327 .link_mask = 0xF, /* 4 active links required */ 508 .links = rpl_sdw_rt711_link2_r 328 .links = rpl_sdw_rt711_link2_rt1316_link01_rt714_link3, 509 .drv_name = "sof_sdw", 329 .drv_name = "sof_sdw", 510 .sof_tplg_filename = "sof-rpl- 330 .sof_tplg_filename = "sof-rpl-rt711-l2-rt1316-l01-rt714-l3.tplg", 511 }, 331 }, 512 { 332 { 513 .link_mask = 0xF, /* 4 active 333 .link_mask = 0xF, /* 4 active links required */ 514 .links = rpl_sdw_rt711_link0_r << 515 .drv_name = "sof_sdw", << 516 .sof_tplg_filename = "sof-rpl- << 517 }, << 518 { << 519 .link_mask = 0xF, /* 4 active << 520 .links = rpl_sdw_rt711_link0_r 334 .links = rpl_sdw_rt711_link0_rt1318_link12_rt714_link3, 521 .drv_name = "sof_sdw", 335 .drv_name = "sof_sdw", 522 .sof_tplg_filename = "sof-rpl- 336 .sof_tplg_filename = "sof-rpl-rt711-l0-rt1318-l12-rt714-l3.tplg", 523 }, 337 }, 524 { 338 { 525 .link_mask = 0x7, /* rt711 on << 526 .links = rpl_sdw_rt711_link0_r << 527 .drv_name = "sof_sdw", << 528 .sof_tplg_filename = "sof-rpl- << 529 }, << 530 { << 531 .link_mask = 0x7, /* rt711 on 339 .link_mask = 0x7, /* rt711 on link0 & two rt1318s on link1 and link2 */ 532 .links = rpl_sdw_rt711_link0_r 340 .links = rpl_sdw_rt711_link0_rt1318_link12, 533 .drv_name = "sof_sdw", 341 .drv_name = "sof_sdw", 534 .sof_tplg_filename = "sof-rpl- 342 .sof_tplg_filename = "sof-rpl-rt711-l0-rt1318-l12.tplg", 535 }, 343 }, 536 { 344 { 537 .link_mask = 0x7, /* rt714 on 345 .link_mask = 0x7, /* rt714 on link0 & two rt1316s on link1 and link2 */ 538 .links = rpl_sdw_rt1316_link12 346 .links = rpl_sdw_rt1316_link12_rt714_link0, 539 .drv_name = "sof_sdw", 347 .drv_name = "sof_sdw", 540 .sof_tplg_filename = "sof-rpl- 348 .sof_tplg_filename = "sof-rpl-rt1316-l12-rt714-l0.tplg", 541 }, 349 }, 542 { 350 { 543 .link_mask = 0x7, /* rt711 on 351 .link_mask = 0x7, /* rt711 on link2 & two rt1316s on link0 and link1 */ 544 .links = rpl_sdw_rt711_link2_r 352 .links = rpl_sdw_rt711_link2_rt1316_link01, 545 .drv_name = "sof_sdw", 353 .drv_name = "sof_sdw", 546 .sof_tplg_filename = "sof-rpl- 354 .sof_tplg_filename = "sof-rpl-rt711-l2-rt1316-l01.tplg", 547 }, 355 }, 548 { 356 { 549 .link_mask = 0x1, /* link0 req 357 .link_mask = 0x1, /* link0 required */ 550 .links = rpl_rvp, 358 .links = rpl_rvp, 551 .drv_name = "sof_sdw", << 552 .sof_tplg_filename = "sof-rpl- << 553 }, << 554 { << 555 .link_mask = 0x1, /* link0 req << 556 .links = rpl_sdca_rvp, << 557 .drv_name = "sof_sdw", 359 .drv_name = "sof_sdw", 558 .sof_tplg_filename = "sof-rpl- 360 .sof_tplg_filename = "sof-rpl-rt711-l0.tplg", 559 }, 361 }, 560 { 362 { 561 .link_mask = 0x4, /* link2 req 363 .link_mask = 0x4, /* link2 required */ 562 .links = rplp_crb, 364 .links = rplp_crb, 563 .drv_name = "sof_sdw", 365 .drv_name = "sof_sdw", 564 .sof_tplg_filename = "sof-rpl- 366 .sof_tplg_filename = "sof-rpl-rt711-l2.tplg", 565 }, 367 }, 566 {}, 368 {}, 567 }; 369 }; 568 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_rpl_sdw_m 370 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_rpl_sdw_machines); 569 371
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.