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,remote-pid: 25 Usage: required for glink-smem 26 Value type: <u32> 27 Definition: specifies the identifier of the remote endpoint of this edge 28 29- qcom,rpm-msg-ram: 30 Usage: required for glink-rpm 31 Value type: <prop-encoded-array> 32 Definition: handle to RPM message memory resource 33 34- mboxes: 35 Usage: required 36 Value type: <prop-encoded-array> 37 Definition: reference to the "rpm_hlos" mailbox in APCS, as described 38 in mailbox/mailbox.txt 39 40= GLINK DEVICES 41Each subnode of the GLINK node represent function tied to a virtual 42communication channel. The name of the nodes are not important. The properties 43of these nodes are defined by the individual bindings for the specific function 44- but must contain the following property: 45 46- qcom,glink-channels: 47 Usage: required 48 Value type: <stringlist> 49 Definition: a list of channels tied to this function, used for matching 50 the function to a set of virtual channels 51 52- qcom,intents: 53 Usage: optional 54 Value type: <prop-encoded-array> 55 Definition: a list of size,amount pairs describing what intents should 56 be preallocated for this virtual channel. This can be used 57 to tweak the default intents available for the channel to 58 meet expectations of the remote. 59 60= EXAMPLE 61The following example represents the GLINK RPM node on a MSM8996 device, with 62the function for the "rpm_request" channel defined, which is used for 63regulators and root clocks. 64 65 apcs_glb: mailbox@9820000 { 66 compatible = "qcom,msm8996-apcs-hmss-global"; 67 reg = <0x9820000 0x1000>; 68 69 #mbox-cells = <1>; 70 }; 71 72 rpm_msg_ram: memory@68000 { 73 compatible = "qcom,rpm-msg-ram"; 74 reg = <0x68000 0x6000>; 75 }; 76 77 rpm-glink { 78 compatible = "qcom,glink-rpm"; 79 80 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>; 81 82 qcom,rpm-msg-ram = <&rpm_msg_ram>; 83 84 mboxes = <&apcs_glb 0>; 85 86 rpm-requests { 87 compatible = "qcom,rpm-msm8996"; 88 qcom,glink-channels = "rpm_requests"; 89 90 qcom,intents = <0x400 5 91 0x800 1>; 92 ... 93 }; 94 }; 95