Commit 7a99e87e authored by Bjorn Andersson's avatar Bjorn Andersson
Browse files

dt-bindings: soc: smem: Make indirection optional



In the olden days the Qualcomm shared memory (SMEM) region consisted of
multiple chunks of memory, so SMEM was described as a standalone node
with references to its various memory regions.

But practically all modern Qualcomm platforms has a single reserved memory
region used for SMEM. So rather than having to use two nodes to describe
the one SMEM region, update the binding to allow the reserved-memory
region alone to describe SMEM.

The olden format is preserved as valid, as this is widely used already.

Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Reviewed-by: default avatarVladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Link: https://lore.kernel.org/r/20210930182111.57353-3-bjorn.andersson@linaro.org
parent d0fe6491
Loading
Loading
Loading
Loading
+30 −4
Original line number Diff line number Diff line
@@ -10,14 +10,18 @@ maintainers:
  - Andy Gross <agross@kernel.org>
  - Bjorn Andersson <bjorn.andersson@linaro.org>

description: |
  This binding describes the Qualcomm Shared Memory Manager, used to share data
  between various subsystems and OSes in Qualcomm platforms.
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.
@@ -29,11 +33,19 @@ properties:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: handle to RPM message memory resource

  no-map: true

required:
  - compatible
  - memory-region
  - hwlocks

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

additionalProperties: false

examples:
@@ -43,6 +55,20 @@ examples:
        #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;