* [PATCH 1/2] arm64: dts: rockchip: drop unused i2s0 from rk3399-firefly
@ 2026-09-03 8:27 ` Yaozhong Li
0 siblings, 0 replies; 6+ messages in thread
From: Yaozhong Li @ 2026-09-03 8:27 UTC (permalink / raw)
To: heiko; +Cc: linux-rockchip, linux-arm-kernel, Yaozhong Li
rk3399-firefly.dts enables i2s0, but no sound card on this board
references it: the on-board rt5640 codec is wired to i2s1 and the
S/PDIF transmitter has its own controller. i2s0 is left over and
serves no purpose here.
Leaving it enabled is not free. The pl330 instance that serves the
audio block only has six channels:
dma-pl330 ff6d0000.dma-controller: DBUFF-32x8bytes Num_Chans-6 \
Num_Peri-12 Num_Events-12
i2s0 claims two of them for its unused tx/rx pair, so only four are
left for i2s1 (2), i2s2 (2) and spdif (1). i2s2 loses out and cannot
get a channel for capture:
rockchip-i2s ff8a0000.i2s: Missing dma channel for stream: 1
rockchip-i2s ff8a0000.i2s: ASoC error (-22): at \
snd_soc_pcm_component_new() on ff8a0000.i2s
which makes any card bound to i2s2 fail to probe. This is what
currently prevents HDMI audio from working on this board.
i2s0 is disabled in rk3399-base.dtsi, so simply drop the override.
With it gone, i2s1, i2s2 and spdif all get the channels they ask for.
Tested on a Firefly-RK3399 board.
Signed-off-by: Yaozhong Li <yaozhonguwl@gmail.com>
---
arch/arm64/boot/dts/rockchip/rk3399-firefly.dts | 6 ------
1 file changed, 6 deletions(-)
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
index 0568dfa..fa1b8b8 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
@@ -618,12 +618,6 @@ accelerometer@68 {
};
};
-&i2s0 {
- rockchip,playback-channels = <8>;
- rockchip,capture-channels = <8>;
- status = "okay";
-};
-
&i2s1 {
rockchip,playback-channels = <2>;
rockchip,capture-channels = <2>;
--
2.55.0.windows.3
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH 1/2] arm64: dts: rockchip: drop unused i2s0 from rk3399-firefly
@ 2026-09-03 8:27 ` Yaozhong Li
0 siblings, 0 replies; 6+ messages in thread
From: Yaozhong Li @ 2026-09-03 8:27 UTC (permalink / raw)
To: heiko; +Cc: linux-rockchip, linux-arm-kernel, Yaozhong Li
rk3399-firefly.dts enables i2s0, but no sound card on this board
references it: the on-board rt5640 codec is wired to i2s1 and the
S/PDIF transmitter has its own controller. i2s0 is left over and
serves no purpose here.
Leaving it enabled is not free. The pl330 instance that serves the
audio block only has six channels:
dma-pl330 ff6d0000.dma-controller: DBUFF-32x8bytes Num_Chans-6 \
Num_Peri-12 Num_Events-12
i2s0 claims two of them for its unused tx/rx pair, so only four are
left for i2s1 (2), i2s2 (2) and spdif (1). i2s2 loses out and cannot
get a channel for capture:
rockchip-i2s ff8a0000.i2s: Missing dma channel for stream: 1
rockchip-i2s ff8a0000.i2s: ASoC error (-22): at \
snd_soc_pcm_component_new() on ff8a0000.i2s
which makes any card bound to i2s2 fail to probe. This is what
currently prevents HDMI audio from working on this board.
i2s0 is disabled in rk3399-base.dtsi, so simply drop the override.
With it gone, i2s1, i2s2 and spdif all get the channels they ask for.
Tested on a Firefly-RK3399 board.
Signed-off-by: Yaozhong Li <yaozhonguwl@gmail.com>
---
arch/arm64/boot/dts/rockchip/rk3399-firefly.dts | 6 ------
1 file changed, 6 deletions(-)
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
index 0568dfa..fa1b8b8 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
@@ -618,12 +618,6 @@ accelerometer@68 {
};
};
-&i2s0 {
- rockchip,playback-channels = <8>;
- rockchip,capture-channels = <8>;
- status = "okay";
-};
-
&i2s1 {
rockchip,playback-channels = <2>;
rockchip,capture-channels = <2>;
--
2.55.0.windows.3
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH 2/2] arm64: dts: rockchip: enable HDMI audio on rk3399-firefly
2026-09-03 8:27 ` Yaozhong Li
@ 2026-09-03 8:27 ` Yaozhong Li
-1 siblings, 0 replies; 6+ messages in thread
From: Yaozhong Li @ 2026-09-03 8:27 UTC (permalink / raw)
To: heiko; +Cc: linux-rockchip, linux-arm-kernel, Yaozhong Li
The Firefly-RK3399 exposes audio over its HDMI 2.0 connector, but
hdmi_sound is left disabled, so the only outputs available are the
analog rt5640 jacks and S/PDIF.
Enable it. This depends on i2s0 no longer being enabled, otherwise
i2s2 cannot get a DMA channel for capture and the card fails to
probe.
Tested on a Firefly-RK3399 board with a 1920x1080 display attached:
the hdmi-sound card is registered and plays at both 44.1 and 48 kHz,
alongside the existing rt5640 and S/PDIF cards.
Signed-off-by: Yaozhong Li <yaozhonguwl@gmail.com>
---
arch/arm64/boot/dts/rockchip/rk3399-firefly.dts | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
index fa1b8b8..3d1f84f 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
@@ -311,6 +311,10 @@ &hdmi {
status = "okay";
};
+&hdmi_sound {
+ status = "okay";
+};
+
&i2c0 {
clock-frequency = <400000>;
i2c-scl-rising-time-ns = <168>;
--
2.55.0.windows.3
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH 2/2] arm64: dts: rockchip: enable HDMI audio on rk3399-firefly
@ 2026-09-03 8:27 ` Yaozhong Li
0 siblings, 0 replies; 6+ messages in thread
From: Yaozhong Li @ 2026-09-03 8:27 UTC (permalink / raw)
To: heiko; +Cc: linux-rockchip, linux-arm-kernel, Yaozhong Li
The Firefly-RK3399 exposes audio over its HDMI 2.0 connector, but
hdmi_sound is left disabled, so the only outputs available are the
analog rt5640 jacks and S/PDIF.
Enable it. This depends on i2s0 no longer being enabled, otherwise
i2s2 cannot get a DMA channel for capture and the card fails to
probe.
Tested on a Firefly-RK3399 board with a 1920x1080 display attached:
the hdmi-sound card is registered and plays at both 44.1 and 48 kHz,
alongside the existing rt5640 and S/PDIF cards.
Signed-off-by: Yaozhong Li <yaozhonguwl@gmail.com>
---
arch/arm64/boot/dts/rockchip/rk3399-firefly.dts | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
index fa1b8b8..3d1f84f 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
@@ -311,6 +311,10 @@ &hdmi {
status = "okay";
};
+&hdmi_sound {
+ status = "okay";
+};
+
&i2c0 {
clock-frequency = <400000>;
i2c-scl-rising-time-ns = <168>;
--
2.55.0.windows.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] arm64: dts: rockchip: drop unused i2s0 from rk3399-firefly
2026-09-03 8:27 ` Yaozhong Li
@ 2026-09-21 6:34 ` Yaozhong Li
-1 siblings, 0 replies; 6+ messages in thread
From: Yaozhong Li @ 2026-09-21 6:34 UTC (permalink / raw)
To: heiko; +Cc: linux-rockchip, linux-arm-kernel
Please drop this series.
The commit message claims that nothing on this board uses i2s0. That is
true for the DAI, but I missed that its pin groups also list GPIO4_A0:
i2s0-8ch-bus ... <4 RK_PA0 1 &pcfg_pull_none>
i2s0-8ch-bus-bclk-off ... <4 RK_PA0 1 &pcfg_pull_none>
That pin carries SCLK_I2S_8CH_OUT, the MCLK the RT5640 runs on:
rt5640: rt5640@1c {
clocks = <&cru SCLK_I2S_8CH_OUT>;
clock-names = "mclk";
};
Dropping the whole &i2s0 override therefore leaves the codec clock pin
without its mux configuration and analog audio stops working. I have
reproduced that on the board. Sorry for not catching it before sending.
The correct change must split the MCLK pin into its own group, attach
that group to i2s1, and disable the otherwise unused i2s0 controller in
the same patch.
Patch 2/2 depends on this one - with i2s0 still enabled there is no
pl330 channel left for i2s2 - so it cannot stand on its own either. It
is resent unchanged as part of the v2 series rather than separately.
Could you please mark both patches as superseded in patchwork.
Sorry for the noise.
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH 1/2] arm64: dts: rockchip: drop unused i2s0 from rk3399-firefly
@ 2026-09-21 6:34 ` Yaozhong Li
0 siblings, 0 replies; 6+ messages in thread
From: Yaozhong Li @ 2026-09-21 6:34 UTC (permalink / raw)
To: heiko; +Cc: linux-rockchip, linux-arm-kernel
Please drop this series.
The commit message claims that nothing on this board uses i2s0. That is
true for the DAI, but I missed that its pin groups also list GPIO4_A0:
i2s0-8ch-bus ... <4 RK_PA0 1 &pcfg_pull_none>
i2s0-8ch-bus-bclk-off ... <4 RK_PA0 1 &pcfg_pull_none>
That pin carries SCLK_I2S_8CH_OUT, the MCLK the RT5640 runs on:
rt5640: rt5640@1c {
clocks = <&cru SCLK_I2S_8CH_OUT>;
clock-names = "mclk";
};
Dropping the whole &i2s0 override therefore leaves the codec clock pin
without its mux configuration and analog audio stops working. I have
reproduced that on the board. Sorry for not catching it before sending.
The correct change must split the MCLK pin into its own group, attach
that group to i2s1, and disable the otherwise unused i2s0 controller in
the same patch.
Patch 2/2 depends on this one - with i2s0 still enabled there is no
pl330 channel left for i2s2 - so it cannot stand on its own either. It
is resent unchanged as part of the v2 series rather than separately.
Could you please mark both patches as superseded in patchwork.
Sorry for the noise.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-09-21 6:34 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-03 8:27 [PATCH 1/2] arm64: dts: rockchip: drop unused i2s0 from rk3399-firefly Yaozhong Li
2026-09-03 8:27 ` Yaozhong Li
2026-09-03 8:27 ` [PATCH 2/2] arm64: dts: rockchip: enable HDMI audio on rk3399-firefly Yaozhong Li
2026-09-03 8:27 ` Yaozhong Li
2026-09-21 6:34 ` [PATCH 1/2] arm64: dts: rockchip: drop unused i2s0 from rk3399-firefly Yaozhong Li
2026-09-21 6:34 ` Yaozhong Li
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.