* [PATCH 1/2] dt-bindings: ASoC: rockchip: Add compatible for RK3576 SPDIF
2026-03-16 18:22 [PATCH 0/2] Add SPDIF support to RK3576 Sebastian Reichel
@ 2026-03-16 18:23 ` Sebastian Reichel
2026-03-16 19:44 ` Mark Brown
2026-03-17 7:51 ` Krzysztof Kozlowski
2026-03-16 18:23 ` [PATCH 2/2] arm64: dts: rockchip: Add SPDIF nodes to RK3576 device tree Sebastian Reichel
` (2 subsequent siblings)
3 siblings, 2 replies; 8+ messages in thread
From: Sebastian Reichel @ 2026-03-16 18:23 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Heiko Stuebner
Cc: Alexey Charkov, linux-sound, devicetree, linux-arm-kernel,
linux-rockchip, linux-kernel, kernel, Sebastian Reichel
Add a compatible string for SPDIF on RK3576, which is similar to the
one on RK3568.
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
---
Documentation/devicetree/bindings/sound/rockchip-spdif.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/sound/rockchip-spdif.yaml b/Documentation/devicetree/bindings/sound/rockchip-spdif.yaml
index 56c755c22945..502907dd28b3 100644
--- a/Documentation/devicetree/bindings/sound/rockchip-spdif.yaml
+++ b/Documentation/devicetree/bindings/sound/rockchip-spdif.yaml
@@ -33,6 +33,7 @@ properties:
- const: rockchip,rk3066-spdif
- items:
- enum:
+ - rockchip,rk3576-spdif
- rockchip,rk3588-spdif
- const: rockchip,rk3568-spdif
--
2.51.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH 2/2] arm64: dts: rockchip: Add SPDIF nodes to RK3576 device tree
2026-03-16 18:22 [PATCH 0/2] Add SPDIF support to RK3576 Sebastian Reichel
2026-03-16 18:23 ` [PATCH 1/2] dt-bindings: ASoC: rockchip: Add compatible for RK3576 SPDIF Sebastian Reichel
@ 2026-03-16 18:23 ` Sebastian Reichel
2026-03-17 12:31 ` (subset) [PATCH 0/2] Add SPDIF support to RK3576 Mark Brown
2026-03-24 19:53 ` Heiko Stuebner
3 siblings, 0 replies; 8+ messages in thread
From: Sebastian Reichel @ 2026-03-16 18:23 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Heiko Stuebner
Cc: Alexey Charkov, linux-sound, devicetree, linux-arm-kernel,
linux-rockchip, linux-kernel, kernel, Sebastian Reichel
Add support for all six SPDIF transmitters found in the RK3576.
The nodes have been taken over from the BSP kernel and checked
against the TRM (power domain descriptions from chapter 6.3.2,
addresses from "Table 1-1 Address Mapping", interrupt from
"Table 1-3 RK3576 Interrupt Connection List" (TRM numbers are
off by 32 due to SGI/PPI not being numbered separately). The
TRM lacks a proper clock tree, but fortunately are quite obvious
for the SPDIF IP.
Note, that the RK3576 also has 3 SPDIF receivers, which need their
own binding and are not handled in this patch.
A typical use case for the SPDIF transmitters is audio support for
the Displayport (DP) controller. DP requires inserting PCUV control
bits, which requires software support when using I2S. The SPDIF IP
can add it automatically and thus is preferred.
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
---
arch/arm64/boot/dts/rockchip/rk3576.dtsi | 82 ++++++++++++++++++++++++++++++++
1 file changed, 82 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3576.dtsi b/arch/arm64/boot/dts/rockchip/rk3576.dtsi
index 53ff6bd027af..b03dd69eca3c 100644
--- a/arch/arm64/boot/dts/rockchip/rk3576.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3576.dtsi
@@ -1379,6 +1379,19 @@ vop_mmu: iommu@27d07e00 {
status = "disabled";
};
+ spdif_tx2: spdif-tx@27d20000 {
+ compatible = "rockchip,rk3576-spdif", "rockchip,rk3568-spdif";
+ reg = <0x0 0x27d20000 0x0 0x1000>;
+ interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cru MCLK_SPDIF_TX2>, <&cru HCLK_SPDIF_TX2>;
+ clock-names = "mclk", "hclk";
+ dmas = <&dmac2 28>;
+ dma-names = "tx";
+ power-domains = <&power RK3576_PD_VO0>;
+ #sound-dai-cells = <0>;
+ status = "disabled";
+ };
+
sai5: sai@27d40000 {
compatible = "rockchip,rk3576-sai";
reg = <0x0 0x27d40000 0x0 0x1000>;
@@ -1511,6 +1524,45 @@ dp0_out: port@1 {
};
};
+ spdif_tx3: spdif-tx@27ea0000 {
+ compatible = "rockchip,rk3576-spdif", "rockchip,rk3568-spdif";
+ reg = <0x0 0x27ea0000 0x0 0x1000>;
+ interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cru MCLK_SPDIF_TX3>, <&cru HCLK_SPDIF_TX3>;
+ clock-names = "mclk", "hclk";
+ dmas = <&dmac2 29>;
+ dma-names = "tx";
+ power-domains = <&power RK3576_PD_VO1>;
+ #sound-dai-cells = <0>;
+ status = "disabled";
+ };
+
+ spdif_tx4: spdif-tx@27eb0000 {
+ compatible = "rockchip,rk3576-spdif", "rockchip,rk3568-spdif";
+ reg = <0x0 0x27eb0000 0x0 0x1000>;
+ interrupts = <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cru MCLK_SPDIF_TX4>, <&cru HCLK_SPDIF_TX4>;
+ clock-names = "mclk", "hclk";
+ dmas = <&dmac1 6>;
+ dma-names = "tx";
+ power-domains = <&power RK3576_PD_VO1>;
+ #sound-dai-cells = <0>;
+ status = "disabled";
+ };
+
+ spdif_tx5: spdif-tx@27ec0000 {
+ compatible = "rockchip,rk3576-spdif", "rockchip,rk3568-spdif";
+ reg = <0x0 0x27ec0000 0x0 0x1000>;
+ interrupts = <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cru MCLK_SPDIF_TX5>, <&cru HCLK_SPDIF_TX5>;
+ clock-names = "mclk", "hclk";
+ dmas = <&dmac0 25>;
+ dma-names = "tx";
+ power-domains = <&power RK3576_PD_VO1>;
+ #sound-dai-cells = <0>;
+ status = "disabled";
+ };
+
sai7: sai@27ed0000 {
compatible = "rockchip,rk3576-sai";
reg = <0x0 0x27ed0000 0x0 0x1000>;
@@ -2166,6 +2218,36 @@ &sai4m0_sdi
status = "disabled";
};
+ spdif_tx0: spdif-tx@2a670000 {
+ compatible = "rockchip,rk3576-spdif", "rockchip,rk3568-spdif";
+ reg = <0x0 0x2a670000 0x0 0x1000>;
+ interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cru MCLK_SPDIF_TX0>, <&cru HCLK_SPDIF_TX0>;
+ clock-names = "mclk", "hclk";
+ dmas = <&dmac0 5>;
+ dma-names = "tx";
+ power-domains = <&power RK3576_PD_AUDIO>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&spdifm0_tx0>;
+ #sound-dai-cells = <0>;
+ status = "disabled";
+ };
+
+ spdif_tx1: spdif-tx@2a680000 {
+ compatible = "rockchip,rk3576-spdif", "rockchip,rk3568-spdif";
+ reg = <0x0 0x2a680000 0x0 0x1000>;
+ interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cru MCLK_SPDIF_TX1>, <&cru HCLK_SPDIF_TX1>;
+ clock-names = "mclk", "hclk";
+ dmas = <&dmac1 5>;
+ dma-names = "tx";
+ power-domains = <&power RK3576_PD_AUDIO>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&spdifm0_tx1>;
+ #sound-dai-cells = <0>;
+ status = "disabled";
+ };
+
gic: interrupt-controller@2a701000 {
compatible = "arm,gic-400";
reg = <0x0 0x2a701000 0 0x10000>,
--
2.51.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: (subset) [PATCH 0/2] Add SPDIF support to RK3576
2026-03-16 18:22 [PATCH 0/2] Add SPDIF support to RK3576 Sebastian Reichel
2026-03-16 18:23 ` [PATCH 1/2] dt-bindings: ASoC: rockchip: Add compatible for RK3576 SPDIF Sebastian Reichel
2026-03-16 18:23 ` [PATCH 2/2] arm64: dts: rockchip: Add SPDIF nodes to RK3576 device tree Sebastian Reichel
@ 2026-03-17 12:31 ` Mark Brown
2026-03-24 19:53 ` Heiko Stuebner
3 siblings, 0 replies; 8+ messages in thread
From: Mark Brown @ 2026-03-17 12:31 UTC (permalink / raw)
To: Liam Girdwood, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Heiko Stuebner, Sebastian Reichel
Cc: Alexey Charkov, linux-sound, devicetree, linux-arm-kernel,
linux-rockchip, linux-kernel, kernel
On Mon, 16 Mar 2026 19:22:59 +0100, Sebastian Reichel wrote:
> Add SPDIF support to RK3576
>
> Add SPDIF support on RK3576 in preparation for Displayport audio
> support. My expectation is that Mark picks up the DT binding via
> his audio tree and Heiko picks up the DTS via the Rockchip tree.
>
>
> [...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-7.0
Thanks!
[1/2] dt-bindings: ASoC: rockchip: Add compatible for RK3576 SPDIF
https://git.kernel.org/broonie/sound/c/4eae391a8e4c
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: (subset) [PATCH 0/2] Add SPDIF support to RK3576
2026-03-16 18:22 [PATCH 0/2] Add SPDIF support to RK3576 Sebastian Reichel
` (2 preceding siblings ...)
2026-03-17 12:31 ` (subset) [PATCH 0/2] Add SPDIF support to RK3576 Mark Brown
@ 2026-03-24 19:53 ` Heiko Stuebner
3 siblings, 0 replies; 8+ messages in thread
From: Heiko Stuebner @ 2026-03-24 19:53 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Sebastian Reichel
Cc: Heiko Stuebner, Alexey Charkov, linux-sound, devicetree,
linux-arm-kernel, linux-rockchip, linux-kernel, kernel
On Mon, 16 Mar 2026 19:22:59 +0100, Sebastian Reichel wrote:
> Add SPDIF support on RK3576 in preparation for Displayport audio
> support. My expectation is that Mark picks up the DT binding via
> his audio tree and Heiko picks up the DTS via the Rockchip tree.
>
>
Applied, thanks!
[2/2] arm64: dts: rockchip: Add SPDIF nodes to RK3576 device tree
commit: edd3173f3d4424861c1e036b76f0f30b581bb4bc
Best regards,
--
Heiko Stuebner <heiko@sntech.de>
^ permalink raw reply [flat|nested] 8+ messages in thread