[v2,7/7] arm64: dts: allwinner: sun50i-h616: Add video engine

Message ID 20260711135959.3616919-8-wens@kernel.org (mailing list archive)
State New
Headers
Series arm64: allwinner: h616: Support Video Engine |

Commit Message

Chen-Yu Tsai July 11, 2026, 1:59 p.m. UTC
From: Jernej Skrabec <jernej.skrabec@gmail.com>

The H616 SoC has a video engine, and two SRAM regions needed by it.

Add the video engine to the dtsi file.

Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
[wens@kernel.org: Add VE SRAM region and commit message]
Signed-off-by: Chen-Yu Tsai <wens@kernel.org>
---
Changes since v1:
- Corrected second IOMMU port
---
 arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 12 ++++++++++++
 1 file changed, 12 insertions(+)
  

Comments

sashiko-bot@kernel.org July 11, 2026, 2:11 p.m. UTC | #1
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Low] The video-codec node references a non-existent label 've_sram', causing a Device Tree Compiler (DTC) build failure.
- [Low] The `allwinner,sram` property incorrectly references the generic `mmio-sram` parent controller node (`&sram_c`) instead of an `sram-section` child node.
--

--- Patch [7]: [PATCH v2 7/7] arm64: dts: allwinner: sun50i-h616: Add video engine ---
commit f351af2797d5cc85ad73122a961f9b9e63f82153
Author: Jernej Skrabec <jernej.skrabec@gmail.com>

arm64: dts: allwinner: sun50i-h616: Add video engine

This commit adds the video engine node to the sun50i-h616 device tree file.
It defines the required memory regions, clocks, resets, interrupts, and
SRAM nodes needed by the engine.

> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
> --- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
[ ... ]
> @@ -175,6 +175,18 @@ crypto: crypto@1904000 {
>  			resets = <&ccu RST_BUS_CE>;
>  		};
>  
> +		video-codec@1c0e000 {
> +			compatible = "allwinner,sun50i-h616-video-engine";
> +			reg = <0x01c0e000 0x2000>;
> +			clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>,
> +				 <&ccu CLK_MBUS_VE>;
> +			clock-names = "ahb", "mod", "ram";
> +			resets = <&ccu RST_BUS_VE>;
> +			interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
> +			iommus = <&iommu 3>, <&iommu 2>;
> +			allwinner,sram = <&ve_sram 1>, <&sram_c 1>;

[Severity: Low]
Is the ve_sram label defined elsewhere? The Device Tree Compiler (DTC) will
fail to build because of this unresolved reference. It appears the sram_c1
node and its ve_sram child section might be missing.

[Severity: Low]
Does the second phandle correctly reference an sram-section child node?
Referencing &sram_c here points to the generic mmio-sram parent controller
node, which lacks #sram-cells. This violates the bindings and triggers a
dt-validate schema failure.

> +		};
> +
  
Andre Przywara July 11, 2026, 3:13 p.m. UTC | #2
Hi,

On 7/11/26 15:59, Chen-Yu Tsai wrote:
> From: Jernej Skrabec <jernej.skrabec@gmail.com>
> 
> The H616 SoC has a video engine, and two SRAM regions needed by it.
> 
> Add the video engine to the dtsi file.
> 
> Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
> [wens@kernel.org: Add VE SRAM region and commit message]
> Signed-off-by: Chen-Yu Tsai <wens@kernel.org>

Checked against the binding and the manual: clocks, regs, interrupts and 
reset matches. Also test-built the DTB: that worked fine, not sure what 
Sashiko was complaining about.

Reviewed-by: Andre Przywara <andre.przywara@arm.com>

Thanks,
Andre

> ---
> Changes since v1:
> - Corrected second IOMMU port
> ---
>   arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 12 ++++++++++++
>   1 file changed, 12 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
> index 1598e86259ab..c6b3a3f8359a 100644
> --- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
> @@ -175,6 +175,18 @@ crypto: crypto@1904000 {
>   			resets = <&ccu RST_BUS_CE>;
>   		};
>   
> +		video-codec@1c0e000 {
> +			compatible = "allwinner,sun50i-h616-video-engine";
> +			reg = <0x01c0e000 0x2000>;
> +			clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>,
> +				 <&ccu CLK_MBUS_VE>;
> +			clock-names = "ahb", "mod", "ram";
> +			resets = <&ccu RST_BUS_VE>;
> +			interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
> +			iommus = <&iommu 3>, <&iommu 2>;
> +			allwinner,sram = <&ve_sram 1>, <&sram_c 1>;
> +		};
> +
>   		syscon: syscon@3000000 {
>   			compatible = "allwinner,sun50i-h616-system-control";
>   			reg = <0x03000000 0x1000>;
  

Patch

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
index 1598e86259ab..c6b3a3f8359a 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
@@ -175,6 +175,18 @@  crypto: crypto@1904000 {
 			resets = <&ccu RST_BUS_CE>;
 		};
 
+		video-codec@1c0e000 {
+			compatible = "allwinner,sun50i-h616-video-engine";
+			reg = <0x01c0e000 0x2000>;
+			clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>,
+				 <&ccu CLK_MBUS_VE>;
+			clock-names = "ahb", "mod", "ram";
+			resets = <&ccu RST_BUS_VE>;
+			interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
+			iommus = <&iommu 3>, <&iommu 2>;
+			allwinner,sram = <&ve_sram 1>, <&sram_c 1>;
+		};
+
 		syscon: syscon@3000000 {
 			compatible = "allwinner,sun50i-h616-system-control";
 			reg = <0x03000000 0x1000>;