# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/soc/qcom/qcom,smem.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: Qualcomm Shared Memory Manager

maintainers:
  - Andy Gross <agross@kernel.org>
  - Bjorn Andersson <bjorn.andersson@linaro.org>

description:
  This binding describes the Qualcomm Shared Memory Manager, a region of
  reserved-memory used to share data between various subsystems and OSes in
  Qualcomm platforms.

properties:
  compatible:
    const: qcom,smem

  reg:
    maxItems: 1

  memory-region:
    maxItems: 1
    description: handle to memory reservation for main SMEM memory region.

  hwlocks:
    maxItems: 1

  qcom,rpm-msg-ram:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: handle to RPM message memory resource

  no-map: true

required:
  - compatible
  - hwlocks

oneOf:
  - required:
      - reg
      - no-map
  - required:
      - memory-region

additionalProperties: false

examples:
  - |
    reserved-memory {
        #address-cells = <1>;
        #size-cells = <1>;
        ranges;

        smem@fa00000 {
            compatible = "qcom,smem";
            reg = <0xfa00000 0x200000>;
            no-map;

            hwlocks = <&tcsr_mutex 3>;
        };
    };
  - |
    reserved-memory {
        #address-cells = <1>;
        #size-cells = <1>;
        ranges;

        smem_region: smem@fa00000 {
            reg = <0xfa00000 0x200000>;
            no-map;
        };
    };

    smem {
        compatible = "qcom,smem";

        memory-region = <&smem_region>;
        qcom,rpm-msg-ram = <&rpm_msg_ram>;

        hwlocks = <&tcsr_mutex 3>;
    };

    soc {
        #address-cells = <1>;
        #size-cells = <1>;
        ranges;

        rpm_msg_ram: sram@fc428000 {
            compatible = "qcom,rpm-msg-ram";
            reg = <0xfc428000 0x4000>;
        };
    };

...
