For hdmi0_sound, use the simple-audio-card driver with the hdmi0 QP node
as CODEC and the i2s5 device as CPU.

Similarly for hdmi1_sound, the CODEC is the hdmi1 node and the CPU is
i2s6, but only added in the rk3588-extra.dtsi device tree as the second
TX HDMI port is not available on base versions of the SoC.

The simple-audio-card,mclk-fs value is set to 128 as it is done in
the downstream driver.

The #sound-dai-cells value is set to 0 in the hdmi0 and hdmi1 nodes so
that they can be used as audio codec nodes.

Tested-by: Quentin Schulz <quentin.sch...@cherry.de> # RK3588 Tiger Haikou
Signed-off-by: Detlev Casanova <detlev.casan...@collabora.com>
---
 arch/arm64/boot/dts/rockchip/rk3588-base.dtsi  | 17 +++++++++++++++++
 arch/arm64/boot/dts/rockchip/rk3588-extra.dtsi | 17 +++++++++++++++++
 2 files changed, 34 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi 
b/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
index 8cfa30837ce72..f9f888dedd8f0 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
@@ -382,6 +382,22 @@ scmi_reset: protocol@16 {
                };
        };
 
+       hdmi0_sound: hdmi0-sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,mclk-fs = <128>;
+               simple-audio-card,name = "hdmi0";
+               status = "disabled";
+
+               simple-audio-card,codec {
+                       sound-dai = <&hdmi0>;
+               };
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s5_8ch>;
+               };
+       };
+
        pmu-a55 {
                compatible = "arm,cortex-a55-pmu";
                interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition0>;
@@ -1394,6 +1410,7 @@ hdmi0: hdmi@fde80000 {
                reset-names = "ref", "hdp";
                rockchip,grf = <&sys_grf>;
                rockchip,vo-grf = <&vo1_grf>;
+               #sound-dai-cells = <0>;
                status = "disabled";
 
                ports {
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-extra.dtsi 
b/arch/arm64/boot/dts/rockchip/rk3588-extra.dtsi
index 567f8f74c7b3c..cf04847afd040 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-extra.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588-extra.dtsi
@@ -7,6 +7,22 @@
 #include "rk3588-extra-pinctrl.dtsi"
 
 / {
+       hdmi1_sound: hdmi1-sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,mclk-fs = <128>;
+               simple-audio-card,name = "hdmi1";
+               status = "disabled";
+
+               simple-audio-card,codec {
+                       sound-dai = <&hdmi1>;
+               };
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s6_8ch>;
+               };
+       };
+
        usb_host1_xhci: usb@fc400000 {
                compatible = "rockchip,rk3588-dwc3", "snps,dwc3";
                reg = <0x0 0xfc400000 0x0 0x400000>;
@@ -165,6 +181,7 @@ hdmi1: hdmi@fdea0000 {
                reset-names = "ref", "hdp";
                rockchip,grf = <&sys_grf>;
                rockchip,vo-grf = <&vo1_grf>;
+               #sound-dai-cells = <0>;
                status = "disabled";
 
                ports {
-- 
2.48.1

Reply via email to