1Qualcomm GLINK edge binding
2
3This binding describes a Qualcomm GLINK edge, a fifo based mechanism for
4communication between subsystem-pairs on various Qualcomm platforms. Two types
5of edges can be described by the binding; the GLINK RPM edge and a SMEM based
6edge.
7
8- compatible:
9	Usage: required for glink-rpm
10	Value type: <stringlist>
11	Definition: must be "qcom,glink-rpm"
12
13- label:
14	Usage: optional
15	Value type: <string>
16	Definition: should specify the subsystem name this edge corresponds to.
17
18- interrupts:
19	Usage: required
20	Value type: <prop-encoded-array>
21	Definition: should specify the IRQ used by the remote processor to
22		    signal this processor about communication related events
23
24- qcom,rpm-msg-ram:
25	Usage: required for glink-rpm
26	Value type: <prop-encoded-array>
27	Definition: handle to RPM message memory resource
28
29- mboxes:
30	Usage: required
31	Value type: <prop-encoded-array>
32	Definition: reference to the "rpm_hlos" mailbox in APCS, as described
33		    in mailbox/mailbox.txt
34
35= GLINK DEVICES
36Each subnode of the GLINK node represent function tied to a virtual
37communication channel. The name of the nodes are not important. The properties
38of these nodes are defined by the individual bindings for the specific function
39- but must contain the following property:
40
41- qcom,glink-channels:
42	Usage: required
43	Value type: <stringlist>
44	Definition: a list of channels tied to this function, used for matching
45		    the function to a set of virtual channels
46
47- qcom,intents:
48	Usage: optional
49	Value type: <prop-encoded-array>
50	Definition: a list of size,amount pairs describing what intents should
51		    be preallocated for this virtual channel. This can be used
52		    to tweak the default intents available for the channel to
53		    meet expectations of the remote.
54
55= EXAMPLE
56The following example represents the GLINK RPM node on a MSM8996 device, with
57the function for the "rpm_request" channel defined, which is used for
58regualtors and root clocks.
59
60	apcs_glb: mailbox@9820000 {
61		compatible = "qcom,msm8996-apcs-hmss-global";
62		reg = <0x9820000 0x1000>;
63
64		#mbox-cells = <1>;
65	};
66
67	rpm_msg_ram: memory@68000 {
68		compatible = "qcom,rpm-msg-ram";
69		reg = <0x68000 0x6000>;
70	};
71
72	rpm-glink {
73		compatible = "qcom,glink-rpm";
74
75		interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
76
77		qcom,rpm-msg-ram = <&rpm_msg_ram>;
78
79		mboxes = <&apcs_glb 0>;
80
81		rpm-requests {
82			compatible = "qcom,rpm-msm8996";
83			qcom,glink-channels = "rpm_requests";
84
85			qcom,intents = <0x400 5
86					0x800 1>;
87			...
88		};
89	};
90