]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: Intel: sof_sdw: add rt1320 amp support
authorBard Liao <yung-chuan.liao@linux.intel.com>
Tue, 27 Aug 2024 12:32:00 +0000 (20:32 +0800)
committerMark Brown <broonie@kernel.org>
Wed, 28 Aug 2024 12:01:52 +0000 (13:01 +0100)
Add Realtek rt1320 amp support.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://patch.msgid.link/20240827123215.258859-3-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/Kconfig
sound/soc/sdw_utils/soc_sdw_rt_amp.c
sound/soc/sdw_utils/soc_sdw_utils.c

index cb952183f5edf0230d1e1e054b298592d2f6b143..1141fe1263cec00c7f7d268a7a51557dfc25ca9e 100644 (file)
@@ -524,6 +524,7 @@ config SND_SOC_INTEL_SOUNDWIRE_SOF_MACH
        select SND_SOC_RT1308
        select SND_SOC_RT1316_SDW
        select SND_SOC_RT1318_SDW
+       select SND_SOC_RT1320_SDW
        select SND_SOC_RT5682_SDW
        select SND_SOC_CS42L42_SDW
        select SND_SOC_CS42L43
index 42be01405ab4e3822b7d40916abb4976d9001aab..6951dfb565263229a6019af81ea14b9f6bee253d 100644 (file)
@@ -160,6 +160,13 @@ static const struct snd_soc_dapm_route rt1318_map[] = {
        { "Speaker", NULL, "rt1318-2 SPOR" },
 };
 
+static const struct snd_soc_dapm_route rt1320_map[] = {
+       { "Speaker", NULL, "rt1320-1 SPOL" },
+       { "Speaker", NULL, "rt1320-1 SPOR" },
+       { "Speaker", NULL, "rt1320-2 SPOL" },
+       { "Speaker", NULL, "rt1320-2 SPOR" },
+};
+
 static const struct snd_soc_dapm_route *get_codec_name_and_route(struct snd_soc_dai *dai,
                                                                 char *codec_name)
 {
@@ -171,8 +178,10 @@ static const struct snd_soc_dapm_route *get_codec_name_and_route(struct snd_soc_
                return rt1308_map;
        else if (strcmp(codec_name, "rt1316") == 0)
                return rt1316_map;
-       else
+       else if (strcmp(codec_name, "rt1318") == 0)
                return rt1318_map;
+       else
+               return rt1320_map;
 }
 
 int asoc_sdw_rt_amp_spk_rtd_init(struct snd_soc_pcm_runtime *rtd, struct snd_soc_dai *dai)
index e8d0f199155d09deb2ad4d73fc39dee7bcd5baa2..d59ccb56642c79d9dc87eea4916b878da1f664f4 100644 (file)
@@ -254,6 +254,25 @@ struct asoc_sdw_codec_info codec_info_list[] = {
                },
                .dai_num = 1,
        },
+       {
+               .part_id = 0x1320,
+               .dais = {
+                       {
+                               .direction = {true, false},
+                               .dai_name = "rt1320-aif1",
+                               .dai_type = SOC_SDW_DAI_TYPE_AMP,
+                               .dailink = {SOC_SDW_AMP_OUT_DAI_ID, SOC_SDW_UNUSED_DAI_ID},
+                               .init = asoc_sdw_rt_amp_init,
+                               .exit = asoc_sdw_rt_amp_exit,
+                               .rtd_init = asoc_sdw_rt_amp_spk_rtd_init,
+                               .controls = generic_spk_controls,
+                               .num_controls = ARRAY_SIZE(generic_spk_controls),
+                               .widgets = generic_spk_widgets,
+                               .num_widgets = ARRAY_SIZE(generic_spk_widgets),
+                       },
+               },
+               .dai_num = 1,
+       },
        {
                .part_id = 0x714,
                .version_id = 3,