1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
4 $id: http://devicetree.org/schemas/soc/qcom/qcom,smp2p.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Qualcomm Shared Memory Point 2 Point
10 - Andy Gross <agross@kernel.org>
11 - Bjorn Andersson <bjorn.andersson@linaro.org>
12 - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
15 The Shared Memory Point to Point (SMP2P) protocol facilitates communication
16 of a single 32-bit value between two processors. Each value has a single
17 writer (the local side) and a single reader (the remote side). Values are
18 uniquely identified in the system by the directed edge (local processor ID to
19 remote processor ID) and a string identifier.
31 Reference to the mailbox representing the outgoing doorbell in APCS for
35 $ref: /schemas/types.yaml#/definitions/phandle-array
38 - description: phandle to a syscon node representing the APCS registers
39 - description: u32 representing offset to the register within the syscon
40 - description: u32 representing the ipc bit within the register
42 Three entries specifying the outgoing ipc bit used for signaling the
43 remote end of the smp2p edge.
46 $ref: /schemas/types.yaml#/definitions/uint32
48 The identifier of the local endpoint of this edge.
51 $ref: /schemas/types.yaml#/definitions/uint32
53 The identifier of the remote endpoint of this edge.
56 $ref: /schemas/types.yaml#/definitions/uint32-array
60 Two identifiers of the inbound and outbound smem items used for this edge.
63 "^master-kernel|slave-kernel|ipa-ap-to-modem|ipa-modem-to-ap|wlan-ap-to-wpss|wlan-wpss-to-ap$":
66 Each SMP2P pair contain a set of inbound and outbound entries, these are
67 described in subnodes of the smp2p device node. The node names are not
73 Marks the entry as inbound; the node should be specified as a two
74 cell interrupt-controller. If not specified this node will denote
81 $ref: /schemas/types.yaml#/definitions/string
83 The name of this entry, for inbound entries this will be used to
84 match against the remotely allocated entry and for outbound entries
85 this name is used for allocating entries.
87 '#qcom,smem-state-cells':
88 $ref: /schemas/types.yaml#/definitions/uint32
91 Required for outgoing entries.
98 - interrupt-controller
101 - '#qcom,smem-state-cells'
103 additionalProperties: false
118 additionalProperties: false
121 # The following example shows the SMP2P setup with the wireless processor,
122 # defined from the 8974 apps processor's point-of-view. It encompasses one
123 # inbound and one outbound entry.
125 #include <dt-bindings/interrupt-controller/arm-gic.h>
128 compatible = "qcom,smp2p";
129 qcom,smem = <431>, <451>;
130 interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
131 qcom,ipc = <&apcs 8 18>;
132 qcom,local-pid = <0>;
133 qcom,remote-pid = <4>;
135 wcnss_smp2p_out: master-kernel {
136 qcom,entry-name = "master-kernel";
137 #qcom,smem-state-cells = <1>;
140 wcnss_smp2p_in: slave-kernel {
141 qcom,entry-name = "slave-kernel";
142 interrupt-controller;
143 #interrupt-cells = <2>;