1 Qualcomm Shared Memory Point 2 Point binding
3 The Shared Memory Point to Point (SMP2P) protocol facilitates communication of
4 a single 32-bit value between two processors. Each value has a single writer
5 (the local side) and a single reader (the remote side). Values are uniquely
6 identified in the system by the directed edge (local processor ID to remote
7 processor ID) and a string identifier.
12 Definition: must be one of:
17 Value type: <prop-encoded-array>
18 Definition: one entry specifying the smp2p notification interrupt
22 Value type: <prop-encoded-array>
23 Definition: reference to the associated doorbell in APCS, as described
24 in mailbox/mailbox.txt
27 Usage: required, unless mboxes is specified
28 Value type: <prop-encoded-array>
29 Definition: three entries specifying the outgoing ipc bit used for
30 signaling the remote end of the smp2p edge:
31 - phandle to a syscon node representing the apcs registers
32 - u32 representing offset to the register within the syscon
33 - u32 representing the ipc bit within the register
37 Value type: <u32 array>
38 Definition: two identifiers of the inbound and outbound smem items used
44 Definition: specifies the identifier of the local endpoint of this edge
49 Definition: specifies the identifier of the remote endpoint of this edge
52 Each SMP2P pair contain a set of inbound and outbound entries, these are
53 described in subnodes of the smp2p device node. The node names are not
59 Definition: specifies the name of this entry, for inbound entries this
60 will be used to match against the remotely allocated entry
61 and for outbound entries this name is used for allocating
64 - interrupt-controller:
65 Usage: required for incoming entries
67 Definition: marks the entry as inbound; the node should be specified
68 as a two cell interrupt-controller as defined in
69 "../interrupt-controller/interrupts.txt"
70 If not specified this node will denote the outgoing entry
73 Usage: required for incoming entries
75 Definition: must be 2 - denoting the bit in the entry and IRQ flags
77 - #qcom,smem-state-cells:
78 Usage: required for outgoing entries
80 Definition: must be 1 - denoting the bit in the entry
83 The following example shows the SMP2P setup with the wireless processor,
84 defined from the 8974 apps processor's point-of-view. It encompasses one
85 inbound and one outbound entry:
88 compatible = "qcom,smp2p";
89 qcom,smem = <431>, <451>;
91 interrupts = <0 143 1>;
93 qcom,ipc = <&apcs 8 18>;
96 qcom,remote-pid = <4>;
98 wcnss_smp2p_out: master-kernel {
99 qcom,entry-name = "master-kernel";
101 #qcom,smem-state-cells = <1>;
104 wcnss_smp2p_in: slave-kernel {
105 qcom,entry-name = "slave-kernel";
107 interrupt-controller;
108 #interrupt-cells = <2>;