[PATCH 0/4] ROCK 4D audio enablement

Nicolas Frattaroli
2025-06-30T10:19:53Z

The ROCK 4D uses an ADC input to distinguish between a headphone (i.e.,
no mic) and a headset (i.e., with mic). After some searching, it appears
that the closest we can get to modelling this is by sending a particular
switch input event.

So this series modifies the adc-keys bindings, extends the adc-keys
driver to allow sending other input types as well, and then adds the
analog and HDMI audio nodes to ROCK 4D's device tree.

It should be noted that analog capture from the TRRS jack currently
results in completely digitally silent audio for me, i.e. no data other
than 0xFF. There's a few reasons why this could happen, chief among them
that my SAI driver is broken or that the ES8328 codec driver is once
again broken. The DAPM routes when graphed out look fine though. So the
DTS part is correct, and I can fix the broken capture in a separate
follow-up patch that doesn't have to include DT people.

Another possibility is that my phone headset, despite being 4 rings and
having a little pin hole at the back of the volume doodad, does not
actually have a microphone, but in that case I'd still expect some noise
in the PCM. Maybe it's just shy.

Signed-off-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com>
---
Nicolas Frattaroli (4):
dt-bindings: input: adc-keys: allow linux,input-type property
Input: adc-keys - support types that aren't just keyboard keys
arm64: dts: rockchip: add analog audio to ROCK 4D
arm64: dts: rockchip: add HDMI audio on ROCK 4D

.../devicetree/bindings/input/adc-keys.yaml | 3 +
arch/arm64/boot/dts/rockchip/rk3576-rock-4d.dts | 98 ++++++++++++++++++++++
drivers/input/keyboard/adc-keys.c | 16 +++-
3 files changed, 113 insertions(+), 4 deletions(-)
---
base-commit: c6a68d8f7b81a6ce8962885408cc2d0c1f8b9470
change-id: 20250627-rock4d-audio-cfc07f168a08

Best regards,
--
Nicolas Frattaroli <nicolas.frattaroli@collabora.com>