[PATCH v5 0/9] ASoC: qcom: Add shikra and Hawi LPASS macro support
From: Mohammad Rafi Shaik
Date: Wed Oct 14 2026 - 05:14:16 EST
This series adds audio support for two Qualcomm SoC platforms — Shikra
and Hawi — by extending the LPASS codec macro drivers for version 4.1
and 4.0 respectively, and by adding SoundWire microphone capture support
to the VA macro.
Shikra (LPASS codec v4.1)
--------------------------
The first part of the series targets the Shikra platform, which
integrates LPASS codec version 4.1. This is not backwards-compatible
with previously described compatibles, so new DT bindings and
standalone compatibles are introduced for the RX and VA macros.
Driver changes include version detection enhancements (including a fix
for the missing v2.9 version string in the common helper), FS counter
bypass programming required before the codec is enabled, and a v4.1
specific regmap configuration covering the additional adaptive filter
(ADPT) blocks at 0x0800..0x09a4.
SoundWire microphone support (VA macro)
----------------------------------------
The VA decimators previously only supported DMIC inputs. A new patch
extends them to accept SoundWire microphone (SMIC) sources as well,
updating the ADC_DMIC_SEL mux programming to be resolved at decimator
enable time rather than at mixer write time, ensuring correct operation
regardless of the order in which userspace restores controls. DMIC-
specific HPF programming is skipped when an SMIC source is active.
Hawi (LPASS codec v4.0)
------------------------
The final three patches, add support for the Hawi (and Maili) platform
which integrates LPASS codec v4.0.
While v4.0 shares the same RX and VA macro register layout as the
existing v2.5+ path and reuses those helpers, the TX macro is based on
Bolero v4.0 — an extension of the v9.x TX macro that adds a port-select
stage in the SWR microphone input path and an adaptive filter (ADPT)
block. The ADPT block must be disabled before a decimator is enabled;
this is gated on a new has_adpt flag in match data since the register
does not exist on earlier versions.
New DT bindings document the RX, TX and VA macro compatibles for Hawi,
noting the clock differences: the RX macro uses the 'lpr' clock rather
than 'macro', and the VA macro takes an additional 'heartbeatpulse'
clock sourced from the LPASS VA CSR rate generator.
Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@xxxxxxxxxxxxxxxx>
---
Changes in v5:
- dt-bindings: rx-macro: drop the redundant clocks "minItems" from the shikra
conditional, it is already set at the top level suggested by Krzysztof.
- va-macro: shikra: do not hardcode the codec version in match data, read it
back from the hardware and cross check it against the register layout
selected by the compatible, reported by Ajay, Sashiko.
- va-macro: SoundWire mic: do not let a write to the DMIC/SMIC mux that is not
part of the active path reprogram the shared ADC_DMIC_SEL bit of a running
capture, reported by Sashiko.
- va-macro: SoundWire mic: clarify that only the HPF zero gate assertion is
specific to the DMIC path, in both the commit message and the code as
suggested by Ajay.
- Add device tree bindings for Maili.
- Prevent duplicate registration of TX DECn MUX controls as suggested by
Mark.
- Add v4.0-specific regmap_config and default register table.
- Link to v4: https://lore.kernel.org/all/20260922-add_shikra_support-v1-0-6c6cb6444caf@xxxxxxxxxxxxxxxx/
Changes in v4:
- Added three new patches for Hawi / LPASS codec v4.0 support (DT bindings,
TX macro Bolero v4.0, RX/VA macro v4.0)
- Fixed all issues reported by Sashiko in v3.
- Link to v3: https://lore.kernel.org/all/20260917-add_shikra_support-v3-0-fc0e79c341aa@xxxxxxxxxxxxxxxx/
Changes in v3:
- Added Shikra-specific clock constraints for RX and VA Macro DT bindings.
- Restricted clock and clock-names properties to align with Shikra hardware requirements.
- Removed dead code from patch 3 of v2, as suggested by Krzysztof.
- Replaced open-coded checks with a flag-based conditional for LPASS
codec v4.1 specific configurations.
- Reused existing SoundWire microphone widgets, as suggested by Srinivas.
- Switched the regmap cache type to REGCACHE_MAPLE.
- Link to v2: https://patch.msgid.link/20260910-add_shikra_support-v2-0-fdd2129c696c@xxxxxxxxxxxxxxxx
Changes in v2:
- Updated FS CONTROL and ADPT only for version 4.1, as suggested by Krzysztof.
- Addressed Konrad's review comments from v1 by replacing magic numbers and
lower hex reg values where appropriate.
- Link to v1: https://patch.msgid.link/20260608172023.2965292-1-mohammad.rafi.shaik@xxxxxxxxxxxxxxxx
To: Srinivas Kandagatla <srini@xxxxxxxxxx>
To: Liam Girdwood <lgirdwood@xxxxxxxxx>
To: Mark Brown <broonie@xxxxxxxxxx>
To: Rob Herring <robh@xxxxxxxxxx>
To: Krzysztof Kozlowski <krzk+dt@xxxxxxxxxx>
To: Conor Dooley <conor+dt@xxxxxxxxxx>
To: Jaroslav Kysela <perex@xxxxxxxx>
To: Takashi Iwai <tiwai@xxxxxxxx>
Cc: linux-arm-msm@xxxxxxxxxxxxxxx
Cc: linux-sound@xxxxxxxxxxxxxxx
Cc: devicetree@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
---
Mohammad Rafi Shaik (5):
ASoC: dt-bindings: qcom: Add Shikra RX and VA macro codecs
ASoC: qcom: lpass-macro-common: Add missing v2.9 version string
ASoC: qcom: lpass-rx-macro: Add shikra compatible
ASoC: qcom: lpass-va-macro: Add shikra compatible
ASoC: qcom: lpass-va-macro: Add SoundWire microphone support
Prasad Kumpatla (4):
ASoC: dt-bindings: qcom: Add Hawi LPASS macro codecs
ASoC: dt-bindings: qcom: Add Maili LPASS macro codecs
ASoC: qcom: lpass-tx-macro: Add support for Bolero v4.0
ASoC: qcom: lpass: Add support for LPASS codec v4.0
.../bindings/sound/qcom,lpass-rx-macro.yaml | 39 ++
.../bindings/sound/qcom,lpass-tx-macro.yaml | 23 +
.../bindings/sound/qcom,lpass-va-macro.yaml | 40 ++
sound/soc/codecs/lpass-macro-common.h | 9 +
sound/soc/codecs/lpass-rx-macro.c | 19 +
sound/soc/codecs/lpass-tx-macro.c | 576 ++++++++++++++++++++-
sound/soc/codecs/lpass-va-macro.c | 442 +++++++++++++++-
7 files changed, 1122 insertions(+), 26 deletions(-)
---
base-commit: 631a161db2c5168dd836242571724baba3561a1f
change-id: 20261014-add_shikra_support_v5-7ca922588a98
Best regards,
--
Mohammad Rafi Shaik <mohammad.rafi.shaik@xxxxxxxxxxxxxxxx>