Use the simple-audio-card driver with the hdmi0 QP node as CODEC and
the i2s5 device as CPU.
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 node so that it can be
used as an audio codec node.
Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com>
---
arch/arm64/boot/dts/rockchip/rk3588-base.dtsi | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi b/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
index 8cfa30837ce72..767bdfc06b7ec 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
@@ -1369,6 +1369,22 @@ i2s9_8ch: i2s@fddfc000 {
status = "disabled";
};
+ 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>;
+ };
+ };
+
hdmi0: hdmi@fde80000 {
compatible = "rockchip,rk3588-dw-hdmi-qp";
reg = <0x0 0xfde80000 0x0 0x20000>;
@@ -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 {
--
2.48.1
Hi Detlev,
On 2/3/25 6:16 PM, Detlev Casanova wrote:
> Use the simple-audio-card driver with the hdmi0 QP node as CODEC and
> the i2s5 device as CPU.
>
> 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 node so that it can be
> used as an audio codec node.
>
> Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com>
> ---
> arch/arm64/boot/dts/rockchip/rk3588-base.dtsi | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi b/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
> index 8cfa30837ce72..767bdfc06b7ec 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
> +++ b/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
> @@ -1369,6 +1369,22 @@ i2s9_8ch: i2s@fddfc000 {
> status = "disabled";
> };
>
> + 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>;
> + };
> + };
> +
This is an address/bus-less device, so I believe it needs to be put
among other address/bus-less devices, which for Rockchip SoCs is at the
top of the DT? c.f.
https://www.kernel.org/doc/html/latest/devicetree/bindings/dts-coding-style.html
**I** would put it between the firmware and the pmu-a55 nodes.
Tested-by: Quentin Schulz <quentin.schulz@cherry.de> # RK3588 Tiger Haikou
Thanks!
Quentin
On Tuesday, 4 February 2025 05:14:37 EST Quentin Schulz wrote:
> Hi Detlev,
>
> On 2/3/25 6:16 PM, Detlev Casanova wrote:
> > Use the simple-audio-card driver with the hdmi0 QP node as CODEC and
> > the i2s5 device as CPU.
> >
> > 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 node so that it can be
> > used as an audio codec node.
> >
> > Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com>
> > ---
> >
> > arch/arm64/boot/dts/rockchip/rk3588-base.dtsi | 17 +++++++++++++++++
> > 1 file changed, 17 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
> > b/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi index
> > 8cfa30837ce72..767bdfc06b7ec 100644
> > --- a/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
> > +++ b/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
> > @@ -1369,6 +1369,22 @@ i2s9_8ch: i2s@fddfc000 {
> >
> > status = "disabled";
> >
> > };
> >
> > + 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>;
> > + };
> > + };
> > +
>
> This is an address/bus-less device, so I believe it needs to be put
> among other address/bus-less devices, which for Rockchip SoCs is at the
> top of the DT? c.f.
> https://www.kernel.org/doc/html/latest/devicetree/bindings/dts-coding-style.
> html
>
> **I** would put it between the firmware and the pmu-a55 nodes.
I wasn't sure about this. It makes sense to move it with address-less devices,
but the rk3399 device tree has it above the hdmi node, so I wanted to stay
consistent with that.
> Tested-by: Quentin Schulz <quentin.schulz@cherry.de> # RK3588 Tiger Haikou
>
> Thanks!
> Quentin
Hi Detlev,
Am Donnerstag, 6. Februar 2025, 18:17:51 MEZ schrieb Detlev Casanova:
> On Tuesday, 4 February 2025 05:14:37 EST Quentin Schulz wrote:
> > This is an address/bus-less device, so I believe it needs to be put
> > among other address/bus-less devices, which for Rockchip SoCs is at the
> > top of the DT? c.f.
> > https://www.kernel.org/doc/html/latest/devicetree/bindings/dts-coding-style.
> > html
> >
> > **I** would put it between the firmware and the pmu-a55 nodes.
>
> I wasn't sure about this. It makes sense to move it with address-less devices,
> but the rk3399 device tree has it above the hdmi node, so I wanted to stay
> consistent with that.
the general "rule" is to
- sort by address (the part after the @)
- if that's not present, alphabetically by node-name (not phandle)
and have address-less things more to the top
- &phandle {} references are sorted alphabetically
And yes in the past there were more creative variants ... like keeping
hdmi-stuff together sounds really great [also to me in the past ;-) ],
but then you end up with a huge list of exceptions. [0]
So just following the generic sorting thing causes way less confusion,
hence we go that way for new stuff.
Heiko
© 2016 - 2026 Red Hat, Inc.