|
8 | 8 |
|
9 | 9 | #include <sound/soc-acpi.h>
|
10 | 10 | #include <sound/soc-acpi-intel-match.h>
|
| 11 | +#include "soc-acpi-intel-sdca-quirks.h" |
11 | 12 | #include "soc-acpi-intel-sdw-mockup-match.h"
|
12 | 13 |
|
13 | 14 | struct snd_soc_acpi_mach snd_soc_acpi_intel_lnl_machines[] = {
|
@@ -90,6 +91,30 @@ static const struct snd_soc_acpi_endpoint rt722_endpoints[] = {
|
90 | 91 | },
|
91 | 92 | };
|
92 | 93 |
|
| 94 | +static const struct snd_soc_acpi_endpoint jack_amp_g1_dmic_endpoints_endpoints[] = { |
| 95 | + /* Jack Endpoint */ |
| 96 | + { |
| 97 | + .num = 0, |
| 98 | + .aggregated = 0, |
| 99 | + .group_position = 0, |
| 100 | + .group_id = 0, |
| 101 | + }, |
| 102 | + /* Amp Endpoint, work as spk_l_endpoint */ |
| 103 | + { |
| 104 | + .num = 1, |
| 105 | + .aggregated = 1, |
| 106 | + .group_position = 0, |
| 107 | + .group_id = 1, |
| 108 | + }, |
| 109 | + /* DMIC Endpoint */ |
| 110 | + { |
| 111 | + .num = 2, |
| 112 | + .aggregated = 0, |
| 113 | + .group_position = 0, |
| 114 | + .group_id = 0, |
| 115 | + }, |
| 116 | +}; |
| 117 | + |
93 | 118 | static const struct snd_soc_acpi_endpoint cs42l43_endpoints[] = {
|
94 | 119 | { /* Jack Playback Endpoint */
|
95 | 120 | .num = 0,
|
@@ -198,6 +223,15 @@ static const struct snd_soc_acpi_adr_device rt1712_3_single_adr[] = {
|
198 | 223 | }
|
199 | 224 | };
|
200 | 225 |
|
| 226 | +static const struct snd_soc_acpi_adr_device rt712_vb_2_group1_adr[] = { |
| 227 | + { |
| 228 | + .adr = 0x000230025D071201ull, |
| 229 | + .num_endpoints = ARRAY_SIZE(jack_amp_g1_dmic_endpoints_endpoints), |
| 230 | + .endpoints = jack_amp_g1_dmic_endpoints_endpoints, |
| 231 | + .name_prefix = "rt712" |
| 232 | + } |
| 233 | +}; |
| 234 | + |
201 | 235 | static const struct snd_soc_acpi_adr_device rt722_0_single_adr[] = {
|
202 | 236 | {
|
203 | 237 | .adr = 0x000030025d072201ull,
|
@@ -252,6 +286,15 @@ static const struct snd_soc_acpi_adr_device rt1318_2_group1_adr[] = {
|
252 | 286 | }
|
253 | 287 | };
|
254 | 288 |
|
| 289 | +static const struct snd_soc_acpi_adr_device rt1320_1_group1_adr[] = { |
| 290 | + { |
| 291 | + .adr = 0x000130025D132001ull, |
| 292 | + .num_endpoints = 1, |
| 293 | + .endpoints = &spk_r_endpoint, |
| 294 | + .name_prefix = "rt1320-1" |
| 295 | + } |
| 296 | +}; |
| 297 | + |
255 | 298 | static const struct snd_soc_acpi_adr_device rt713_0_adr[] = {
|
256 | 299 | {
|
257 | 300 | .adr = 0x000031025D071301ull,
|
@@ -410,6 +453,21 @@ static const struct snd_soc_acpi_link_adr lnl_sdw_rt713_l0_rt1318_l1[] = {
|
410 | 453 | {}
|
411 | 454 | };
|
412 | 455 |
|
| 456 | +static const struct snd_soc_acpi_link_adr lnl_sdw_rt712_vb_l2_rt1320_l1[] = { |
| 457 | + { |
| 458 | + .mask = BIT(2), |
| 459 | + .num_adr = ARRAY_SIZE(rt712_vb_2_group1_adr), |
| 460 | + .adr_d = rt712_vb_2_group1_adr, |
| 461 | + }, |
| 462 | + { |
| 463 | + .mask = BIT(1), |
| 464 | + .num_adr = ARRAY_SIZE(rt1320_1_group1_adr), |
| 465 | + .adr_d = rt1320_1_group1_adr, |
| 466 | + }, |
| 467 | + {} |
| 468 | +}; |
| 469 | + |
| 470 | +/* this table is used when there is no I2S codec present */ |
413 | 471 | /* this table is used when there is no I2S codec present */
|
414 | 472 | struct snd_soc_acpi_mach snd_soc_acpi_intel_lnl_sdw_machines[] = {
|
415 | 473 | /* mockup tests need to be first */
|
@@ -485,6 +543,13 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_lnl_sdw_machines[] = {
|
485 | 543 | .drv_name = "sof_sdw",
|
486 | 544 | .sof_tplg_filename = "sof-lnl-rt713-l0-rt1318-l1.tplg"
|
487 | 545 | },
|
| 546 | + { |
| 547 | + .link_mask = BIT(1) | BIT(2), |
| 548 | + .links = lnl_sdw_rt712_vb_l2_rt1320_l1, |
| 549 | + .drv_name = "sof_sdw", |
| 550 | + .machine_check = snd_soc_acpi_intel_sdca_is_device_rt712_vb, |
| 551 | + .sof_tplg_filename = "sof-lnl-rt712-l2-rt1320-l1.tplg" |
| 552 | + }, |
488 | 553 | {},
|
489 | 554 | };
|
490 | 555 | EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_lnl_sdw_machines);
|
0 commit comments