Qualcomm GLINK edge binding This binding describes a Qualcomm GLINK edge, a fifo based mechanism for communication between subsystem-pairs on various Qualcomm platforms. Two types of edges can be described by the binding; the GLINK RPM edge and a SMEM based edge. - compatible: Usage: required for glink-rpm Value type: <stringlist> Definition: must be "qcom,glink-rpm" - label: Usage: optional Value type: <string> Definition: should specify the subsystem name this edge corresponds to. - interrupts: Usage: required Value type: <prop-encoded-array> Definition: should specify the IRQ used by the remote processor to signal this processor about communication related events - qcom,remote-pid: Usage: required for glink-smem Value type: <u32> Definition: specifies the identifier of the remote endpoint of this edge - qcom,rpm-msg-ram: Usage: required for glink-rpm Value type: <prop-encoded-array> Definition: handle to RPM message memory resource - mboxes: Usage: required Value type: <prop-encoded-array> Definition: reference to the "rpm_hlos" mailbox in APCS, as described in mailbox/mailbox.txt = GLINK DEVICES Each subnode of the GLINK node represent function tied to a virtual communication channel. The name of the nodes are not important. The properties of these nodes are defined by the individual bindings for the specific function - but must contain the following property: - qcom,glink-channels: Usage: required Value type: <stringlist> Definition: a list of channels tied to this function, used for matching the function to a set of virtual channels - qcom,intents: Usage: optional Value type: <prop-encoded-array> Definition: a list of size,amount pairs describing what intents should be preallocated for this virtual channel. This can be used to tweak the default intents available for the channel to meet expectations of the remote. = EXAMPLE The following example represents the GLINK RPM node on a MSM8996 device, with the function for the "rpm_request" channel defined, which is used for regulators and root clocks. apcs_glb: mailbox@9820000 { compatible = "qcom,msm8996-apcs-hmss-global"; reg = <0x9820000 0x1000>; #mbox-cells = <1>; }; rpm_msg_ram: memory@68000 { compatible = "qcom,rpm-msg-ram"; reg = <0x68000 0x6000>; }; rpm-glink { compatible = "qcom,glink-rpm"; interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>; qcom,rpm-msg-ram = <&rpm_msg_ram>; mboxes = <&apcs_glb 0>; rpm-requests { compatible = "qcom,rpm-msm8996"; qcom,glink-channels = "rpm_requests"; qcom,intents = <0x400 5 0x800 1>; ... }; }; |