[PATCH RFC 01/12] dt-bindings: media: Add the Rockchip VEPU580 video encoder
Arun Iyengar via B4 Relay
devnull+aiyengar1990.gmail.com at kernel.org
Tue Nov 10 02:08:03 PST 2026
From: Arun Iyengar <aiyengar1990 at gmail.com>
The VEPU580 (RKVENC) is the H.264/HEVC video encoder of the RK3588. The SoC
has two identical cores at 0xfdbd0000 and 0xfdbe0000, each with its own
clocks, resets, power domain, interrupt and IOMMU.
Describe each core as an independent node. Unlike the vendor kernel, which
groups the cores under software-only "mpp-service" and "ccu" nodes, nothing
in the hardware ties the cores together, so how they are used (one job per
core, or both cores on one stream) is left to the operating system.
Signed-off-by: Arun Iyengar <aiyengar1990 at gmail.com>
---
.../bindings/media/rockchip,rk3588-vepu580.yaml | 93 ++++++++++++++++++++++
MAINTAINERS | 7 ++
2 files changed, 100 insertions(+)
diff --git a/Documentation/devicetree/bindings/media/rockchip,rk3588-vepu580.yaml b/Documentation/devicetree/bindings/media/rockchip,rk3588-vepu580.yaml
new file mode 100644
index 000000000000..2b52b17de93d
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/rockchip,rk3588-vepu580.yaml
@@ -0,0 +1,93 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/rockchip,rk3588-vepu580.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Rockchip VEPU580 video encoder
+
+maintainers:
+ - Heiko Stuebner <heiko at sntech.de>
+
+description:
+ The VEPU580 (also called RKVENC) is the H.264 and HEVC video encoder of the
+ Rockchip RK3588. The SoC has two identical encoder cores, each with its own
+ clocks, resets, power domain, interrupt and IOMMU. Every core is described
+ by its own node; the operating system may use the cores independently or
+ together.
+
+properties:
+ compatible:
+ const: rockchip,rk3588-vepu580
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ clocks:
+ items:
+ - description: AXI bus clock
+ - description: AHB bus clock
+ - description: Encoder core clock
+
+ clock-names:
+ items:
+ - const: aclk
+ - const: hclk
+ - const: core
+
+ resets:
+ items:
+ - description: AXI bus reset
+ - description: AHB bus reset
+ - description: Encoder core reset
+
+ reset-names:
+ items:
+ - const: aclk
+ - const: hclk
+ - const: core
+
+ power-domains:
+ maxItems: 1
+
+ iommus:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - clocks
+ - clock-names
+ - power-domains
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/rockchip,rk3588-cru.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/power/rk3588-power.h>
+ #include <dt-bindings/reset/rockchip,rk3588-cru.h>
+
+ bus {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ video-codec at fdbd0000 {
+ compatible = "rockchip,rk3588-vepu580";
+ reg = <0x0 0xfdbd0000 0x0 0x6000>;
+ interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH 0>;
+ clocks = <&cru ACLK_RKVENC0>, <&cru HCLK_RKVENC0>,
+ <&cru CLK_RKVENC0_CORE>;
+ clock-names = "aclk", "hclk", "core";
+ resets = <&cru SRST_A_RKVENC0>, <&cru SRST_H_RKVENC0>,
+ <&cru SRST_RKVENC0_CORE>;
+ reset-names = "aclk", "hclk", "core";
+ power-domains = <&power RK3588_PD_VENC0>;
+ iommus = <&vepu580_0_mmu>;
+ };
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index 93abbb315065..57d899b1229f 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -24322,6 +24322,13 @@ S: Maintained
F: Documentation/devicetree/bindings/sound/rockchip,rk3576-sai.yaml
F: sound/soc/rockchip/rockchip_sai.*
+ROCKCHIP VEPU580 VIDEO ENCODER DRIVER
+M: Arun Iyengar <aiyengar1990 at gmail.com>
+L: linux-media at vger.kernel.org
+L: linux-rockchip at lists.infradead.org
+S: Maintained
+F: Documentation/devicetree/bindings/media/rockchip,rk3588-vepu580.yaml
+
ROCKCHIP XPCS DRIVER
M: Coia Prant <coiaprant at gmail.com>
L: netdev at vger.kernel.org
--
2.55.0
More information about the Linux-rockchip
mailing list