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