The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/soc/qcom/qcom,smd.txt

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 Qualcomm Shared Memory Driver (SMD) binding
    2 
    3 This binding describes the Qualcomm Shared Memory Driver, a fifo based
    4 communication channel for sending data between the various subsystems in
    5 Qualcomm platforms.
    6 
    7 - compatible:
    8         Usage: required
    9         Value type: <stringlist>
   10         Definition: must be "qcom,smd"
   11 
   12 = EDGES
   13 
   14 Each subnode of the SMD node represents a remote subsystem or a remote
   15 processor of some sort - or in SMD language an "edge". The name of the edges
   16 are not important.
   17 The edge is described by the following properties:
   18 
   19 - interrupts:
   20         Usage: required
   21         Value type: <prop-encoded-array>
   22         Definition: should specify the IRQ used by the remote processor to
   23                     signal this processor about communication related updates
   24 
   25 - mboxes:
   26         Usage: required
   27         Value type: <prop-encoded-array>
   28         Definition: reference to the associated doorbell in APCS, as described
   29                     in mailbox/mailbox.txt
   30 
   31 - qcom,ipc:
   32         Usage: required, unless mboxes is specified
   33         Value type: <prop-encoded-array>
   34         Definition: three entries specifying the outgoing ipc bit used for
   35                     signaling the remote processor:
   36                     - phandle to a syscon node representing the apcs registers
   37                     - u32 representing offset to the register within the syscon
   38                     - u32 representing the ipc bit within the register
   39 
   40 - qcom,smd-edge:
   41         Usage: required
   42         Value type: <u32>
   43         Definition: the identifier of the remote processor in the smd channel
   44                     allocation table
   45 
   46 - qcom,remote-pid:
   47         Usage: optional
   48         Value type: <u32>
   49         Definition: the identifier for the remote processor as known by the rest
   50                     of the system.
   51 
   52 - label:
   53         Usage: optional
   54         Value type: <string>
   55         Definition: name of the edge, used for debugging and identification
   56                     purposes. The node name will be used if this is not
   57                     present.
   58 
   59 = SMD DEVICES
   60 
   61 In turn, subnodes of the "edges" represent devices tied to SMD channels on that
   62 "edge". The names of the devices are not important. The properties of these
   63 nodes are defined by the individual bindings for the SMD devices - but must
   64 contain the following property:
   65 
   66 - qcom,smd-channels:
   67         Usage: required
   68         Value type: <stringlist>
   69         Definition: a list of channels tied to this device, used for matching
   70                     the device to channels
   71 
   72 = EXAMPLE
   73 
   74 The following example represents a smd node, with one edge representing the
   75 "rpm" subsystem. For the "rpm" subsystem we have a device tied to the
   76 "rpm_request" channel.
   77 
   78         apcs: syscon@f9011000 {
   79                 compatible = "syscon";
   80                 reg = <0xf9011000 0x1000>;
   81         };
   82 
   83         smd {
   84                 compatible = "qcom,smd";
   85 
   86                 rpm {
   87                         interrupts = <0 168 1>;
   88                         qcom,ipc = <&apcs 8 0>;
   89                         qcom,smd-edge = <15>;
   90 
   91                         rpm_requests {
   92                                 compatible = "qcom,rpm-msm8974";
   93                                 qcom,smd-channels = "rpm_requests";
   94 
   95                                 ...
   96                         };
   97                 };
   98         };

Cache object: a3fa64facf72ac5a907073a5aa638bab


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.