Back to home page

OSCL-LXR

 
 

    


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         };