[PATCH v2 0/7] ASoC: qcom: add AudioReach TDM backend support
From: Prasad Kumpatla
Date: Tue Jun 30 2026 - 05:33:57 EST
Add AudioReach support for LPASS Audio IF based TDM backends and wire it
up for the sc8280xp machine driver.
The series first adds topology-driven Audio IF source/sink handling so
the DSP interface parameters can be described by topology while runtime
media format and slot configuration still come from the machine driver.
It then adds TDM DAI operations for q6apm-lpass-dais, exposes the Audio
IF clock IDs through the q6dsp-lpass-ports binding and q6prm clock
tables, and introduces common QCOM helpers for parsing standard
dai-tdm-slot-* properties from backend CPU and codec endpoints.
Finally, sc8280xp uses the common helpers during hw_params to program
CPU and codec TDM slots, derive the backend bit clock from the active
PCM parameters, and request the CPU and codec clocks before the stream is
started.
Changes since v1:
- Update AR Module token definitions and validation prefixes.
- Reorder module addresses.
- Add kernel-doc for `struct param_id_audio_if_intf_cfg`.
- Remove unused code and stale comments.
- Clean up comments and naming in q6apm-lpass-ports.h.
- Add bindings for TDM slots
This series depends on:
- https://lore.kernel.org/all/20260607-rubikpi-next-20260605-v1-3-7f334e16fea6@xxxxxxxxxxxxxxx/
- https://lore.kernel.org/linux-arm-msm/20260608023011.942228-1-mohammad.rafi.shaik@xxxxxxxxxxxxxxxx/
Prasad Kumpatla (7):
ASoC: qcom: qdsp6: add topology-driven Audio IF support
ASoC: qcom: q6apm-lpass-dais: add TDM DAI operations
dt-bindings: sound: qcom,q6dsp-lpass-ports: add Audio IF clocks
ASoC: qcom: q6prm: add Audio IF clock IDs
dt-bindings: sound: qcom,sm8250: allow TDM slot properties
ASoC: qcom: common: add DAI-node TDM slot helpers
ASoC: qcom: sc8280xp: add TDM hw_params support
.../bindings/sound/qcom,sm8250.yaml | 26 +++
.../sound/qcom,q6dsp-lpass-ports.h | 29 +++
include/uapi/sound/snd_ar_tokens.h | 99 ++++++++++-
sound/soc/qcom/common.c | 165 ++++++++++++++++++
sound/soc/qcom/common.h | 14 ++
sound/soc/qcom/qdsp6/audioreach.c | 97 ++++++++++
sound/soc/qcom/qdsp6/audioreach.h | 81 +++++++++
sound/soc/qcom/qdsp6/q6apm-lpass-dais.c | 59 +++++++
sound/soc/qcom/qdsp6/q6prm-clocks.c | 28 +++
sound/soc/qcom/qdsp6/q6prm.h | 29 +++
sound/soc/qcom/qdsp6/topology.c | 108 ++++++++++++
sound/soc/qcom/sc8280xp.c | 59 +++++++
12 files changed, 789 insertions(+), 5 deletions(-)
Prasad Kumpatla (7):
ASoC: qcom: qdsp6: add topology-driven Audio IF support
ASoC: qcom: q6apm-lpass-dais: add TDM DAI operations
dt-bindings: sound: qcom,q6dsp-lpass-ports: add Audio IF clocks
ASoC: qcom: q6prm: add Audio IF clock IDs
dt-bindings: sound: qcom,sm8250: allow TDM slot properties
ASoC: qcom: common: add DAI-node TDM slot helpers
ASoC: qcom: sc8280xp: add TDM hw_params support
.../bindings/sound/qcom,sm8250.yaml | 26 +++
.../sound/qcom,q6dsp-lpass-ports.h | 29 +++
include/uapi/sound/snd_ar_tokens.h | 89 ++++++++++
sound/soc/qcom/common.c | 165 ++++++++++++++++++
sound/soc/qcom/common.h | 14 ++
sound/soc/qcom/qdsp6/audioreach.c | 97 ++++++++++
sound/soc/qcom/qdsp6/audioreach.h | 81 +++++++++
sound/soc/qcom/qdsp6/q6apm-lpass-dais.c | 59 +++++++
sound/soc/qcom/qdsp6/q6prm-clocks.c | 28 +++
sound/soc/qcom/qdsp6/q6prm.h | 29 +++
sound/soc/qcom/qdsp6/topology.c | 105 +++++++++++
sound/soc/qcom/sc8280xp.c | 59 +++++++
12 files changed, 781 insertions(+)
base-commit: 948efecf22e49aa4bf55bb73ec79a0ddcfd38571
prerequisite-patch-id: 2f1bd3efac328030dd8efe28fb95f84603868043
prerequisite-patch-id: 047b4fb1894b92109aa7afcebd7d5c7988ec5379
prerequisite-patch-id: 222630a15afc952683d954a3c66617a223546de0
prerequisite-patch-id: 3c55edb41f1e25920a350ce1c6f31fde67fee45a
--
2.34.1