From: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
To: Mark Brown <broonie@kernel.org>, Rob Herring <robh@kernel.org>,
Charles Keepax <ckeepax@opensource.cirrus.com>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Bard Liao <yung-chuan.liao@linux.intel.com>,
Jaroslav Kysela <perex@perex.cz>,
Liam Girdwood <lgirdwood@gmail.com>,
Maciej Strozek <mstrozek@opensource.cirrus.com>,
Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>,
Takashi Iwai <tiwai@suse.com>,
Faiz Nabi Kuchay <fkuchay@oss.qualcomm.com>,
Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net>,
patches@opensource.cirrus.com, linux-sound@vger.kernel.org,
devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org,
linux-kernel@vger.kernel.org,
Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
Subject: [PATCH v2 00/11] ASoC: SDCA: enable on DT platforms and add Qualcomm WCD9378 (Tambora) codec
Date: Mon, 7 Sep 2026 09:37:14 +0100 [thread overview]
Message-ID: <20260907083727.733705-1-srinivas.kandagatla@oss.qualcomm.com> (raw)
This series extends the SDCA class driver to work on DT / non-ACPI
platforms via a codec-provided static topology, and adds the Qualcomm
WCD9378 (Tambora) codec as the first user driven in SDCA / compute
mode. Tested on the Snapdragon X2 Elite Glymur CRD.
Patches 1-9 extend the SDCA class helpers:
- Kconfig gate to build the class without ACPI enabled.
- PM helpers keyed on a codec-embedded struct sdca_class_drv, so
codec drivers can build their own dev_pm_ops.
- Class SoundWire probe/remove/read_prop exposed as library
functions callable from codec-specific SDW slave drivers.
- hw_ops with hw_init (supplies/reset/SCP init) and
populate_function (DT-supplied SDCA function data) hooks.
- Class function driver registers SDCA_FUNCTION_TYPE_SIMPLE_JACK,
and resolves sound-dai cells by entity index.
- sdca_apply_default_control_classifiers() applies the same
is_volatile / has_reset flags that the DisCo/ACPI parser would.
Note:
None of these are functional changes in sdca core, all of these are
helper functions to allow non-ACPI users to use sdca core.
Patches 10-11 add the WCD9378 SDCA / compute-mode codec:
- dt-bindings for the SoundWire slave in compute mode, using the
qcom,wcd9378c variant compatible alongside the SoundWire
class-ID compatible sdw20217011000.
- Codec driver split across wcd9378-sdw.c (SoundWire slave driver
plumbing) and wcd9378-sdca.c (SDCA topology + hw_ops) with a
shared wcd9378-sdca.h header. A future mobile-mode driver can
plug into the same module (single MODULE_DEVICE_TABLE, single
modalias) by adding its own files and hooking into
wcd9378-sdw.c.
Testing: HPH playback and headset-mic capture confirmed on the
Snapdragon X2 Elite Glymur CRD.
Jack detection is not wired up in this series. GE 35 / MBHC stays
armed by the transcribed init table but is not consumed; the mode
0/1 aliasing in range_ge35_mode_data is a defensive fallback and
has not been tested.
Changes since RFC v1 [1]:
- Compute-mode identified by qcom,wcd9378c variant compatible
instead of the qcom,compute-mode boolean property.
- qcom,micbias2-microvolt dropped; MICB2 fixed at 2.75 V by the
SimpleJack topology.
- Codec split into wcd9378-sdw.c (SDW plumbing) and
wcd9378-sdca.c (SDCA topology); module renamed to
snd-soc-wcd9378 as preparatory for mobile driver.
- Binding is compute-only; qcom,wcd9378 mobile-mode variant will
land with the mobile-mode driver.
- MODULE_IMPORT_NS("SND_SOC_SDCA") added.
- sdca_class.h moved from sound/soc/sdca/ to include/sound/.
- qcom,port-mapping missing now returns -EINVAL via
dev_err_probe().
- init_table sync up with CRD asl and the T14s DSDT; 8 stray writes dropped.
- Six fake IRQ-anchor Controls on PDE 47 dropped; HPH
OCP/CNP/SURGE stay codec-local until an SDCA framework
interface for standalone status-bit IRQs lands.
- .is_volatile dropped from FU 6 CHANNEL_VOLUME (matches MUTE).
- dropped pre post pde callbacks, and all of the mixers and mute are
exposed as mixer controls.
- added sdca_apply_default_control_classifiers, inline with acpi
iparsing.
[1] https://lore.kernel.org/all/amHqO5pMFmKRNYTT@opensource.cirrus.com/
Srinivas Kandagatla (11):
ASoC: SDCA: allow building without ACPI
ASoC: SDCA: export PM helpers keyed on sdca_class_drv
ASoC: SDCA: expose class SoundWire probe/remove/read_prop as library
ASoC: SDCA: add hw_ops with hw_init hook
ASoC: SDCA: add populate_function hw_op for DT function data
ASoC: SDCA: class_function: xlate sound-dai cell by entity index
ASoC: SDCA: register SDCA_FUNCTION_TYPE_SIMPLE_JACK in class function
driver
ASoC: SDCA: make find_sdca_control_reset() return void
ASoC: SDCA: add sdca_apply_default_control_classifiers() helper
dt-bindings: sound: qcom: add Tambora WCD9378 SDCA codec
ASoC: codecs: add Qualcomm Tambora (WCD9378) SDCA codec
.../bindings/sound/qcom,wcd9378-sdw.yaml | 91 ++
include/sound/sdca.h | 23 +-
include/sound/sdca_class.h | 80 ++
include/sound/sdca_function.h | 2 +
sound/soc/codecs/Kconfig | 11 +
sound/soc/codecs/Makefile | 2 +
sound/soc/codecs/wcd9378-sdca.c | 1010 +++++++++++++++++
sound/soc/codecs/wcd9378-sdca.h | 20 +
sound/soc/codecs/wcd9378-sdw.c | 52 +
sound/soc/sdca/Kconfig | 6 +-
sound/soc/sdca/sdca_class.c | 166 ++-
sound/soc/sdca/sdca_class.h | 35 -
sound/soc/sdca/sdca_class_function.c | 50 +-
sound/soc/sdca/sdca_device.c | 4 +
sound/soc/sdca/sdca_functions.c | 43 +-
15 files changed, 1516 insertions(+), 79 deletions(-)
create mode 100644 Documentation/devicetree/bindings/sound/qcom,wcd9378-sdw.yaml
create mode 100644 include/sound/sdca_class.h
create mode 100644 sound/soc/codecs/wcd9378-sdca.c
create mode 100644 sound/soc/codecs/wcd9378-sdca.h
create mode 100644 sound/soc/codecs/wcd9378-sdw.c
delete mode 100644 sound/soc/sdca/sdca_class.h
--
2.53.0
next reply other threads:[~2026-09-07 8:38 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-07 8:37 Srinivas Kandagatla [this message]
2026-09-07 8:37 ` [PATCH v2 01/11] ASoC: SDCA: allow building without ACPI Srinivas Kandagatla
2026-09-07 8:54 ` Richard Fitzgerald
2026-09-07 9:09 ` Takashi Iwai
2026-09-07 8:37 ` [PATCH v2 02/11] ASoC: SDCA: export PM helpers keyed on sdca_class_drv Srinivas Kandagatla
2026-09-08 16:22 ` Charles Keepax
2026-09-08 17:49 ` Srinivas Kandagatla
2026-09-07 8:37 ` [PATCH v2 03/11] ASoC: SDCA: expose class SoundWire probe/remove/read_prop as library Srinivas Kandagatla
2026-09-07 11:31 ` Pierre-Louis Bossart
2026-09-07 13:29 ` Srinivas Kandagatla
2026-09-07 8:37 ` [PATCH v2 04/11] ASoC: SDCA: add hw_ops with hw_init hook Srinivas Kandagatla
2026-09-07 11:29 ` Pierre-Louis Bossart
2026-09-07 13:33 ` Srinivas Kandagatla
2026-09-07 8:37 ` [PATCH v2 05/11] ASoC: SDCA: add populate_function hw_op for DT function data Srinivas Kandagatla
2026-09-07 11:28 ` Pierre-Louis Bossart
2026-09-07 13:16 ` Charles Keepax
2026-09-08 16:25 ` Charles Keepax
2026-09-08 18:00 ` Srinivas Kandagatla
2026-09-09 8:34 ` Charles Keepax
2026-09-07 8:37 ` [PATCH v2 06/11] ASoC: SDCA: class_function: xlate sound-dai cell by entity index Srinivas Kandagatla
2026-09-07 8:37 ` [PATCH v2 07/11] ASoC: SDCA: register SDCA_FUNCTION_TYPE_SIMPLE_JACK in class function driver Srinivas Kandagatla
2026-09-07 11:32 ` Pierre-Louis Bossart
2026-09-07 8:37 ` [PATCH v2 08/11] ASoC: SDCA: make find_sdca_control_reset() return void Srinivas Kandagatla
2026-09-07 11:32 ` Pierre-Louis Bossart
2026-09-07 13:03 ` Charles Keepax
2026-09-07 13:16 ` Srinivas Kandagatla
2026-09-07 8:37 ` [PATCH v2 09/11] ASoC: SDCA: add sdca_apply_default_control_classifiers() helper Srinivas Kandagatla
2026-09-07 8:37 ` [PATCH v2 10/11] dt-bindings: sound: qcom: add Tambora WCD9378 SDCA codec Srinivas Kandagatla
2026-09-07 8:37 ` [PATCH v2 11/11] ASoC: codecs: add Qualcomm Tambora (WCD9378) " Srinivas Kandagatla
2026-09-07 11:32 ` Pierre-Louis Bossart
2026-09-07 13:03 ` Srinivas Kandagatla
2026-09-07 19:47 ` Pierre-Louis Bossart
2026-09-07 21:26 ` Mark Brown
2026-09-07 22:37 ` Srinivas Kandagatla
2026-09-08 8:49 ` Charles Keepax
2026-09-08 9:09 ` Srinivas Kandagatla
2026-09-08 10:37 ` Richard Fitzgerald
2026-09-08 12:31 ` Srinivas Kandagatla
2026-09-08 13:20 ` Charles Keepax
2026-09-08 13:34 ` Srinivas Kandagatla
2026-09-08 14:22 ` Pierre-Louis Bossart
2026-09-08 15:33 ` Charles Keepax
2026-09-08 15:34 ` Srinivas Kandagatla
2026-09-08 15:58 ` Uwe Kleine-König
2026-09-08 16:20 ` Charles Keepax
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=20260907083727.733705-1-srinivas.kandagatla@oss.qualcomm.com \
--to=srinivas.kandagatla@oss.qualcomm.com \
--cc=broonie@kernel.org \
--cc=ckeepax@opensource.cirrus.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=fkuchay@oss.qualcomm.com \
--cc=jorijnvdgraaf@catcrafts.net \
--cc=krzk+dt@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=mstrozek@opensource.cirrus.com \
--cc=patches@opensource.cirrus.com \
--cc=perex@perex.cz \
--cc=pierre-louis.bossart@linux.dev \
--cc=robh@kernel.org \
--cc=tiwai@suse.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
all inboxes | Powered by JetHome®