]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
ASoC: Intel: soc-acpi-intel-lnl-match: add rt712_vb + rt1320 support
authorBard Liao <yung-chuan.liao@linux.intel.com>
Wed, 13 Nov 2024 06:44:17 +0000 (14:44 +0800)
committerMark Brown <broonie@kernel.org>
Thu, 14 Nov 2024 11:42:43 +0000 (11:42 +0000)
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>
sound/soc/intel/common/soc-acpi-intel-lnl-match.c

index 094ed4b27cb06834004b4855891a6e3f337820ea..98a9c36d7a4cd03c3e26f1c4c5840df800a7af1e 100644 (file)
@@ -8,6 +8,7 @@
 
 #include <sound/soc-acpi.h>
 #include <sound/soc-acpi-intel-match.h>
+#include "soc-acpi-intel-sdca-quirks.h"
 #include "soc-acpi-intel-sdw-mockup-match.h"
 
 struct snd_soc_acpi_mach snd_soc_acpi_intel_lnl_machines[] = {
@@ -90,6 +91,30 @@ static const struct snd_soc_acpi_endpoint rt722_endpoints[] = {
        },
 };
 
+static const struct snd_soc_acpi_endpoint jack_amp_g1_dmic_endpoints_endpoints[] = {
+       /* Jack Endpoint */
+       {
+               .num = 0,
+               .aggregated = 0,
+               .group_position = 0,
+               .group_id = 0,
+       },
+       /* Amp Endpoint, work as spk_l_endpoint */
+       {
+               .num = 1,
+               .aggregated = 1,
+               .group_position = 0,
+               .group_id = 1,
+       },
+       /* DMIC Endpoint */
+       {
+               .num = 2,
+               .aggregated = 0,
+               .group_position = 0,
+               .group_id = 0,
+       },
+};
+
 static const struct snd_soc_acpi_endpoint cs42l43_endpoints[] = {
        { /* Jack Playback Endpoint */
                .num = 0,
@@ -198,6 +223,15 @@ static const struct snd_soc_acpi_adr_device rt1712_3_single_adr[] = {
        }
 };
 
+static const struct snd_soc_acpi_adr_device rt712_vb_2_group1_adr[] = {
+       {
+               .adr = 0x000230025D071201ull,
+               .num_endpoints = ARRAY_SIZE(jack_amp_g1_dmic_endpoints_endpoints),
+               .endpoints = jack_amp_g1_dmic_endpoints_endpoints,
+               .name_prefix = "rt712"
+       }
+};
+
 static const struct snd_soc_acpi_adr_device rt722_0_single_adr[] = {
        {
                .adr = 0x000030025d072201ull,
@@ -252,6 +286,15 @@ static const struct snd_soc_acpi_adr_device rt1318_2_group1_adr[] = {
        }
 };
 
+static const struct snd_soc_acpi_adr_device rt1320_1_group1_adr[] = {
+       {
+               .adr = 0x000130025D132001ull,
+               .num_endpoints = 1,
+               .endpoints = &spk_r_endpoint,
+               .name_prefix = "rt1320-1"
+       }
+};
+
 static const struct snd_soc_acpi_adr_device rt713_0_adr[] = {
        {
                .adr = 0x000031025D071301ull,
@@ -410,6 +453,21 @@ static const struct snd_soc_acpi_link_adr lnl_sdw_rt713_l0_rt1318_l1[] = {
        {}
 };
 
+static const struct snd_soc_acpi_link_adr lnl_sdw_rt712_vb_l2_rt1320_l1[] = {
+       {
+               .mask = BIT(2),
+               .num_adr = ARRAY_SIZE(rt712_vb_2_group1_adr),
+               .adr_d = rt712_vb_2_group1_adr,
+       },
+       {
+               .mask = BIT(1),
+               .num_adr = ARRAY_SIZE(rt1320_1_group1_adr),
+               .adr_d = rt1320_1_group1_adr,
+       },
+       {}
+};
+
+/* this table is used when there is no I2S codec present */
 /* this table is used when there is no I2S codec present */
 struct snd_soc_acpi_mach snd_soc_acpi_intel_lnl_sdw_machines[] = {
        /* mockup tests need to be first */
@@ -485,6 +543,13 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_lnl_sdw_machines[] = {
                .drv_name = "sof_sdw",
                .sof_tplg_filename = "sof-lnl-rt713-l0-rt1318-l1.tplg"
        },
+       {
+               .link_mask = BIT(1) | BIT(2),
+               .links = lnl_sdw_rt712_vb_l2_rt1320_l1,
+               .drv_name = "sof_sdw",
+               .machine_check = snd_soc_acpi_intel_sdca_is_device_rt712_vb,
+               .sof_tplg_filename = "sof-lnl-rt712-l2-rt1320-l1.tplg"
+       },
        {},
 };
 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_lnl_sdw_machines);