Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

Device-tree bindings for the VPU found in Allwinner SoCs, referred to as the
Video Engine (VE) in Allwinner literature.

The VPU can only access the first 256 MiB of DRAM, that are DMA-mapped starting
from the DRAM base. This requires specific memory allocation and handling.

Required properties:
- compatible		: must be one of the following compatibles:
			- "allwinner,sun4i-a10-video-engine"
			- "allwinner,sun5i-a13-video-engine"
			- "allwinner,sun7i-a20-video-engine"
			- "allwinner,sun8i-a33-video-engine"
			- "allwinner,sun8i-h3-video-engine"
			- "allwinner,sun50i-a64-video-engine"
			- "allwinner,sun50i-h5-video-engine"
			- "allwinner,sun50i-h6-video-engine"
- reg			: register base and length of VE;
- clocks		: list of clock specifiers, corresponding to entries in
			  the clock-names property;
- clock-names		: should contain "ahb", "mod" and "ram" entries;
- resets		: phandle for reset;
- interrupts		: VE interrupt number;
- allwinner,sram	: SRAM region to use with the VE.

Optional properties:
- memory-region		: CMA pool to use for buffers allocation instead of the
			  default CMA pool.

Example:

reserved-memory {
	#address-cells = <1>;
	#size-cells = <1>;
	ranges;

	/* Address must be kept in the lower 256 MiBs of DRAM for VE. */
	cma_pool: default-pool {
		compatible = "shared-dma-pool";
		size = <0x6000000>;
		alloc-ranges = <0x4a000000 0x6000000>;
		reusable;
		linux,cma-default;
	};
};

video-codec@1c0e000 {
	compatible = "allwinner,sun7i-a20-video-engine";
	reg = <0x01c0e000 0x1000>;

	clocks = <&ccu CLK_AHB_VE>, <&ccu CLK_VE>,
		 <&ccu CLK_DRAM_VE>;
	clock-names = "ahb", "mod", "ram";

	resets = <&ccu RST_VE>;
	interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
	allwinner,sram = <&ve_sram 1>;
};