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>;
};
