diff --git a/bindings/arm/msm/msm_ion.yaml b/bindings/arm/msm/msm_ion.yaml new file mode 100644 index 00000000..ff10d2f7 --- /dev/null +++ b/bindings/arm/msm/msm_ion.yaml @@ -0,0 +1,134 @@ +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/arm/msm/msm_ion.yaml#" +$schema: "http://devicetree.org/meta-schemas/core.yaml#" + +title: ION Memory Manager binding + +maintainers: + - Isaac J. Manjarres + +description: | + 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. + + All child nodes of a qcom,msm-ion node are interpreted as ION heap + configurations. + +properties: + $nodename: + const: qcom,ion + description: Container of ION heap nodes + + compatible: + items: + -const: qcom,msm-ion + + '#address-cells': + const: 1 + + '#size-cells': + const: 0 + +patternProperties: + '^qcom,ion-heap@[0-9]+$': + properties: + reg: + maxItems: 1 + description: The ID assigned to this heap. + + memory-region: + $ref: '/schemas/types.yaml#/definitions/phandle' + maxItems: 1 + description: | + Specifies the reserved memory region that this heap will allocate + memory from. This property is only required for heaps that draw memory + from a particular reserved memory region. Refer to + Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt + for more information. + + qcom,ion-heap-type: + $ref: '/schemas/types.yaml#/definitions/string' + maxItems: 1 + items: + - enum: + - SYSTEM + - CARVEOUT + - SECURE_CARVEOUT + - DMA + - HYP_CMA + - SYSTEM_SECURE + - SECURE_DMA + description: | + The heap type to use for this heap. Heaps of type SECURE_CARVEOUT + are expected to contain multiple child nodes, as seen below. + + $nodename: + properties: + memory-region: + $ref: '/schemas/types.yaml#/definitions/phandle' + maxItems: 1 + description: | + Specifies the reserved memory region that this heap will allocate + memory from. Refer to the reserved-memory binding documentation + for more information. + + token: + $ref: '/schemas/types.yaml#/definitions/uint32' + minItems: 1 + description: | + Specifies the set of secure domains which will be able to access + the memory-region. + + required: + - memory-region + - token + + required: + - reg + - qcom,ion-heap-type + +required: + - compatible + - '#address-cells' + - '#size-cells' + +examples: + - | + qcom,ion { + compatible = "qcom,msm-ion"; + #address-cells = <1>; + #size-cells = <0>; + + system_heap: qcom,ion-heap@25 { + reg = <25>; + qcom,ion-heap-type = "SYSTEM"; + }; + + qcom,ion-heap@22 { /* ADSP HEAP */ + reg = <22>; + memory-region = <&adsp_mem>; + qcom,ion-heap-type = "DMA"; + }; + + qcom,ion-heap@10 { /* SECURE DISPLAY HEAP */ + reg = <10>; + memory-region = <&secure_display_memory>; + qcom,ion-heap-type = "HYP_CMA"; + }; + + qcom,ion-heap@9 { + reg = <9>; + qcom,ion-heap-type = "SYSTEM_SECURE"; + }; + + qcom,ion-heap@14 { + reg = <14>; + qcom,ion-heap-type = "SECURE_CARVEOUT"; + node1 { + memory-region = <&cp_region>; + token = ; + }; + }; + };