[v2] ASoC: Intel: mtl-match: Add cs42l43_l0 cs35l56_l23 for MTL

Message ID 20240122151545.69437-1-mstrozek@opensource.cirrus.com
State New
Headers
Series [v2] ASoC: Intel: mtl-match: Add cs42l43_l0 cs35l56_l23 for MTL |

Commit Message

Maciej Strozek Jan. 22, 2024, 3:15 p.m. UTC
  Signed-off-by: Maciej Strozek <mstrozek@opensource.cirrus.com>
---
v1 -> v2: swapped AMP3 and AMP4 prefixes

 .../intel/common/soc-acpi-intel-mtl-match.c   | 57 +++++++++++++++++++
 1 file changed, 57 insertions(+)

--
2.34.1
  

Comments

Pierre-Louis Bossart Jan. 23, 2024, 8:34 a.m. UTC | #1
On 1/22/24 16:15, Maciej Strozek wrote:

It wouldn't hurt to add a brief commit message describing what the
hardware layout is, specifically how the mics are handled.

It's also best to submit the corresponding machine driver updates at the
same time to check for consistency.


>  	},
> +	{
> +		.link_mask = BIT(0) | BIT(2) | BIT(3),
> +		.links = cs42l43_link0_cs35l56_link2_link3,
> +		.drv_name = "sof_sdw",
> +		.sof_tplg_filename = "sof-mtl-cs42l43-l0-cs35l56-l23.tplg",

was this topology submitted to the SOF tree? I don't see it, usually we
review topology/acpi/machine stuff together to avoid disconnects.

> +	},
>  	{
>  		.link_mask = GENMASK(2, 0),
>  		.links = mtl_cs42l43_cs35l56,
> --
> 2.34.1
>
  
Maciej Strozek Jan. 23, 2024, 8:48 a.m. UTC | #2
W dniu wto, 23.01.2024 o godzinie 09∶34 +0100, użytkownik Pierre-Louis
Bossart napisał:
> 
> 
> On 1/22/24 16:15, Maciej Strozek wrote:
> 
> It wouldn't hurt to add a brief commit message describing what the
> hardware layout is, specifically how the mics are handled.
> 
> It's also best to submit the corresponding machine driver updates at
> the
> same time to check for consistency.
> 
Will add the message in the next version

> 
> >         },
> > +       {
> > +               .link_mask = BIT(0) | BIT(2) | BIT(3),
> > +               .links = cs42l43_link0_cs35l56_link2_link3,
> > +               .drv_name = "sof_sdw",
> > +               .sof_tplg_filename = "sof-mtl-cs42l43-l0-cs35l56-
> > l23.tplg",
> 
> was this topology submitted to the SOF tree? I don't see it, usually
> we
> review topology/acpi/machine stuff together to avoid disconnects.
> 
Not yet, sorry, I'm aiming to send the topology to the SOF repo today.
Will include the link here in the next version.

> > +       },
> >         {
> >                 .link_mask = GENMASK(2, 0),
> >                 .links = mtl_cs42l43_cs35l56,
> > --
> > 2.34.1
> >
  

Patch

diff --git a/sound/soc/intel/common/soc-acpi-intel-mtl-match.c b/sound/soc/intel/common/soc-acpi-intel-mtl-match.c
index feb12c6c85d1..23eaf47b3f24 100644
--- a/sound/soc/intel/common/soc-acpi-intel-mtl-match.c
+++ b/sound/soc/intel/common/soc-acpi-intel-mtl-match.c
@@ -377,6 +377,37 @@  static const struct snd_soc_acpi_adr_device cs35l56_2_adr[] = {
 	}
 };

+static const struct snd_soc_acpi_adr_device cs35l56_2_r_adr[] = {
+	{
+		.adr = 0x00023201FA355601ull,
+		.num_endpoints = 1,
+		.endpoints = &spk_r_endpoint,
+		.name_prefix = "AMP3"
+	},
+	{
+		.adr = 0x00023301FA355601ull,
+		.num_endpoints = 1,
+		.endpoints = &spk_3_endpoint,
+		.name_prefix = "AMP4"
+	}
+
+};
+
+static const struct snd_soc_acpi_adr_device cs35l56_3_l_adr[] = {
+	{
+		.adr = 0x00033001fa355601ull,
+		.num_endpoints = 1,
+		.endpoints = &spk_l_endpoint,
+		.name_prefix = "AMP1"
+	},
+	{
+		.adr = 0x00033101fa355601ull,
+		.num_endpoints = 1,
+		.endpoints = &spk_2_endpoint,
+		.name_prefix = "AMP2"
+	}
+};
+
 static const struct snd_soc_acpi_link_adr rt5682_link2_max98373_link0[] = {
 	/* Expected order: jack -> amp */
 	{
@@ -554,6 +585,26 @@  static const struct snd_soc_acpi_link_adr mtl_cs42l43_cs35l56[] = {
 	{}
 };

+static const struct snd_soc_acpi_link_adr cs42l43_link0_cs35l56_link2_link3[] = {
+	/* Expected order: jack -> amp */
+	{
+		.mask = BIT(0),
+		.num_adr = ARRAY_SIZE(cs42l43_0_adr),
+		.adr_d = cs42l43_0_adr,
+	},
+	{
+		.mask = BIT(2),
+		.num_adr = ARRAY_SIZE(cs35l56_2_r_adr),
+		.adr_d = cs35l56_2_r_adr,
+	},
+	{
+		.mask = BIT(3),
+		.num_adr = ARRAY_SIZE(cs35l56_3_l_adr),
+		.adr_d = cs35l56_3_l_adr,
+	},
+	{}
+};
+
 /* this table is used when there is no I2S codec present */
 struct snd_soc_acpi_mach snd_soc_acpi_intel_mtl_sdw_machines[] = {
 	/* mockup tests need to be first */
@@ -599,6 +650,12 @@  struct snd_soc_acpi_mach snd_soc_acpi_intel_mtl_sdw_machines[] = {
 		.drv_name = "sof_sdw",
 		.sof_tplg_filename = "sof-mtl-rt1318-l12-rt714-l0.tplg"
 	},
+	{
+		.link_mask = BIT(0) | BIT(2) | BIT(3),
+		.links = cs42l43_link0_cs35l56_link2_link3,
+		.drv_name = "sof_sdw",
+		.sof_tplg_filename = "sof-mtl-cs42l43-l0-cs35l56-l23.tplg",
+	},
 	{
 		.link_mask = GENMASK(2, 0),
 		.links = mtl_cs42l43_cs35l56,