ION Memory Manager (ION)

ION is a memory manager that allows for sharing of buffers between different
processes and between user space and kernel space. ION manages different
memory spaces by separating the memory spaces into "heaps". Depending on the
type of heap ION must reserve memory using the msm specific memory reservation
bindings (see Documentation/devicetree/bindings/arm/msm/memory-reserve.txt).

Required properties

- compatible: "qcom,msm-ion"
- reg: The ID of the ION heap.

Optional properties

- compatible: "qcom,msm-ion-reserve" This is required if memory is to be reserved
  as specified by qcom,memory-reservation-size below.
- qcom,heap-align: Alignment of start of the memory in the heap.
- qcom,heap-adjacent: ID of heap this heap needs to be adjacent to.
- qcom,memory-reservation-size: size of reserved memory for the ION heap.
- qcom,memory-reservation-type: type of memory to be reserved
(see memory-reserve.txt for information about memory reservations)

Example:
	qcom,ion {
                 compatible = "qcom,msm-ion";
                 #address-cells = <1>;
                 #size-cells = <0>;

                 qcom,ion-heap@30 { /* SYSTEM HEAP */
                         reg = <30>;
                 };

                 qcom,ion-heap@8 { /* CP_MM HEAP */
                         compatible = "qcom,msm-ion-reserve";
                         reg = <8>;
                         qcom,heap-align = <0x1000>;
                         qcom,memory-reservation-type = "EBI1"; /* reserve EBI memory */
                         qcom,memory-reservation-size = <0x7800000>;
                 };

                 qcom,ion-heap@29 { /* FIRMWARE HEAP */
                         compatible = "qcom,msm-ion-reserve";
                         reg = <29>;
                         qcom,heap-align = <0x20000>;
                         qcom,heap-adjacent = <8>;
                         qcom,memory-reservation-type = "EBI1"; /* reserve EBI memory */
                         qcom,memory-reservation-size = <0xA00000>;

	};
