ASoC: Intel: soc-acpi: mtl: add Dell SKU 0C64 and 0CC6
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Fri, 26 Apr 2024 15:21:14 +0000 (10:21 -0500)
committerMark Brown <broonie@kernel.org>
Mon, 29 Apr 2024 15:09:59 +0000 (00:09 +0900)
SKU 0C64 relies on rt713 (jack codec) on link0, rt1318 (single
amplifier) on link1 and rt1713 (dmic) on link3.

SKU 0CC6 relies on rt713 (jack codec) on link0, rt1318 (two
amplifiers) on link 1-2 and rt1713 (dmic) on link3.

Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20240426152123.36284-4-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/common/soc-acpi-intel-mtl-match.c

index f95490a16b551217b22e1de8ef348a98084a6b70..8c1c430f54829faf94cbe5c9f9f0ab700a24fb62 100644 (file)
@@ -312,6 +312,15 @@ static const struct snd_soc_acpi_adr_device rt1316_3_single_adr[] = {
        }
 };
 
+static const struct snd_soc_acpi_adr_device rt1318_1_single_adr[] = {
+       {
+               .adr = 0x000130025D131801,
+               .num_endpoints = 1,
+               .endpoints = &single_endpoint,
+               .name_prefix = "rt1318"
+       }
+};
+
 static const struct snd_soc_acpi_adr_device rt1318_1_group1_adr[] = {
        {
                .adr = 0x000130025D131801ull,
@@ -559,6 +568,49 @@ static const struct snd_soc_acpi_link_adr mtl_rt713_l0_rt1316_l12_rt1713_l3[] =
        {}
 };
 
+static const struct snd_soc_acpi_link_adr mtl_rt713_l0_rt1318_l1_rt1713_l3[] = {
+       {
+               .mask = BIT(0),
+               .num_adr = ARRAY_SIZE(rt713_0_single_adr),
+               .adr_d = rt713_0_single_adr,
+       },
+       {
+               .mask = BIT(1),
+               .num_adr = ARRAY_SIZE(rt1318_1_single_adr),
+               .adr_d = rt1318_1_single_adr,
+       },
+       {
+               .mask = BIT(3),
+               .num_adr = ARRAY_SIZE(rt1713_3_single_adr),
+               .adr_d = rt1713_3_single_adr,
+       },
+       {}
+};
+
+static const struct snd_soc_acpi_link_adr mtl_rt713_l0_rt1318_l12_rt1713_l3[] = {
+       {
+               .mask = BIT(0),
+               .num_adr = ARRAY_SIZE(rt713_0_single_adr),
+               .adr_d = rt713_0_single_adr,
+       },
+       {
+               .mask = BIT(1),
+               .num_adr = ARRAY_SIZE(rt1318_1_group1_adr),
+               .adr_d = rt1318_1_group1_adr,
+       },
+       {
+               .mask = BIT(2),
+               .num_adr = ARRAY_SIZE(rt1318_2_group1_adr),
+               .adr_d = rt1318_2_group1_adr,
+       },
+       {
+               .mask = BIT(3),
+               .num_adr = ARRAY_SIZE(rt1713_3_single_adr),
+               .adr_d = rt1713_3_single_adr,
+       },
+       {}
+};
+
 static const struct snd_soc_acpi_link_adr mtl_rt713_l0_rt1316_l12[] = {
        {
                .mask = BIT(0),
@@ -697,6 +749,18 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_mtl_sdw_machines[] = {
                .drv_name = "sof_sdw",
                .sof_tplg_filename = "sof-mtl-rt713-l0-rt1316-l12-rt1713-l3.tplg",
        },
+       {
+               .link_mask = GENMASK(3, 0),
+               .links = mtl_rt713_l0_rt1318_l12_rt1713_l3,
+               .drv_name = "sof_sdw",
+               .sof_tplg_filename = "sof-mtl-rt713-l0-rt1318-l12-rt1713-l3.tplg",
+       },
+       {
+               .link_mask = BIT(0) | BIT(1) | BIT(3),
+               .links = mtl_rt713_l0_rt1318_l1_rt1713_l3,
+               .drv_name = "sof_sdw",
+               .sof_tplg_filename = "sof-mtl-rt713-l0-rt1318-l1-rt1713-l3.tplg",
+       },
        {
                .link_mask = GENMASK(2, 0),
                .links = mtl_rt713_l0_rt1316_l12,