1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: "http://devicetree.org/schemas/soc/qcom/qcom,smem.yaml#"
5$schema: "http://devicetree.org/meta-schemas/core.yaml#"
6
7title: Qualcomm Shared Memory Manager binding
8
9maintainers:
10  - Andy Gross <agross@kernel.org>
11  - Bjorn Andersson <bjorn.andersson@linaro.org>
12
13description:
14  This binding describes the Qualcomm Shared Memory Manager, a region of
15  reserved-memory used to share data between various subsystems and OSes in
16  Qualcomm platforms.
17
18properties:
19  compatible:
20    const: qcom,smem
21
22  reg:
23    maxItems: 1
24
25  memory-region:
26    maxItems: 1
27    description: handle to memory reservation for main SMEM memory region.
28
29  hwlocks:
30    maxItems: 1
31
32  qcom,rpm-msg-ram:
33    $ref: /schemas/types.yaml#/definitions/phandle
34    description: handle to RPM message memory resource
35
36  no-map: true
37
38required:
39  - compatible
40  - hwlocks
41
42oneOf:
43  - required:
44      - reg
45      - no-map
46  - required:
47      - memory-region
48
49additionalProperties: false
50
51examples:
52  - |
53    reserved-memory {
54        #address-cells = <1>;
55        #size-cells = <1>;
56        ranges;
57
58        smem@fa00000 {
59            compatible = "qcom,smem";
60            reg = <0xfa00000 0x200000>;
61            no-map;
62
63            hwlocks = <&tcsr_mutex 3>;
64        };
65    };
66  - |
67    reserved-memory {
68        #address-cells = <1>;
69        #size-cells = <1>;
70        ranges;
71
72        smem_region: smem@fa00000 {
73            reg = <0xfa00000 0x200000>;
74            no-map;
75        };
76    };
77
78    smem {
79        compatible = "qcom,smem";
80
81        memory-region = <&smem_region>;
82        qcom,rpm-msg-ram = <&rpm_msg_ram>;
83
84        hwlocks = <&tcsr_mutex 3>;
85    };
86
87    soc {
88        #address-cells = <1>;
89        #size-cells = <1>;
90        ranges;
91
92        rpm_msg_ram: sram@fc428000 {
93            compatible = "qcom,rpm-msg-ram";
94            reg = <0xfc428000 0x4000>;
95        };
96    };
97
98...
99