[PATCH v3 0/6] Add audio support for QCS6490 Rubik Pi 3

From: Hongyang Zhao

Date: Fri Sep 04 2026 - 07:49:31 EST


Add audio support for the Thundercomm Rubik Pi 3, based on QCS6490.

The board uses AudioReach/GPR on the ADSP. An ES8316 codec on primary
MI2S provides headset playback, capture and jack detection, while the
LT9611 bridge on quaternary MI2S provides HDMI playback.

Document the ES8316 jack-detect inversion property and add a dedicated
sound-card compatible. Factor out a generic Qualcomm headset helper for
external codecs, extend the sc8280xp machine driver with optional per-DAI
clock and jack configuration, and describe the audio hardware in the board
device tree. Existing cards continue to use their card-wide defaults, and
the DAI format remains card-wide.

This series is based on next-20260902. The required q6prm MCLK IDs, q6apm
MI2S clock control and ES8316 regulator support are present in that tree,
so there are no external dependencies.

Tested on Rubik Pi 3 with HDMI playback, headset playback and capture, and
headset jack detection. The bindings and board DTB were also validated
against next-20260902.

Corresponding AudioReach topology and alsa-ucm-conf updates have also
been tested and will be submitted separately to their respective upstream
projects.

Changes in v3:

- Rebase onto next-20260902 and drop the external dependencies, which are
now present in linux-next.
- Adapt the machine driver to the current board data, keeping existing
card-wide settings as fallbacks and codec_dai_fmt card-wide.
- Describe MCLK at the ES8316 codec and BCLK at the primary MI2S backend
DAIs.
- Use the upstream ES8316 supplies without regulator-always-on or
regulator-boot-on, and assign the shared GPIO117 pinctrl state to only
one fixed regulator.
- Put capture before playback and use human-readable link names.

Link: https://lore.kernel.org/r/20260715-rubikpi-next-20260605-v2-0-67601d7a8581@xxxxxxxxxxxxxxx

Signed-off-by: Hongyang Zhao <hongyang.zhao@xxxxxxxxxxxxxxx>
---
Hongyang Zhao (6):
ASoC: dt-bindings: es8316: Document jack detect inversion
ASoC: dt-bindings: qcom,sm8250: Add RubikPi 3 sound card
ASoC: qcom: common: Add generic headset jack helpers
ASoC: qcom: sc8280xp: Add per-DAI board configuration
ASoC: qcom: sc8280xp: Add RubikPi 3 sound card support
arm64: dts: qcom: qcs6490-rubikpi3: Add audio support

.../devicetree/bindings/sound/everest,es8316.yaml | 5 +
.../devicetree/bindings/sound/qcom,sm8250.yaml | 1 +
.../boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts | 169 +++++++++++++++++++++
sound/soc/qcom/common.c | 61 +++++++-
sound/soc/qcom/common.h | 3 +
sound/soc/qcom/sc8280xp.c | 130 ++++++++++++++--
6 files changed, 352 insertions(+), 17 deletions(-)
---
base-commit: 32b6ef9a5d0eca44f9cd91f52f4faa89f145a0de
change-id: 20260605-rubikpi-next-20260605-fdda114824d7

Best regards,
--
Hongyang Zhao <hongyang.zhao@xxxxxxxxxxxxxxx>