Ion Memory Manager

Ion is a memory manager that allows for sharing of buffers via dma-buf.
Ion allows for different types of allocation via an abstraction called
a 'heap'. A heap represents a specific type of memory. Each heap has
a different type. There can be multiple instances of the same heap
type.

Specific heap instances are tied to heap IDs. Heap IDs are not to be specified
in the devicetree.

Required properties for Ion

- compatible: "linux,ion" PLUS a compatible property for the device

All child nodes of a linux,ion node are interpreted as heaps

required properties for heaps

- compatible: compatible string for a heap type PLUS a compatible property
for the specific instance of the heap. Current heap types
-- linux,ion-heap-system
-- linux,ion-heap-system-contig
-- linux,ion-heap-carveout
-- linux,ion-heap-chunk
-- linux,ion-heap-dma
-- linux,ion-heap-custom
-- linux,ion-heap-unmapped

Optional properties
- memory-region: A phandle to a memory region. Required for DMA heap type
(see reserved-memory.txt for details on the reservation)

Example:

	ion {
		compatbile = "hisilicon,ion", "linux,ion";

		ion-system-heap {
			compatbile = "hisilicon,system-heap", "linux,ion-heap-system"
		};

		ion-camera-region {
			compatible = "hisilicon,camera-heap", "linux,ion-heap-dma"
			memory-region = <&camera_region>;
		};

		ion-fb-region {
			compatbile = "hisilicon,fb-heap", "linux,ion-heap-dma"
			memory-region = <&fb_region>;
		};
	}
