Devicetree
 help / color / mirror / Atom feed
* [PATCH v2 0/6] Add audio support for QCS6490 RubikPi3
@ 2026-07-15 14:02 Hongyang Zhao
  2026-07-15 14:02 ` [PATCH v2 1/6] ASoC: dt-bindings: es8316: Document jack detect inversion Hongyang Zhao
                   ` (6 more replies)
  0 siblings, 7 replies; 15+ messages in thread
From: Hongyang Zhao @ 2026-07-15 14:02 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Daniel Drake, Katsuhiro Suzuki, Matteo Martelli,
	Binbin Zhou, Srinivas Kandagatla, Jaroslav Kysela, Takashi Iwai,
	Bjorn Andersson, Konrad Dybcio
  Cc: Mohammad Rafi Shaik, Neil Armstrong, Dmitry Baryshkov,
	Roger Shimizu, linux-sound, devicetree, linux-kernel,
	linux-arm-msm, Hongyang Zhao, Krzysztof Kozlowski

Add audio support for the Thundercomm RubikPi3 board based on QCS6490.

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

The series first documents the existing ES8316 jack-detect inversion
property and adds a board-specific Qualcomm sound-card compatible. A
generic Qualcomm headset helper is then added for codecs which implement
component jack detection but are not connected through a WCD codec DMA
link.

The sc8280xp machine driver board data is converted to a per-DAI
representation. This allows each backend to select its own DAI format,
clock programming and jack setup. RubikPi3 uses this to drive the ES8316
with a 19.2 MHz MCLK and to avoid unsupported sysclk programming on the
LT9611 HDMI link.

The final patch describes the two audio paths, clocks, pin control,
codec power and jack-detect wiring in the RubikPi3 device tree.

This series is based on next-20260710 and depends on Rafi's
q6apm-lpass-dais MI2S clock control series and Neil's q6prm MCLK clock
ID patch:

Depends-on: https://lore.kernel.org/all/20260714145250.2473461-1-mohammad.rafi.shaik@oss.qualcomm.com/
Depends-on: https://lore.kernel.org/all/20251008-topic-sm8x50-next-hdk-i2s-v2-1-6b7d38d4ad5e@linaro.org/

Tested on Thundercomm RubikPi3:

- HDMI playback
- Headset playback and capture
- Headset jack detection

Changes in v2:

- Rebased onto next-20260710 and Rafi's latest q6apm-lpass-dais MI2S
  clock control series (v5).
- Dropped the bundled q6prm MCLK ID patch and added a dependency on
  Neil's existing patch.
- Split the generic headset helper, per-DAI driver refactoring and
  RubikPi3 machine data into separate patches.
- Reworked the sc8280xp board data from global flags to per-DAI
  configuration and migrated existing users.
- Explained why the existing QCM6490 and QCS6490 sound-card compatibles
  cannot be reused for RubikPi3.
- Moved MI2S pin control to the sound card and fixed audio-routing
  formatting as requested during v1 review.
- Added primary MI2S backend clock subnodes for MCLK and BCLK control.
- Dropped the untested SPDIF links from the device tree.
- Verified HDMI and headset playback, headset capture and jack detection
  on hardware.

Link: https://lore.kernel.org/all/20260607-rubikpi-next-20260605-v1-0-7f334e16fea6@thundersoft.com/

Signed-off-by: Hongyang Zhao <hongyang.zhao@thundersoft.com>
---
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 | 159 ++++++++++++++++++
 sound/soc/qcom/common.c                            |  61 ++++++-
 sound/soc/qcom/common.h                            |   3 +
 sound/soc/qcom/sc8280xp.c                          | 177 ++++++++++++++++++---
 6 files changed, 375 insertions(+), 31 deletions(-)
---
base-commit: bee763d5f341b99cf472afeb508d4988f62a6ca1
change-id: 20260605-rubikpi-next-20260605-fdda114824d7
prerequisite-message-id: <20260714145250.2473461-1-mohammad.rafi.shaik@oss.qualcomm.com>
prerequisite-patch-id: 2e26f868c659376d3a1dd4c3e3d34ddb24aa226d
prerequisite-patch-id: aa51a266a595ff79730f56920b7c552e53285869
prerequisite-patch-id: b469932718c83bffa60b62c84dfc4cc8abc199e3
prerequisite-patch-id: 2f1bd3efac328030dd8efe28fb95f84603868043

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


