0001 Qualcomm GLINK edge binding
0002
0003 This binding describes a Qualcomm GLINK edge, a fifo based mechanism for
0004 communication between subsystem-pairs on various Qualcomm platforms. Two types
0005 of edges can be described by the binding; the GLINK RPM edge and a SMEM based
0006 edge.
0007
0008 - compatible:
0009 Usage: required for glink-rpm
0010 Value type: <stringlist>
0011 Definition: must be "qcom,glink-rpm"
0012
0013 - label:
0014 Usage: optional
0015 Value type: <string>
0016 Definition: should specify the subsystem name this edge corresponds to.
0017
0018 - interrupts:
0019 Usage: required
0020 Value type: <prop-encoded-array>
0021 Definition: should specify the IRQ used by the remote processor to
0022 signal this processor about communication related events
0023
0024 - qcom,remote-pid:
0025 Usage: required for glink-smem
0026 Value type: <u32>
0027 Definition: specifies the identifier of the remote endpoint of this edge
0028
0029 - qcom,rpm-msg-ram:
0030 Usage: required for glink-rpm
0031 Value type: <prop-encoded-array>
0032 Definition: handle to RPM message memory resource
0033
0034 - mboxes:
0035 Usage: required
0036 Value type: <prop-encoded-array>
0037 Definition: reference to the "rpm_hlos" mailbox in APCS, as described
0038 in mailbox/mailbox.txt
0039
0040 = GLINK DEVICES
0041 Each subnode of the GLINK node represent function tied to a virtual
0042 communication channel. The name of the nodes are not important. The properties
0043 of these nodes are defined by the individual bindings for the specific function
0044 - but must contain the following property:
0045
0046 - qcom,glink-channels:
0047 Usage: required
0048 Value type: <stringlist>
0049 Definition: a list of channels tied to this function, used for matching
0050 the function to a set of virtual channels
0051
0052 - qcom,intents:
0053 Usage: optional
0054 Value type: <prop-encoded-array>
0055 Definition: a list of size,amount pairs describing what intents should
0056 be preallocated for this virtual channel. This can be used
0057 to tweak the default intents available for the channel to
0058 meet expectations of the remote.
0059
0060 = EXAMPLE
0061 The following example represents the GLINK RPM node on a MSM8996 device, with
0062 the function for the "rpm_request" channel defined, which is used for
0063 regulators and root clocks.
0064
0065 apcs_glb: mailbox@9820000 {
0066 compatible = "qcom,msm8996-apcs-hmss-global";
0067 reg = <0x9820000 0x1000>;
0068
0069 #mbox-cells = <1>;
0070 };
0071
0072 rpm_msg_ram: memory@68000 {
0073 compatible = "qcom,rpm-msg-ram";
0074 reg = <0x68000 0x6000>;
0075 };
0076
0077 rpm-glink {
0078 compatible = "qcom,glink-rpm";
0079
0080 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
0081
0082 qcom,rpm-msg-ram = <&rpm_msg_ram>;
0083
0084 mboxes = <&apcs_glb 0>;
0085
0086 rpm-requests {
0087 compatible = "qcom,rpm-msm8996";
0088 qcom,glink-channels = "rpm_requests";
0089
0090 qcom,intents = <0x400 5
0091 0x800 1>;
0092 ...
0093 };
0094 };