xref: /freebsd/sys/contrib/device-tree/Bindings/soc/qcom/qcom,smem.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotQualcomm Shared Memory Manager binding
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotThis binding describes the Qualcomm Shared Memory Manager, used to share data
4*c66ec88fSEmmanuel Vadotbetween various subsystems and OSes in Qualcomm platforms.
5*c66ec88fSEmmanuel Vadot
6*c66ec88fSEmmanuel Vadot- compatible:
7*c66ec88fSEmmanuel Vadot	Usage: required
8*c66ec88fSEmmanuel Vadot	Value type: <stringlist>
9*c66ec88fSEmmanuel Vadot	Definition: must be:
10*c66ec88fSEmmanuel Vadot		    "qcom,smem"
11*c66ec88fSEmmanuel Vadot
12*c66ec88fSEmmanuel Vadot- memory-region:
13*c66ec88fSEmmanuel Vadot	Usage: required
14*c66ec88fSEmmanuel Vadot	Value type: <prop-encoded-array>
15*c66ec88fSEmmanuel Vadot	Definition: handle to memory reservation for main SMEM memory region.
16*c66ec88fSEmmanuel Vadot
17*c66ec88fSEmmanuel Vadot- qcom,rpm-msg-ram:
18*c66ec88fSEmmanuel Vadot	Usage: required
19*c66ec88fSEmmanuel Vadot	Value type: <prop-encoded-array>
20*c66ec88fSEmmanuel Vadot	Definition: handle to RPM message memory resource
21*c66ec88fSEmmanuel Vadot
22*c66ec88fSEmmanuel Vadot- hwlocks:
23*c66ec88fSEmmanuel Vadot	Usage: required
24*c66ec88fSEmmanuel Vadot	Value type: <prop-encoded-array>
25*c66ec88fSEmmanuel Vadot	Definition: reference to a hwspinlock used to protect allocations from
26*c66ec88fSEmmanuel Vadot		    the shared memory
27*c66ec88fSEmmanuel Vadot
28*c66ec88fSEmmanuel Vadot= EXAMPLE
29*c66ec88fSEmmanuel VadotThe following example shows the SMEM setup for MSM8974, with a main SMEM region
30*c66ec88fSEmmanuel Vadotat 0xfa00000 and the RPM message ram at 0xfc428000:
31*c66ec88fSEmmanuel Vadot
32*c66ec88fSEmmanuel Vadot	reserved-memory {
33*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
34*c66ec88fSEmmanuel Vadot		#size-cells = <1>;
35*c66ec88fSEmmanuel Vadot		ranges;
36*c66ec88fSEmmanuel Vadot
37*c66ec88fSEmmanuel Vadot		smem_region: smem@fa00000 {
38*c66ec88fSEmmanuel Vadot			reg = <0xfa00000 0x200000>;
39*c66ec88fSEmmanuel Vadot			no-map;
40*c66ec88fSEmmanuel Vadot		};
41*c66ec88fSEmmanuel Vadot	};
42*c66ec88fSEmmanuel Vadot
43*c66ec88fSEmmanuel Vadot	smem@fa00000 {
44*c66ec88fSEmmanuel Vadot		compatible = "qcom,smem";
45*c66ec88fSEmmanuel Vadot
46*c66ec88fSEmmanuel Vadot		memory-region = <&smem_region>;
47*c66ec88fSEmmanuel Vadot		qcom,rpm-msg-ram = <&rpm_msg_ram>;
48*c66ec88fSEmmanuel Vadot
49*c66ec88fSEmmanuel Vadot		hwlocks = <&tcsr_mutex 3>;
50*c66ec88fSEmmanuel Vadot	};
51*c66ec88fSEmmanuel Vadot
52*c66ec88fSEmmanuel Vadot	soc {
53*c66ec88fSEmmanuel Vadot		rpm_msg_ram: memory@fc428000 {
54*c66ec88fSEmmanuel Vadot			compatible = "qcom,rpm-msg-ram";
55*c66ec88fSEmmanuel Vadot			reg = <0xfc428000 0x4000>;
56*c66ec88fSEmmanuel Vadot		};
57*c66ec88fSEmmanuel Vadot	};
58