The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH 0/3] ASoC: codecs: add the Qualcomm WCD9378 audio codec
@ 2026-07-06 19:22 Jorijn van der Graaf
  2026-07-06 19:22 ` [PATCH 1/3] ASoC: dt-bindings: qcom,wcd93xx-common: don't require micbias4 Jorijn van der Graaf
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Jorijn van der Graaf @ 2026-07-06 19:22 UTC (permalink / raw)
  To: Mark Brown
  Cc: Jorijn van der Graaf, Srinivas Kandagatla, Liam Girdwood,
	Rob Herring, Krzysztof Kozlowski, Luca Weiss, Conor Dooley,
	Jaroslav Kysela, Takashi Iwai, Mohammad Rafi Shaik, linux-sound,
	devicetree, linux-arm-msm, linux-kernel

This series adds bindings and a codec driver for the Qualcomm WCD9378,
found on SM7635 boards such as the Fairphone 6. The chip pairs a
WCD937x-compatible analog core with SDCA-style function blocks whose
built-in sequencers handle the analog power-up/down; all control
registers, analog core included, sit in a 32-bit paged SDCA control
address space behind the TX SoundWire slave.

The driver implements the TX/capture paths (three ADCs fed from four
analog microphone inputs, three mic bias supplies) and is modeled on
wcd937x, reusing the wcd-common helpers. RX/playback, MBHC and the
SmartAMP function are follow-up work. Register sequences come from the
GPL downstream wcd9378 driver in Qualcomm's audio-kernel-ar tree; the
chip has no public datasheet.

One dependency outside this series: the paged register map needs the
Qualcomm SoundWire controller to implement SCP address paging, posted
separately to the soundwire tree as
"soundwire: qcom: add SCP address paging support". Without it the
codec enumerates but every paged register access silently reads zero.
There is no compile-time dependency, so the two can go through their
respective trees in any order; capture just needs both to land.

Patch 1 moves the qcom,micbias4-microvolt requirement out of
qcom,wcd93xx-common.yaml into the codecs that have four mic bias
supplies, so the three-bias WCD9378 binding in patch 2 can reference
the common schema. Patch 3 is the driver itself.

Tested on the Fairphone 6 (SM7635): handset mic capture through the
LPASS TX macro at 48 kHz across reboots, including UCM-driven use by
PipeWire in a Plasma Mobile session. The board DTS follows once these
bindings are accepted.

Jorijn van der Graaf (3):
  ASoC: dt-bindings: qcom,wcd93xx-common: don't require micbias4
  ASoC: dt-bindings: add the Qualcomm WCD9378 audio codec
  ASoC: codecs: wcd9378: add TX/capture codec driver

 .../bindings/sound/qcom,wcd9378-codec.yaml    |   76 +
 .../bindings/sound/qcom,wcd9378-sdw.yaml      |  122 ++
 .../bindings/sound/qcom,wcd937x.yaml          |    1 +
 .../bindings/sound/qcom,wcd938x.yaml          |    1 +
 .../bindings/sound/qcom,wcd939x.yaml          |    1 +
 .../bindings/sound/qcom,wcd93xx-common.yaml   |    1 -
 sound/soc/codecs/Kconfig                      |   19 +
 sound/soc/codecs/Makefile                     |    7 +
 sound/soc/codecs/wcd9378-sdw.c                |  495 ++++++
 sound/soc/codecs/wcd9378.c                    | 1382 +++++++++++++++++
 sound/soc/codecs/wcd9378.h                    |  246 +++
 11 files changed, 2350 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/devicetree/bindings/sound/qcom,wcd9378-codec.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/qcom,wcd9378-sdw.yaml
 create mode 100644 sound/soc/codecs/wcd9378-sdw.c
 create mode 100644 sound/soc/codecs/wcd9378.c
 create mode 100644 sound/soc/codecs/wcd9378.h

-- 
2.55.0


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

end of thread, other threads:[~2026-07-07 11:44 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-06 19:22 [PATCH 0/3] ASoC: codecs: add the Qualcomm WCD9378 audio codec Jorijn van der Graaf
2026-07-06 19:22 ` [PATCH 1/3] ASoC: dt-bindings: qcom,wcd93xx-common: don't require micbias4 Jorijn van der Graaf
2026-07-06 19:22 ` [PATCH 2/3] ASoC: dt-bindings: add the Qualcomm WCD9378 audio codec Jorijn van der Graaf
2026-07-06 21:17   ` Srinivas Kandagatla
2026-07-06 22:22     ` Jorijn van der Graaf
2026-07-06 19:22 ` [PATCH 3/3] ASoC: codecs: wcd9378: add TX/capture codec driver Jorijn van der Graaf
     [not found]   ` <20260706193827.D90641F000E9@smtp.kernel.org>
2026-07-06 20:35     ` Jorijn van der Graaf
2026-07-06 21:41   ` Srinivas Kandagatla
2026-07-06 22:22     ` Jorijn van der Graaf
2026-07-07 11:42   ` Pierre-Louis Bossart

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