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