# 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 Driver

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:
    $ref: '/schemas/types.yaml#/definitions/uint32'
    description: integer ID of the current virtual machine.

  qcom,mem-buf-capabilities:
    $ref: '/schemas/types.yaml#/definitions/string'
    description: One of supplier, consumer, or dual.
    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

additionalProperties: false

required:
  - compatible
  - qcom,mem-buf-capabilities

examples:
  - |
    qcom,mem-buf {
        compatible = "qcom,mem-buf";
        qcom,mem-buf-capabilities = "supplier";
    };
