[PATCH 4/7] media: dt-bindings: Add Rockchip RK3588 VPU720 JPEG decoder

Sascha Hauer <[email protected]>
Newsgroups org.infradead.lists.linux-rockchip,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.kernel.vger.linux-media
Message-ID <[email protected]>
Add a devicetree binding schema for the VPU720 JPEG hardware decoder on
the RK3588, driven by the hantro V4L2 driver.  Documents the single
register window (task registers plus the LLP link-table block at offset
0x300), the JPEG decode interrupt, the aclk/hclk clocks, the AXI/AHB
resets, the IOMMU and the power domain.

The resets and the power domain are required.  The block sits in
RK3588_PD_VDPU and cannot be reached with the domain off, and the driver
takes the resets with reset_control_array_get_optional(), so a node
without them probes and the hard reset fallback in its error recovery
silently does nothing.

The IOMMU stays optional.  The driver never refers to it, it is a platform
integration detail, and rockchip-vpu.yaml does not require it for the
other codec blocks on this SoC either.

Assisted-by: Claude:claude-opus-5
Signed-off-by: Sascha Hauer <[email protected]>
---
 .../bindings/media/rockchip,rk3588-vpu720.yaml     | 93 ++++++++++++++++++++++
 MAINTAINERS                                        |  1 +
 2 files changed, 94 insertions(+)

diff --git a/Documentation/devicetree/bindings/media/rockchip,rk3588-vpu720.yaml b/Documentation/devicetree/bindings/media/rockchip,rk3588-vpu720.yaml
new file mode 100644
index 0000000000000..6bbddea66c9b9
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/rockchip,rk3588-vpu720.yaml
@@ -0,0 +1,93 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/rockchip,rk3588-vpu720.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Rockchip VPU720 JPEG Decoder
+
+maintainers:
+  - Lucas Sinn <[email protected]>
+
+description:
+  The VPU720 is Rockchip's in-house JPEG/MJPEG hardware decoder found on the
+  RK3588.  It is driven by the Hantro V4L2 driver.  A dedicated Link List
+  Processor (LLP) register block, located at offset 0x300 within the same
+  register window, allows the hardware to decode a chain of frames
+  autonomously ("link mode").
+
+properties:
+  compatible:
+    const: rockchip,rk3588-vpu720
+
+  reg:
+    maxItems: 1
+    description:
+      The decoder register window.  It covers both the task (function)
+      registers at offset 0x000 and the LLP (link table) registers at
+      offset 0x300.
+
+  interrupts:
+    maxItems: 1
+
+  interrupt-names:
+    const: vdpu
+
+  clocks:
+    items:
+      - description: AXI clock
+      - description: AHB clock
+
+  clock-names:
+    items:
+      - const: aclk
+      - const: hclk
+
+  resets:
+    items:
+      - description: AXI reset line
+      - description: AHB reset line
+
+  reset-names:
+    items:
+      - const: axi
+      - const: ahb
+
+  power-domains:
+    maxItems: 1
+
+  iommus:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - interrupt-names
+  - clocks
+  - clock-names
+  - resets
+  - reset-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>
+
+    video-codec@fdb90000 {
+        compatible = "rockchip,rk3588-vpu720";
+        reg = <0xfdb90000 0x400>;
+        interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH 0>;
+        interrupt-names = "vdpu";
+        clocks = <&cru ACLK_JPEG_DECODER>, <&cru HCLK_JPEG_DECODER>;
+        clock-names = "aclk", "hclk";
+        resets = <&cru SRST_A_JPEG_DECODER>, <&cru SRST_H_JPEG_DECODER>;
+        reset-names = "axi", "ahb";
+        iommus = <&jpegd_mmu>;
+        power-domains = <&power RK3588_PD_VDPU>;
+    };
diff --git a/MAINTAINERS b/MAINTAINERS
index 9f8d226b305aa..7ef189e4ba237 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -11375,6 +11375,7 @@ L:	[email protected]
 S:	Maintained
 F:	Documentation/devicetree/bindings/media/nxp,imx8mq-vpu.yaml
 F:	Documentation/devicetree/bindings/media/rockchip,rk3568-vepu.yaml
+F:	Documentation/devicetree/bindings/media/rockchip,rk3588-vpu720.yaml
 F:	Documentation/devicetree/bindings/media/rockchip-vpu.yaml
 F:	drivers/media/platform/verisilicon/
 

-- 
2.47.3


_______________________________________________
Linux-rockchip mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-rockchip
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.