* [PATCH v2 0/2] arm64: dts: rockchip: Add vdpu 381 and 383 nodes
@ 2025-08-08 19:36 Detlev Casanova
2025-08-08 19:36 ` [PATCH v2 1/2] arm64: dts: rockchip: Add the vdpu381 Video Decoders on RK3588 Detlev Casanova
2025-08-08 19:36 ` [PATCH v2 2/2] arm64: dts: rockchip: Add the vdpu383 Video Decoder on rk3576 Detlev Casanova
0 siblings, 2 replies; 5+ messages in thread
From: Detlev Casanova @ 2025-08-08 19:36 UTC (permalink / raw)
To: linux-kernel
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner,
Nicolas Frattaroli, Detlev Casanova, Kever Yang, Shawn Lin,
Sebastian Reichel, Cristian Ciocaltea, Dragan Simic,
Niklas Cassel, Damon Ding, Emmanuel Gil Peyrot, Alexey Charkov,
Patrick Wildt, Chukun Pan, Diederik de Haas, Chris Morgan,
devicetree, linux-arm-kernel, linux-rockchip, kernel
Add the nodes for vdpu 381 and 383, respectively RK3588 and RK3576.
To keep compatibility with older variants, the reg ranges order is not
in register order so that the function reg range is kept first.
Also adds the corresponding iommu nodes.
Regards,
Detlev.
Changes since v1:
- Set node name to match first reg range
Detlev Casanova (2):
arm64: dts: rockchip: Add the vdpu381 Video Decoders on RK3588
arm64: dts: rockchip: Add the vdpu383 Video Decoder on rk3576
arch/arm64/boot/dts/rockchip/rk3576.dtsi | 36 +++++++++
arch/arm64/boot/dts/rockchip/rk3588-base.dtsi | 74 +++++++++++++++++++
2 files changed, 110 insertions(+)
--
2.50.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2 1/2] arm64: dts: rockchip: Add the vdpu381 Video Decoders on RK3588
2025-08-08 19:36 [PATCH v2 0/2] arm64: dts: rockchip: Add vdpu 381 and 383 nodes Detlev Casanova
@ 2025-08-08 19:36 ` Detlev Casanova
2025-08-10 19:22 ` Link Mauve
2025-08-08 19:36 ` [PATCH v2 2/2] arm64: dts: rockchip: Add the vdpu383 Video Decoder on rk3576 Detlev Casanova
1 sibling, 1 reply; 5+ messages in thread
From: Detlev Casanova @ 2025-08-08 19:36 UTC (permalink / raw)
To: linux-kernel
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner,
Nicolas Frattaroli, Detlev Casanova, Kever Yang, Shawn Lin,
Sebastian Reichel, Cristian Ciocaltea, Dragan Simic,
Niklas Cassel, Damon Ding, Emmanuel Gil Peyrot, Alexey Charkov,
Patrick Wildt, Chukun Pan, Diederik de Haas, Chris Morgan,
devicetree, linux-arm-kernel, linux-rockchip, kernel
Add the vdpu381 Video Decoders to the rk3588-base devicetree.
The RK3588 based SoCs all embed 2 vdpu381 decoders.
This also adds the dedicated IOMMU controllers.
Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com>
---
arch/arm64/boot/dts/rockchip/rk3588-base.dtsi | 74 +++++++++++++++++++
1 file changed, 74 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi b/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
index 70f03e68ba550..189f07c00089e 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
@@ -1252,6 +1252,70 @@ vepu121_3_mmu: iommu@fdbac800 {
#iommu-cells = <0>;
};
+ vdec0: video-codec@fdc38100 {
+ compatible = "rockchip,rk3588-vdec";
+ reg = <0x0 0xfdc38100 0x0 0x500>,
+ <0x0 0xfdc38000 0x0 0x100>,
+ <0x0 0xfdc38600 0x0 0x100>;
+ reg-names = "function", "link", "cache";
+ interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH 0>;
+ clocks = <&cru ACLK_RKVDEC0>, <&cru HCLK_RKVDEC0>, <&cru CLK_RKVDEC0_CA>,
+ <&cru CLK_RKVDEC0_CORE>, <&cru CLK_RKVDEC0_HEVC_CA>;
+ clock-names = "axi", "ahb", "cabac", "core", "hevc_cabac";
+ assigned-clocks = <&cru ACLK_RKVDEC0>, <&cru CLK_RKVDEC0_CORE>,
+ <&cru CLK_RKVDEC0_CA>, <&cru CLK_RKVDEC0_HEVC_CA>;
+ assigned-clock-rates = <800000000>, <600000000>,
+ <600000000>, <1000000000>;
+ iommus = <&vdec0_mmu>;
+ power-domains = <&power RK3588_PD_RKVDEC0>;
+ resets = <&cru SRST_A_RKVDEC0>, <&cru SRST_H_RKVDEC0>, <&cru SRST_RKVDEC0_CA>,
+ <&cru SRST_RKVDEC0_CORE>, <&cru SRST_RKVDEC0_HEVC_CA>;
+ reset-names = "axi", "ahb", "cabac", "core", "hevc_cabac";
+ sram = <&vdec0_sram>;
+ };
+
+ vdec0_mmu: iommu@fdc38700 {
+ compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
+ reg = <0x0 0xfdc38700 0x0 0x40>, <0x0 0xfdc38740 0x0 0x40>;
+ interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH 0>;
+ clocks = <&cru ACLK_RKVDEC0>, <&cru HCLK_RKVDEC0>;
+ clock-names = "aclk", "iface";
+ power-domains = <&power RK3588_PD_RKVDEC0>;
+ #iommu-cells = <0>;
+ };
+
+ vdec1: video-codec@fdc40100 {
+ compatible = "rockchip,rk3588-vdec";
+ reg = <0x0 0xfdc40100 0x0 0x500>,
+ <0x0 0xfdc40000 0x0 0x100>,
+ <0x0 0xfdc40600 0x0 0x100>;
+ reg-names = "function", "link", "cache";
+ interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH 0>;
+ clocks = <&cru ACLK_RKVDEC1>, <&cru HCLK_RKVDEC1>, <&cru CLK_RKVDEC1_CA>,
+ <&cru CLK_RKVDEC1_CORE>, <&cru CLK_RKVDEC1_HEVC_CA>;
+ clock-names = "axi", "ahb", "cabac", "core", "hevc_cabac";
+ assigned-clocks = <&cru ACLK_RKVDEC1>, <&cru CLK_RKVDEC1_CORE>,
+ <&cru CLK_RKVDEC1_CA>, <&cru CLK_RKVDEC1_HEVC_CA>;
+ assigned-clock-rates = <800000000>, <600000000>,
+ <600000000>, <1000000000>;
+ iommus = <&vdec1_mmu>;
+ power-domains = <&power RK3588_PD_RKVDEC1>;
+ resets = <&cru SRST_A_RKVDEC1>, <&cru SRST_H_RKVDEC1>, <&cru SRST_RKVDEC1_CA>,
+ <&cru SRST_RKVDEC1_CORE>, <&cru SRST_RKVDEC1_HEVC_CA>;
+ reset-names = "axi", "ahb", "cabac", "core", "hevc_cabac";
+ sram = <&vdec1_sram>;
+ };
+
+ vdec1_mmu: iommu@fdc40700 {
+ compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
+ reg = <0x0 0xfdc40700 0x0 0x40>, <0x0 0xfdc40740 0x0 0x40>;
+ interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH 0>;
+ clocks = <&cru ACLK_RKVDEC1>, <&cru HCLK_RKVDEC1>;
+ clock-names = "aclk", "iface";
+ power-domains = <&power RK3588_PD_RKVDEC1>;
+ #iommu-cells = <0>;
+ };
+
av1d: video-codec@fdc70000 {
compatible = "rockchip,rk3588-av1-vpu";
reg = <0x0 0xfdc70000 0x0 0x800>;
@@ -3093,6 +3157,16 @@ system_sram2: sram@ff001000 {
ranges = <0x0 0x0 0xff001000 0xef000>;
#address-cells = <1>;
#size-cells = <1>;
+
+ vdec0_sram: codec-sram@0 {
+ reg = <0x0 0x78000>;
+ pool;
+ };
+
+ vdec1_sram: codec-sram@78000 {
+ reg = <0x78000 0x77000>;
+ pool;
+ };
};
pinctrl: pinctrl {
--
2.50.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v2 2/2] arm64: dts: rockchip: Add the vdpu383 Video Decoder on rk3576
2025-08-08 19:36 [PATCH v2 0/2] arm64: dts: rockchip: Add vdpu 381 and 383 nodes Detlev Casanova
2025-08-08 19:36 ` [PATCH v2 1/2] arm64: dts: rockchip: Add the vdpu381 Video Decoders on RK3588 Detlev Casanova
@ 2025-08-08 19:36 ` Detlev Casanova
1 sibling, 0 replies; 5+ messages in thread
From: Detlev Casanova @ 2025-08-08 19:36 UTC (permalink / raw)
To: linux-kernel
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner,
Nicolas Frattaroli, Detlev Casanova, Kever Yang, Shawn Lin,
Sebastian Reichel, Cristian Ciocaltea, Dragan Simic,
Niklas Cassel, Damon Ding, Emmanuel Gil Peyrot, Alexey Charkov,
Patrick Wildt, Chukun Pan, Diederik de Haas, Chris Morgan,
devicetree, linux-arm-kernel, linux-rockchip, kernel
Add the vdpu383 Video Decoder variant to the RK3576 device tree.
Also allow using the dedicated SRAM as a pool.
Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com>
---
arch/arm64/boot/dts/rockchip/rk3576.dtsi | 36 ++++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3576.dtsi b/arch/arm64/boot/dts/rockchip/rk3576.dtsi
index c3cdae8a54941..d16817526b9f6 100644
--- a/arch/arm64/boot/dts/rockchip/rk3576.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3576.dtsi
@@ -1139,6 +1139,41 @@ gpu: gpu@27800000 {
status = "disabled";
};
+ vdec: video-codec@27b00100 {
+ compatible = "rockchip,rk3576-vdec";
+ reg = <0x0 0x27b00100 0x0 0x500>,
+ <0x0 0x27b00000 0x0 0x100>,
+ <0x0 0x27b00600 0x0 0x100>;
+ reg-names = "function", "link", "cache";
+ interrupts = <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cru ACLK_RKVDEC_ROOT>, <&cru HCLK_RKVDEC>,
+ <&cru ACLK_RKVDEC_ROOT_BAK>, <&cru CLK_RKVDEC_CORE>,
+ <&cru CLK_RKVDEC_HEVC_CA>;
+ clock-names = "axi", "ahb", "cabac", "core", "hevc_cabac";
+ assigned-clocks = <&cru ACLK_RKVDEC_ROOT>, <&cru CLK_RKVDEC_CORE>,
+ <&cru ACLK_RKVDEC_ROOT_BAK>, <&cru CLK_RKVDEC_HEVC_CA>;
+ assigned-clock-rates = <600000000>, <600000000>,
+ <500000000>, <1000000000>;
+ iommus = <&vdec_mmu>;
+ power-domains = <&power RK3576_PD_VDEC>;
+ resets = <&cru SRST_A_RKVDEC_BIU>, <&cru SRST_H_RKVDEC_BIU>,
+ <&cru SRST_H_RKVDEC>, <&cru SRST_RKVDEC_CORE>,
+ <&cru SRST_RKVDEC_HEVC_CA>;
+ reset-names = "axi", "ahb", "cabac", "core", "hevc_cabac";
+ sram = <&rkvdec_sram>;
+ };
+
+ vdec_mmu: iommu@27b00800 {
+ compatible = "rockchip,rk3576-iommu", "rockchip,rk3568-iommu";
+ reg = <0x0 0x27b00800 0x0 0x40>, <0x0 0x27b00900 0x0 0x40>;
+ interrupts = <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cru CLK_RKVDEC_CORE>, <&cru HCLK_RKVDEC>;
+ clock-names = "aclk", "iface";
+ power-domains = <&power RK3576_PD_VDEC>;
+ rockchip,disable-mmu-reset;
+ #iommu-cells = <0>;
+ };
+
vop: vop@27d00000 {
compatible = "rockchip,rk3576-vop";
reg = <0x0 0x27d00000 0x0 0x3000>, <0x0 0x27d05000 0x0 0x1000>;
@@ -2428,6 +2463,7 @@ sram: sram@3ff88000 {
/* start address and size should be 4k align */
rkvdec_sram: rkvdec-sram@0 {
reg = <0x0 0x78000>;
+ pool;
};
};
--
2.50.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 1/2] arm64: dts: rockchip: Add the vdpu381 Video Decoders on RK3588
2025-08-08 19:36 ` [PATCH v2 1/2] arm64: dts: rockchip: Add the vdpu381 Video Decoders on RK3588 Detlev Casanova
@ 2025-08-10 19:22 ` Link Mauve
2025-08-11 12:40 ` Detlev Casanova
0 siblings, 1 reply; 5+ messages in thread
From: Link Mauve @ 2025-08-10 19:22 UTC (permalink / raw)
To: Detlev Casanova
Cc: linux-kernel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Heiko Stuebner, Nicolas Frattaroli, Kever Yang, Shawn Lin,
Sebastian Reichel, Cristian Ciocaltea, Dragan Simic,
Niklas Cassel, Damon Ding, Emmanuel Gil Peyrot, Alexey Charkov,
Patrick Wildt, Chukun Pan, Diederik de Haas, Chris Morgan,
devicetree, linux-arm-kernel, linux-rockchip, kernel
Hi,
On Fri, Aug 08, 2025 at 03:36:01PM -0400, Detlev Casanova wrote:
> Add the vdpu381 Video Decoders to the rk3588-base devicetree.
>
> The RK3588 based SoCs all embed 2 vdpu381 decoders.
> This also adds the dedicated IOMMU controllers.
Back in the VEPU121 enablement series[1] it had been decided to not
expose multiple identical cores yet, because there is no infrastructure
yet in the kernel to schedule multiple userland processes on multiple
cores, or (more relevant for your usecase) to even combine two cores to
reach 8K support.
>
> Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com>
> ---
> arch/arm64/boot/dts/rockchip/rk3588-base.dtsi | 74 +++++++++++++++++++
> 1 file changed, 74 insertions(+)
>
[snip]
Thanks,
[1] https://lore.kernel.org/all/20240618183816.77597-1-sebastian.reichel@collabora.com/
--
Link Mauve
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2 1/2] arm64: dts: rockchip: Add the vdpu381 Video Decoders on RK3588
2025-08-10 19:22 ` Link Mauve
@ 2025-08-11 12:40 ` Detlev Casanova
0 siblings, 0 replies; 5+ messages in thread
From: Detlev Casanova @ 2025-08-11 12:40 UTC (permalink / raw)
To: Link Mauve
Cc: linux-kernel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Heiko Stuebner, Nicolas Frattaroli, Kever Yang, Shawn Lin,
Sebastian Reichel, Cristian Ciocaltea, Dragan Simic,
Niklas Cassel, Damon Ding, Emmanuel Gil Peyrot, Alexey Charkov,
Patrick Wildt, Chukun Pan, Diederik de Haas, Chris Morgan,
devicetree, linux-arm-kernel, linux-rockchip, kernel
Hi,
On Sunday, 10 August 2025 15:22:54 EDT Link Mauve wrote:
> Hi,
>
> On Fri, Aug 08, 2025 at 03:36:01PM -0400, Detlev Casanova wrote:
> > Add the vdpu381 Video Decoders to the rk3588-base devicetree.
> >
> > The RK3588 based SoCs all embed 2 vdpu381 decoders.
> > This also adds the dedicated IOMMU controllers.
>
> Back in the VEPU121 enablement series[1] it had been decided to not
> expose multiple identical cores yet, because there is no infrastructure
> yet in the kernel to schedule multiple userland processes on multiple
> cores, or (more relevant for your usecase) to even combine two cores to
> reach 8K support.
That's right, but the device tree still defines the hardware as it is. The
driver, however, will make sure that each instance after the first one is
ignored (at least for now).
> > Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com>
> > ---
> >
> > arch/arm64/boot/dts/rockchip/rk3588-base.dtsi | 74 +++++++++++++++++++
> > 1 file changed, 74 insertions(+)
>
> [snip]
>
> Thanks,
>
> [1]
> https://lore.kernel.org/all/20240618183816.77597-1-sebastian.reichel@collab
> ora.com/
Detlev.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-08-11 12:41 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-08 19:36 [PATCH v2 0/2] arm64: dts: rockchip: Add vdpu 381 and 383 nodes Detlev Casanova
2025-08-08 19:36 ` [PATCH v2 1/2] arm64: dts: rockchip: Add the vdpu381 Video Decoders on RK3588 Detlev Casanova
2025-08-10 19:22 ` Link Mauve
2025-08-11 12:40 ` Detlev Casanova
2025-08-08 19:36 ` [PATCH v2 2/2] arm64: dts: rockchip: Add the vdpu383 Video Decoder on rk3576 Detlev Casanova
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).