2021-11-26 13:10:28

by Nicolas Frattaroli

[permalink] [raw]
Subject: [PATCH v2 0/2] HDMI Audio on RK356x/Quartz64 Model A

This enables HDMI audio on Quartz64 Model A, and the RK356x SoC in
general. The patches require the VOP2 patchset[1] and my I2S/TDM
controller fix[2] to work.

i2s0 on the RK356x is connected to HDMI, and only has one DMA. I've
confirmed this with the TRM. With [2] the driver now handles this
properly, and does not try to register a capture PCM in this case.

To test this, one needs a video clock, i.e. there is no audio if your
screen is off. I've found that running kmscube momentarily is enough
to make the VOP2 keep the screen turned on indefinitely, which is
a pleasant quirk in this case.

Changes in v2:
- reordered nodes in rk356x.dtsi to conform
- reordered properties in rk356x.dtsi to conform
- add Michael Riesch's Tested-by to rk356x.dtsi

Nicolas Frattaroli (2):
arm64: dts: rockchip: rk356x: Add HDMI audio nodes
arm64: dts: rockchip: Enable HDMI audio on Quartz64 A

.../boot/dts/rockchip/rk3566-quartz64-a.dts | 8 +++++
arch/arm64/boot/dts/rockchip/rk356x.dtsi | 33 +++++++++++++++++++
2 files changed, 41 insertions(+)

--
2.34.0



2021-11-26 13:10:32

by Nicolas Frattaroli

[permalink] [raw]
Subject: [PATCH v2 2/2] arm64: dts: rockchip: Enable HDMI audio on Quartz64 A

This enables the i2s0 controller and the hdmi-sound node on
the PINE64 Quartz64 Model A single-board computer.

Signed-off-by: Nicolas Frattaroli <[email protected]>
---
arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts b/arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts
index a4453c82b03d..0598510dce58 100644
--- a/arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts
@@ -215,6 +215,10 @@ &hdmi_in_vp0 {
status = "okay";
};

+&hdmi_sound {
+ status = "okay";
+};
+
&gpu {
mali-supply = <&vdd_gpu>;
status = "okay";
@@ -444,6 +448,10 @@ regulator-state-mem {
};
};

+&i2s0_8ch {
+ status = "okay";
+};
+
&i2s1_8ch {
pinctrl-names = "default";
pinctrl-0 = <&i2s1m0_sclktx
--
2.34.0