From: Arun Iyengar via B4 Relay <devnull+aiyengar1990.gmail.com@kernel.org>
To: Mauro Carvalho Chehab <mchehab@kernel.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Heiko Stuebner <heiko@sntech.de>,
Philipp Zabel <p.zabel@pengutronix.de>
Cc: linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org,
"Paul Kocialkowski" <paulk@sys-base.io>,
"Sven Püschel" <s.pueschel@pengutronix.de>,
"Nicolas Dufresne" <nicolas.dufresne@collabora.com>,
"Detlev Casanova" <detlev.casanova@collabora.com>,
"Hans Verkuil" <hverkuil@kernel.org>,
"Jiaxing Hu" <gahing@gahingwoo.com>,
"Arun Iyengar" <aiyengar1990@gmail.com>
Subject: [PATCH RFC 01/12] dt-bindings: media: Add the Rockchip VEPU580 video encoder
Date: Tue, 10 Nov 2026 10:08:03 +0000 [thread overview]
Message-ID: <20261110-rkvenc-v1-1-ea8b47122d8c@gmail.com> (raw)
In-Reply-To: <20261110-rkvenc-v1-0-ea8b47122d8c@gmail.com>
From: Arun Iyengar <aiyengar1990@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@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@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@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@gmail.com>
+L: linux-media@vger.kernel.org
+L: linux-rockchip@lists.infradead.org
+S: Maintained
+F: Documentation/devicetree/bindings/media/rockchip,rk3588-vepu580.yaml
+
ROCKCHIP XPCS DRIVER
M: Coia Prant <coiaprant@gmail.com>
L: netdev@vger.kernel.org
--
2.55.0
next prev parent reply other threads:[~2026-11-10 10:08 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-10 10:08 [PATCH RFC 00/12] media: rockchip: Add a VEPU580 stateless H.264/HEVC encoder driver for the RK3588 Arun Iyengar via B4 Relay
2026-11-10 10:08 ` Arun Iyengar via B4 Relay [this message]
2026-11-10 10:08 ` [PATCH RFC 02/12] media: rockchip: Add a VEPU580 stateless video encoder driver Arun Iyengar via B4 Relay
2026-11-10 10:08 ` [PATCH RFC 03/12] media: rockchip: rkvenc: Prepare the VEPU580 helpers for a second codec Arun Iyengar via B4 Relay
2026-11-10 10:08 ` [PATCH RFC 04/12] media: rockchip: rkvenc: Add HEVC encoding Arun Iyengar via B4 Relay
2026-11-10 10:08 ` [PATCH RFC 05/12] media: rockchip: rkvenc: Don't enable adaptive QP with the row rate control Arun Iyengar via B4 Relay
2026-11-10 10:08 ` [PATCH RFC 06/12] media: rockchip: rkvenc: Use MPP's moving-scene H.264 RDO tuning Arun Iyengar via B4 Relay
2026-11-10 10:08 ` [PATCH RFC 07/12] media: rockchip: rkvenc: Encode pictures wider than 4096 pixels Arun Iyengar via B4 Relay
2026-11-10 10:08 ` [PATCH RFC 08/12] media: rockchip: rkvenc: Encode HEVC wider than 4096 pixels in tile columns Arun Iyengar via B4 Relay
2026-11-10 10:08 ` [PATCH RFC 09/12] media: rockchip: rkvenc: Limit the QP of the HEVC I pictures to 15..51 Arun Iyengar via B4 Relay
2026-11-10 10:08 ` [PATCH RFC 10/12] media: rockchip: rkvenc: Re-encode oversized HEVC pictures Arun Iyengar via B4 Relay
2026-11-10 10:08 ` [PATCH RFC 11/12] media: rockchip: rkvenc: Offer VBR for H.264 encoding Arun Iyengar via B4 Relay
2026-11-10 10:08 ` [PATCH RFC 12/12] arm64: dts: rockchip: Add the VEPU580 encoder cores to the RK3588 Arun Iyengar via B4 Relay
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261110-rkvenc-v1-1-ea8b47122d8c@gmail.com \
--to=devnull+aiyengar1990.gmail.com@kernel.org \
--cc=aiyengar1990@gmail.com \
--cc=conor+dt@kernel.org \
--cc=detlev.casanova@collabora.com \
--cc=devicetree@vger.kernel.org \
--cc=gahing@gahingwoo.com \
--cc=heiko@sntech.de \
--cc=hverkuil@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=mchehab@kernel.org \
--cc=nicolas.dufresne@collabora.com \
--cc=p.zabel@pengutronix.de \
--cc=paulk@sys-base.io \
--cc=robh@kernel.org \
--cc=s.pueschel@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®