ASoC: Intel: sof_sdw: Add support for MAX98363 codec
authorUday M Bhat <uday.m.bhat@intel.com>
Fri, 2 Jun 2023 20:22:23 +0000 (15:22 -0500)
committerMark Brown <broonie@kernel.org>
Mon, 5 Jun 2023 13:00:31 +0000 (14:00 +0100)
Add support for MAX98363 soundwire codec. Update build
configuration to include this codec.

Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Yong Zhi <yong.zhi@intel.com>
Signed-off-by: Uday M Bhat <uday.m.bhat@intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20230602202225.249209-27-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/Kconfig
sound/soc/intel/boards/sof_sdw.c
sound/soc/intel/boards/sof_sdw_maxim.c

index 799a51f23b844fa4df36720b5d1ae8720198ca84..f472f603ab750e39dbf532e9449ae4f337fcf3bd 100644 (file)
@@ -662,6 +662,7 @@ config SND_SOC_INTEL_SOUNDWIRE_SOF_MACH
        depends on MFD_INTEL_LPSS || COMPILE_TEST
        depends on SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES || COMPILE_TEST
        depends on SOUNDWIRE
+       select SND_SOC_MAX98363
        select SND_SOC_MAX98373_I2C
        select SND_SOC_MAX98373_SDW
        select SND_SOC_RT700_SDW
index 04d050eac00d7ae2c4b82a268bcca75a09063826..6caf598c7aebdede0d348b36f273a8752bfb297a 100644 (file)
@@ -810,6 +810,19 @@ static struct sof_sdw_codec_info codec_info_list[] = {
                },
                .dai_num = 1,
        },
+       {
+               .part_id = 0x8363,
+               .dais = {
+                       {
+                               .direction = {true, false},
+                               .dai_name = "max98363-aif1",
+                               .dai_type = SOF_SDW_DAI_TYPE_AMP,
+                               .dailink = {SDW_AMP_OUT_DAI_ID, SDW_UNUSED_DAI_ID},
+                               .init = sof_sdw_maxim_init,
+                       },
+               },
+               .dai_num = 1,
+       },
        {
                .part_id = 0x5682,
                .dais = {
index 3cc47ae98c5e9dc89f44f316d79f0667dd2916b5..8d40a83ad98e803d6923d95989eb671f568fc538 100644 (file)
@@ -14,6 +14,7 @@
 #include "sof_maxim_common.h"
 
 static int maxim_part_id;
+#define SOF_SDW_PART_ID_MAX98363 0x8363
 #define SOF_SDW_PART_ID_MAX98373 0x8373
 
 static const struct snd_soc_dapm_widget maxim_widgets[] = {
@@ -148,6 +149,11 @@ int sof_sdw_maxim_init(struct snd_soc_card *card,
 
        maxim_part_id = info->part_id;
        switch (maxim_part_id) {
+       case SOF_SDW_PART_ID_MAX98363:
+               /* Default ops are set in function init_dai_link.
+                * called as part of function create_sdw_dailink
+                */
+               break;
        case SOF_SDW_PART_ID_MAX98373:
                info->codec_card_late_probe = mx8373_sdw_late_probe;
                dai_links->ops = &max_98373_sdw_ops;