public inbox for linux-sound@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] ASoC: sdw_utils: Add CS42L45 and CS35L57 codec table entries
@ 2026-04-02  0:12 John Meyer
  2026-04-02  0:12 ` [PATCH 2/2] ASoC: intel: ptl: Add machine driver entry for Dell XPS 14 DA14260 John Meyer
  2026-04-02  9:18 ` [PATCH 1/2] ASoC: sdw_utils: Add CS42L45 and CS35L57 codec table entries Richard Fitzgerald
  0 siblings, 2 replies; 4+ messages in thread
From: John Meyer @ 2026-04-02  0:12 UTC (permalink / raw)
  To: linux-sound
  Cc: yung-chuan.liao, pierre-louis.bossart, kai.vehmanen,
	ranjani.sridharan, peter.ujfalusi, John Meyer

Add codec info table entries for two Cirrus Logic SoundWire devices
found on the Dell XPS 14 DA14260 (Panther Lake):

CS35L57 (part ID 0x3557): A speaker amplifier that uses the same
cs35l56 Linux driver as the CS35L56 and CS35L63.  Add a matching
entry identical in structure to the existing 0x3556 and 0x3563
entries so sof_sdw can look it up by part ID.

CS42L45 (part ID 0x4245): An SDCA headset codec closely related to
the CS42L43.  The CS42L45 exposes three SDCA endpoints -- UAJ (jack
playback), SmartMic (DMIC capture), and UAJ (jack capture) -- but
does NOT have an internal speaker amp function; speaker output is
handled by the external CS35L57 amps on separate SoundWire links.
Add a three-DAI entry using the existing cs42l43 codec driver and
DAI names (dp5 for jack out, dp1 for DMIC, dp2 for jack in).

Tested on Dell XPS 14 DA14260 (Panther Lake, kernel 6.18.20).

Signed-off-by: John Meyer <jmeyer@fdma.com>
---
 sound/soc/sdw_utils/soc_sdw_utils.c | 75 ++++++++++++++++++++++++++++
 1 file changed, 75 insertions(+)

diff --git a/sound/soc/sdw_utils/soc_sdw_utils.c b/sound/soc/sdw_utils/soc_sdw_utils.c
--- a/sound/soc/sdw_utils/soc_sdw_utils.c
+++ b/sound/soc/sdw_utils/soc_sdw_utils.c
@@ -559,6 +559,32 @@
 		.dai_num = 2,
 	},
 	{
+		.part_id = 0x3557,
+		.dais = {
+			{
+				.direction = {true, false},
+				.dai_name = "cs35l56-sdw1",
+				.component_name = "cs35l56",
+				.dai_type = SOC_SDW_DAI_TYPE_AMP,
+				.dailink = {SOC_SDW_AMP_OUT_DAI_ID, SOC_SDW_UNUSED_DAI_ID},
+				.init = asoc_sdw_cs_amp_init,
+				.rtd_init = asoc_sdw_cs_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),
+			},
+			{
+				.direction = {false, true},
+				.dai_name = "cs35l56-sdw1c",
+				.dai_type = SOC_SDW_DAI_TYPE_AMP,
+				.dailink = {SOC_SDW_UNUSED_DAI_ID, SOC_SDW_AMP_IN_DAI_ID},
+				.rtd_init = asoc_sdw_cs_spk_feedback_rtd_init,
+			},
+		},
+		.dai_num = 2,
+	},
+	{
 		.part_id = 0x3563,
 		.dais = {
 			{
@@ -652,6 +678,43 @@
 		.dai_num = 4,
 	},
 	{
+		.part_id = 0x4245,
+		.codec_name = "cs42l43-codec",
+		.count_sidecar = asoc_sdw_bridge_cs35l56_count_sidecar,
+		.add_sidecar = asoc_sdw_bridge_cs35l56_add_sidecar,
+		.dais = {
+			{
+				.direction = {true, false},
+				.dai_name = "cs42l43-dp5",
+				.dai_type = SOC_SDW_DAI_TYPE_JACK,
+				.dailink = {SOC_SDW_JACK_OUT_DAI_ID, SOC_SDW_UNUSED_DAI_ID},
+				.rtd_init = asoc_sdw_cs42l43_hs_rtd_init,
+				.controls = generic_jack_controls,
+				.num_controls = ARRAY_SIZE(generic_jack_controls),
+				.widgets = generic_jack_widgets,
+				.num_widgets = ARRAY_SIZE(generic_jack_widgets),
+			},
+			{
+				.direction = {false, true},
+				.dai_name = "cs42l43-dp1",
+				.dai_type = SOC_SDW_DAI_TYPE_MIC,
+				.dailink = {SOC_SDW_UNUSED_DAI_ID, SOC_SDW_DMIC_DAI_ID},
+				.rtd_init = asoc_sdw_cs42l43_dmic_rtd_init,
+				.widgets = generic_dmic_widgets,
+				.num_widgets = ARRAY_SIZE(generic_dmic_widgets),
+				.quirk = SOC_SDW_CODEC_MIC,
+				.quirk_exclude = true,
+			},
+			{
+				.direction = {false, true},
+				.dai_name = "cs42l43-dp2",
+				.dai_type = SOC_SDW_DAI_TYPE_JACK,
+				.dailink = {SOC_SDW_UNUSED_DAI_ID, SOC_SDW_JACK_IN_DAI_ID},
+			},
+		},
+		.dai_num = 3,
+	},
+	{
 		.part_id = 0xaaaa, /* generic codec mockup */
 		.version_id = 0,
 		.dais = {
--
2.49.0

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-04-02  9:18 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-02  0:12 [PATCH 1/2] ASoC: sdw_utils: Add CS42L45 and CS35L57 codec table entries John Meyer
2026-04-02  0:12 ` [PATCH 2/2] ASoC: intel: ptl: Add machine driver entry for Dell XPS 14 DA14260 John Meyer
2026-04-02  9:12   ` Richard Fitzgerald
2026-04-02  9:18 ` [PATCH 1/2] ASoC: sdw_utils: Add CS42L45 and CS35L57 codec table entries Richard Fitzgerald

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox