[PATCH v1 00/10] qrb4210-rb2: add wsa/wcd audio playback support

Alexey Klimov
2024-11-01T05:31:57Z

This is basically RFC, REVIEW or v1. At least to understand if splitting
wsa881x is a right direction and also it is not clear to me what should
be done to force mono output (to mix two channels together).

Unfortunately, only one amplifier is wired in hence only single speaker.
There is no support for capture, visense, reading wsa temperature yet.

This implements the playback via the following path:
RX1 from DSP is connected to rxmacro which communicates with wcd codec
using soundwire. This goes into AUX input of wcd.
wcd codec outputs analog audio into wsa amplifier which can, surprisingly,
amplify the signal.

Special thanks to Srini. Without his help and support this patchset
wouldn't be here.

This series depends on:
-- HDMI audio playback
https://lore.kernel.org/linux-sound/20241101005925.186696-1-alexey.klimov@linaro.org/
-- and on LPASS clock controller
https://lore.kernel.org/linux-clk/20241101012247.216825-1-alexey.klimov@linaro.org/

The other bits like fixes for rxmacro and wcd937x codecs were accepted
as far as I understand.

Alexey Klimov (10):
arm64: dts: qcom: sm6115: add LPASS devices
arm64: dts: qcom: sm4250: add description of soundwire pins
arm64: dts: qcom: qrb4210-rb2: add wcd937x codec support
ASoC: codecs: wsa881x: split into common and soundwire drivers
dt-bindings: arm: qcom-soc: extend pattern matching for
QRB4210/QRB2210 SoCs
ASoC: dt-bindings: add wsa881x-i2c binding for analog mode
ASoC: codecs: add wsa881x-i2c amplifier codec driver
arm64: dts: qcom: qrb4210-rb2: enable wsa881x amplifier
arm64: dts: qcom: qrb4210-rb2: add WSA audio playback support
ASoC: qcom: sm8250: force single channel via RX_1 output

.../devicetree/bindings/arm/qcom-soc.yaml | 4 +-
.../bindings/sound/qcom,wsa881x-i2c.yaml | 103 ++
arch/arm64/boot/dts/qcom/qrb4210-rb2.dts | 120 +-
arch/arm64/boot/dts/qcom/sm4250.dtsi | 46 +
arch/arm64/boot/dts/qcom/sm6115.dtsi | 132 ++
sound/soc/codecs/Kconfig | 15 +
sound/soc/codecs/Makefile | 4 +
sound/soc/codecs/wsa881x-common.c | 123 ++
sound/soc/codecs/wsa881x-common.h | 425 +++++
sound/soc/codecs/wsa881x-i2c.c | 1454 +++++++++++++++++
sound/soc/codecs/wsa881x.c | 493 +-----
sound/soc/qcom/sm8250.c | 10 +
12 files changed, 2445 insertions(+), 484 deletions(-)
create mode 100644 Documentation/devicetree/bindings/sound/qcom,wsa881x-i2c.yaml
create mode 100644 sound/soc/codecs/wsa881x-common.c
create mode 100644 sound/soc/codecs/wsa881x-common.h
create mode 100644 sound/soc/codecs/wsa881x-i2c.c

--
2.45.2