^ permalink raw reply	[flat|nested] 15+ messages in thread
* [PATCH v2 0/6] Subject: [PATCH 0/6] Add audio support for QCS6490 Thundercomm RubikPi3
@ 2026-03-17  8:35 Hongyang Zhao
  2026-03-17  8:35 ` [PATCH v2 6/6] arm64: dts: qcom: qcs6490-rubikpi3: Add audio support Hongyang Zhao
  0 siblings, 1 reply; 15+ messages in thread
From: Hongyang Zhao @ 2026-03-17  8:35 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Daniel Drake, Katsuhiro Suzuki, Matteo Martelli,
	Binbin Zhou, Jaroslav Kysela, Takashi Iwai, Srinivas Kandagatla,
	Bjorn Andersson, Konrad Dybcio
  Cc: linux-sound, devicetree, linux-kernel, linux-arm-msm,
	Roger Shimizu, Neil Armstrong, Hongyang Zhao, Krzysztof Kozlowski

This series adds audio support for the Thundercomm RubikPi3 board
(QCS6490-based) using AudioReach.

The changes include:
- Document the missing everest,jack-detect-inverted DT binding property
  for the ES8316 codec
- Improve the ES8316 codec driver to auto-detect sysclk from MCLK when
  not explicitly set
- Add MCLK clock IDs to the QDSP6 PRM clock driver
- Enable MI2S jack detection in the Qualcomm common sound driver
- Set codec DAI format for MI2S links in the sc8280xp machine driver
- Add DTS nodes for audio on RubikPi3

Currently only headphone playback and recording via ES8316 have been
validated. HDMI audio and 40-pin I2S are not yet functional due to
upstream LPASS MI2S channel support still being a work in progress.

Signed-off-by: Hongyang Zhao <hongyang.zhao@thundersoft.com>
---
Changes in v2:
- Move the retrieval of the mclk rate for the es8316 codec to the es8316_probe() function
- Drop [PATCH 3/6] ASoC: qdsp6: q6prm: Add MCLK and internal digital codec core clock IDs
  and use the patches previously sent by Neil instead: https://lkml.org/lkml/2025/10/6/828
- Modify the device tree:
    1. Swap the positions of the spdif_tx and spdif_rx nodes.
    2. Adjust the order of properties under the sound node and add necessary blank lines.
    3. Merge gpios with the same configuration into a single node: lpass_qua_mi2s_data
    4. Change es8316: es8316@11 to es8316: audio-codec@11
- Link to v1: https://lore.kernel.org/r/20260305-rubikpi-next-20260304-v1-0-327595a4528a@thundersoft.com

---
Hongyang Zhao (6):
      ASoC: dt-bindings: es8316: Document everest,jack-detect-inverted property
      ASoC: es8316: Get sysclk rate from MCLK clock when not explicitly set
      ASoC: qcom: qdsp6: q6prm: add the missing MCLK clock IDs
      ASoC: qcom: common: Add MI2S port IDs to jack setup
      ASoC: qcom: sc8280xp: Set codec DAI format for MI2S links
      arm64: dts: qcom: qcs6490-rubikpi3: Add audio support

 .../devicetree/bindings/sound/everest,es8316.yaml  |   5 +
 .../boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts | 191 +++++++++++++++++++++
 sound/soc/codecs/es8316.c                          |   3 +
 sound/soc/qcom/common.c                            |   2 +
 sound/soc/qcom/qdsp6/q6prm-clocks.c                |   5 +
 sound/soc/qcom/qdsp6/q6prm.h                       |  11 ++
 sound/soc/qcom/sc8280xp.c                          |   4 +
 7 files changed, 221 insertions(+)
---
base-commit: fc7b1a72c6cd5cbbd989c6c32a6486e3e4e3594d
change-id: 20260305-rubikpi-next-20260304-7f91c9380dee

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


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

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

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-15 14:02 [PATCH v2 0/6] Add audio support for QCS6490 RubikPi3 Hongyang Zhao
2026-07-15 14:02 ` [PATCH v2 1/6] ASoC: dt-bindings: es8316: Document jack detect inversion Hongyang Zhao
2026-07-15 14:02 ` [PATCH v2 2/6] ASoC: dt-bindings: qcom,sm8250: Add RubikPi 3 sound card Hongyang Zhao
2026-07-15 14:02 ` [PATCH v2 3/6] ASoC: qcom: common: Add generic headset jack helpers Hongyang Zhao
2026-07-15 14:02 ` [PATCH v2 4/6] ASoC: qcom: sc8280xp: Add per-DAI board configuration Hongyang Zhao
2026-07-15 14:02 ` [PATCH v2 5/6] ASoC: qcom: sc8280xp: Add RubikPi 3 sound card support Hongyang Zhao
2026-07-15 18:08   ` Mohammad Rafi Shaik
2026-07-16  9:15     ` Hongyang Zhao
2026-07-15 14:02 ` [PATCH v2 6/6] arm64: dts: qcom: qcs6490-rubikpi3: Add audio support Hongyang Zhao
2026-07-15 18:17   ` Mohammad Rafi Shaik
2026-07-16  9:52     ` Hongyang Zhao
2026-07-17 11:30   ` Konrad Dybcio
2026-07-16  8:11 ` [PATCH v2 0/6] Add audio support for QCS6490 RubikPi3 Krzysztof Kozlowski
2026-07-16  8:46   ` Hongyang Zhao
  -- strict thread matches above, loose matches on Subject: below --
2026-03-17  8:35 [PATCH v2 0/6] Subject: [PATCH 0/6] Add audio support for QCS6490 Thundercomm RubikPi3 Hongyang Zhao
2026-03-17  8:35 ` [PATCH v2 6/6] arm64: dts: qcom: qcs6490-rubikpi3: Add audio support Hongyang Zhao

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