From: John Meyer <jmeyer@fdma.com>
To: linux-sound@vger.kernel.org
Cc: yung-chuan.liao@linux.intel.com, pierre-louis.bossart@linux.dev,
kai.vehmanen@linux.intel.com, ranjani.sridharan@linux.intel.com,
peter.ujfalusi@linux.intel.com, John Meyer <jmeyer@fdma.com>
Subject: [PATCH 1/2] ASoC: sdw_utils: Add CS42L45 and CS35L57 codec table entries
Date: Wed, 1 Apr 2026 20:12:35 -0400 [thread overview]
Message-ID: <20260402001236.17086-1-jmeyer@fdma.com> (raw)
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
next reply other threads:[~2026-04-02 0:12 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-02 0:12 John Meyer [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260402001236.17086-1-jmeyer@fdma.com \
--to=jmeyer@fdma.com \
--cc=kai.vehmanen@linux.intel.com \
--cc=linux-sound@vger.kernel.org \
--cc=peter.ujfalusi@linux.intel.com \
--cc=pierre-louis.bossart@linux.dev \
--cc=ranjani.sridharan@linux.intel.com \
--cc=yung-chuan.liao@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox