Skip to content

Commit a593604

Browse files
bardliaobroonie
authored andcommitted
ASoC: Intel: soc-acpi-intel-lnl-match: add rt712_vb + rt1320 support
Realtek Gen6 AIOC supports rt712_vb on SoundWire link 2 and rt1320 on SoundWire link 1. Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com> Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com> Link: https://patch.msgid.link/20241113064418.162592-1-yung-chuan.liao@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent ba88845 commit a593604

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

sound/soc/intel/common/soc-acpi-intel-lnl-match.c

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
#include <sound/soc-acpi.h>
1010
#include <sound/soc-acpi-intel-match.h>
11+
#include "soc-acpi-intel-sdca-quirks.h"
1112
#include "soc-acpi-intel-sdw-mockup-match.h"
1213

1314
struct snd_soc_acpi_mach snd_soc_acpi_intel_lnl_machines[] = {
@@ -90,6 +91,30 @@ static const struct snd_soc_acpi_endpoint rt722_endpoints[] = {
9091
},
9192
};
9293

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+
93118
static const struct snd_soc_acpi_endpoint cs42l43_endpoints[] = {
94119
{ /* Jack Playback Endpoint */
95120
.num = 0,
@@ -198,6 +223,15 @@ static const struct snd_soc_acpi_adr_device rt1712_3_single_adr[] = {
198223
}
199224
};
200225

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+
201235
static const struct snd_soc_acpi_adr_device rt722_0_single_adr[] = {
202236
{
203237
.adr = 0x000030025d072201ull,
@@ -252,6 +286,15 @@ static const struct snd_soc_acpi_adr_device rt1318_2_group1_adr[] = {
252286
}
253287
};
254288

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+
255298
static const struct snd_soc_acpi_adr_device rt713_0_adr[] = {
256299
{
257300
.adr = 0x000031025D071301ull,
@@ -410,6 +453,21 @@ static const struct snd_soc_acpi_link_adr lnl_sdw_rt713_l0_rt1318_l1[] = {
410453
{}
411454
};
412455

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 */
413471
/* this table is used when there is no I2S codec present */
414472
struct snd_soc_acpi_mach snd_soc_acpi_intel_lnl_sdw_machines[] = {
415473
/* mockup tests need to be first */
@@ -485,6 +543,13 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_lnl_sdw_machines[] = {
485543
.drv_name = "sof_sdw",
486544
.sof_tplg_filename = "sof-lnl-rt713-l0-rt1318-l1.tplg"
487545
},
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+
},
488553
{},
489554
};
490555
EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_lnl_sdw_machines);

0 commit comments

Comments
 (0)