From d1fe1252cad4f01da48811dc5a6b517d0156ce0f Mon Sep 17 00:00:00 2001 From: Patrick Daly Date: Wed, 24 May 2023 15:35:48 -0700 Subject: [PATCH] bindings: Snapshot of dma-buf-heaps bindings Dma-Buf-Heaps bindings snapshot from msm-6.1 branch commit 0285b5bf8b6f ("Merge "ARM: dts: msm: Update proxy device settings""). Change-Id: Ia18e0e612b848ce4ad7bb4000ca35f1a7dea5ec7 Signed-off-by: Patrick Daly --- bindings/arm/msm/qcom_dma_heap.yaml | 108 ++++++++++++++++++++++++++++ bindings/soc/qcom/qcom,mem-buf.yaml | 62 ++++++++++++++++ 2 files changed, 170 insertions(+) create mode 100644 bindings/arm/msm/qcom_dma_heap.yaml create mode 100644 bindings/soc/qcom/qcom,mem-buf.yaml diff --git a/bindings/arm/msm/qcom_dma_heap.yaml b/bindings/arm/msm/qcom_dma_heap.yaml new file mode 100644 index 00000000..a5fc3d92 --- /dev/null +++ b/bindings/arm/msm/qcom_dma_heap.yaml @@ -0,0 +1,108 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/arm/msm/qcom_dma_heap.yaml#" +$schema: "http://devicetree.org/meta-schemas/core.yaml#" + +title: DMA-BUF Heaps Memory Manager binding + +maintainers: + - Chris Goldsworthy + +description: | + DMA-BUF heaps is a memory manager that allows for sharing of buffers between + different processes and between user space and kernel space. DMA-BUF heaps + manages different memory spaces by separating the memory spaces into heaps. + + All child nodes of a qcom,dma-heaps node are interpreted as DMA-BUF heap + configurations for CMA and secure carveout heaps. + +properties: + $nodename: + const: qcom,dma-heaps + description: Container of DMA-BUF heap nodes + + compatible: + items: + -const: qcom,dma-heaps + +patternProperties: + '^qcom,[a-zA-Z]+$': + properties: + qcom,dma-heap-name: + $ref: '/schemas/types.yaml#/definitions/string' + maxItems: 1 + description: The name given to this heap. + + qcom,dma-heap-type: + $ref: '/schemas/types.yaml#/definitions/string' + maxItems: 1 + items: + - enum: + - HEAP_TYPE_SECURE_CARVEOUT + - HEAP_TYPE_CARVEOUT + - HEAP_TYPE_CMA + description: | + The heap type to use for this heap. + + qcom,uncached-heap: + Usage: optional + Value type: + Definition: Denotes whether this heap provides uncached memory or not. + + qcom,dynamic-heap: + Usage: optional + Value type: + Definition: Denotes whether a heap can have memory dynamically added and + subtracted from it. Heaps with this property are assumed to start off + with no memory, and must have memory added to them prior to any use. + + qcom,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. + + qcom,max-align: + $ref: '/schemas/types.yaml#/definitions/uint32' + minItems: 1 + description: | + Maximum alignment of an allocation, in units of page order. + + 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. + + required: + - qcom,dma-heap-name + - qcom,dma-heap-type + +required: + - compatible + +examples: + - | + qcom,dma-heaps { + compatible = "qcom,dma-heaps"; + #address-cells = <1>; + #size-cells = <0>; + + qcom,adsp { + qcom,dma-heap-name = "qcom,adsp"; + qcom,dma-heap-type = ; + memory-region = <&sdsp_mem>; + }; + + qcom,spss { + qcom,dma-heap-name = "qcom,secure-spss"; + qcom,dma-heap-type = ; + memory-region = <&sp_mem>; + }; + }; diff --git a/bindings/soc/qcom/qcom,mem-buf.yaml b/bindings/soc/qcom/qcom,mem-buf.yaml new file mode 100644 index 00000000..6065beb8 --- /dev/null +++ b/bindings/soc/qcom/qcom,mem-buf.yaml @@ -0,0 +1,62 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/soc/qcom/qcom,mem-buf.yaml#" +$schema: "http://devicetree.org/meta-schemas/core.yaml#" + +title: Qualcomm Technologies, Inc. Memory Buffer Sharing binding + +maintainers: + - Chris Goldsworthy + +description: | + The memory buffer sharing driver is used for lending memory + from one virtual machine to another. + +properties: + compatible: + items: + - const: qcom,mem-buf + qcom,vmid: + description: integer ID of the current virtual machine. + + qcom,mem-buf-capabilities: + oneOf: + - const: supplier + description: + Allows the mem-buf driver to supply memory to other VMs through + remote allocation requests. + + - const: consumer + description: + Allows the mem-buf driver to request and accept memory from + other VMs. VMs with only this capability cannot satisfy remote + allocation requests. + + - const: dual + description: + Allows the mem-buf driver to supply memory to other VMs through + remote allocation requests, as well as request and accept memory + from other VMs + +required: + - compatible + - qcom,mem-buf-capabilities + +examples: + - | + qcom,mem-buf { + compatible = "qcom,mem-buf"; + qcom,mem-buf-capabilities = "supplier"; + }; + +description: | + Provides inter-VM message transfer services to the qcom,mem-buf driver + +properties: + compatible: + items: + - const: qcom,mem-buf-msgq + +required: + - compatible