1548f8b21SKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2548f8b21SKrzysztof Kozlowski%YAML 1.2 3548f8b21SKrzysztof Kozlowski--- 4548f8b21SKrzysztof Kozlowski$id: http://devicetree.org/schemas/soc/qcom/qcom,smp2p.yaml# 5548f8b21SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml# 6548f8b21SKrzysztof Kozlowski 7548f8b21SKrzysztof Kozlowskititle: Qualcomm Shared Memory Point 2 Point 8548f8b21SKrzysztof Kozlowski 9548f8b21SKrzysztof Kozlowskimaintainers: 10548f8b21SKrzysztof Kozlowski - Andy Gross <agross@kernel.org> 11548f8b21SKrzysztof Kozlowski - Bjorn Andersson <bjorn.andersson@linaro.org> 12548f8b21SKrzysztof Kozlowski - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> 13548f8b21SKrzysztof Kozlowski 14548f8b21SKrzysztof Kozlowskidescription: 15548f8b21SKrzysztof Kozlowski The Shared Memory Point to Point (SMP2P) protocol facilitates communication 16548f8b21SKrzysztof Kozlowski of a single 32-bit value between two processors. Each value has a single 17548f8b21SKrzysztof Kozlowski writer (the local side) and a single reader (the remote side). Values are 18548f8b21SKrzysztof Kozlowski uniquely identified in the system by the directed edge (local processor ID to 19548f8b21SKrzysztof Kozlowski remote processor ID) and a string identifier. 20548f8b21SKrzysztof Kozlowski 21548f8b21SKrzysztof Kozlowskiproperties: 22548f8b21SKrzysztof Kozlowski compatible: 23548f8b21SKrzysztof Kozlowski const: qcom,smp2p 24548f8b21SKrzysztof Kozlowski 25548f8b21SKrzysztof Kozlowski interrupts: 26548f8b21SKrzysztof Kozlowski maxItems: 1 27548f8b21SKrzysztof Kozlowski 28548f8b21SKrzysztof Kozlowski mboxes: 29548f8b21SKrzysztof Kozlowski maxItems: 1 30548f8b21SKrzysztof Kozlowski description: 31548f8b21SKrzysztof Kozlowski Reference to the mailbox representing the outgoing doorbell in APCS for 32548f8b21SKrzysztof Kozlowski this client. 33548f8b21SKrzysztof Kozlowski 34548f8b21SKrzysztof Kozlowski qcom,ipc: 35548f8b21SKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/phandle-array 36548f8b21SKrzysztof Kozlowski items: 37548f8b21SKrzysztof Kozlowski - items: 38548f8b21SKrzysztof Kozlowski - description: phandle to a syscon node representing the APCS registers 39548f8b21SKrzysztof Kozlowski - description: u32 representing offset to the register within the syscon 40548f8b21SKrzysztof Kozlowski - description: u32 representing the ipc bit within the register 41548f8b21SKrzysztof Kozlowski description: 42548f8b21SKrzysztof Kozlowski Three entries specifying the outgoing ipc bit used for signaling the 43548f8b21SKrzysztof Kozlowski remote end of the smp2p edge. 44548f8b21SKrzysztof Kozlowski 45548f8b21SKrzysztof Kozlowski qcom,local-pid: 46548f8b21SKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/uint32 47548f8b21SKrzysztof Kozlowski description: 48548f8b21SKrzysztof Kozlowski The identifier of the local endpoint of this edge. 49548f8b21SKrzysztof Kozlowski 50548f8b21SKrzysztof Kozlowski qcom,remote-pid: 51548f8b21SKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/uint32 52548f8b21SKrzysztof Kozlowski description: 53548f8b21SKrzysztof Kozlowski The identifier of the remote endpoint of this edge. 54548f8b21SKrzysztof Kozlowski 55548f8b21SKrzysztof Kozlowski qcom,smem: 56548f8b21SKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/uint32-array 57548f8b21SKrzysztof Kozlowski items: 58548f8b21SKrzysztof Kozlowski maxItems: 2 59548f8b21SKrzysztof Kozlowski description: 60548f8b21SKrzysztof Kozlowski Two identifiers of the inbound and outbound smem items used for this edge. 61548f8b21SKrzysztof Kozlowski 62548f8b21SKrzysztof KozlowskipatternProperties: 63*c0ca67bbSManikanta Pubbisetty "^master-kernel|slave-kernel|ipa-ap-to-modem|ipa-modem-to-ap|wlan-ap-to-wpss|wlan-wpss-to-ap$": 64548f8b21SKrzysztof Kozlowski type: object 65548f8b21SKrzysztof Kozlowski description: 66548f8b21SKrzysztof Kozlowski Each SMP2P pair contain a set of inbound and outbound entries, these are 67548f8b21SKrzysztof Kozlowski described in subnodes of the smp2p device node. The node names are not 68548f8b21SKrzysztof Kozlowski important. 69548f8b21SKrzysztof Kozlowski 70548f8b21SKrzysztof Kozlowski properties: 71548f8b21SKrzysztof Kozlowski interrupt-controller: 72548f8b21SKrzysztof Kozlowski description: 73548f8b21SKrzysztof Kozlowski Marks the entry as inbound; the node should be specified as a two 74548f8b21SKrzysztof Kozlowski cell interrupt-controller. If not specified this node will denote 75548f8b21SKrzysztof Kozlowski the outgoing entry. 76548f8b21SKrzysztof Kozlowski 77548f8b21SKrzysztof Kozlowski '#interrupt-cells': 78548f8b21SKrzysztof Kozlowski const: 2 79548f8b21SKrzysztof Kozlowski 80548f8b21SKrzysztof Kozlowski qcom,entry-name: 81548f8b21SKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/string 82548f8b21SKrzysztof Kozlowski description: 83548f8b21SKrzysztof Kozlowski The name of this entry, for inbound entries this will be used to 84548f8b21SKrzysztof Kozlowski match against the remotely allocated entry and for outbound entries 85548f8b21SKrzysztof Kozlowski this name is used for allocating entries. 86548f8b21SKrzysztof Kozlowski 87548f8b21SKrzysztof Kozlowski '#qcom,smem-state-cells': 88548f8b21SKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/uint32 89548f8b21SKrzysztof Kozlowski const: 1 90548f8b21SKrzysztof Kozlowski description: 91548f8b21SKrzysztof Kozlowski Required for outgoing entries. 92548f8b21SKrzysztof Kozlowski 93548f8b21SKrzysztof Kozlowski required: 94548f8b21SKrzysztof Kozlowski - qcom,entry-name 95548f8b21SKrzysztof Kozlowski 96548f8b21SKrzysztof Kozlowski oneOf: 97548f8b21SKrzysztof Kozlowski - required: 98548f8b21SKrzysztof Kozlowski - interrupt-controller 99548f8b21SKrzysztof Kozlowski - '#interrupt-cells' 100548f8b21SKrzysztof Kozlowski - required: 101548f8b21SKrzysztof Kozlowski - '#qcom,smem-state-cells' 102548f8b21SKrzysztof Kozlowski 103548f8b21SKrzysztof Kozlowski additionalProperties: false 104548f8b21SKrzysztof Kozlowski 105548f8b21SKrzysztof Kozlowskirequired: 106548f8b21SKrzysztof Kozlowski - compatible 107548f8b21SKrzysztof Kozlowski - interrupts 108548f8b21SKrzysztof Kozlowski - qcom,local-pid 109548f8b21SKrzysztof Kozlowski - qcom,remote-pid 110548f8b21SKrzysztof Kozlowski - qcom,smem 111548f8b21SKrzysztof Kozlowski 112548f8b21SKrzysztof KozlowskioneOf: 113548f8b21SKrzysztof Kozlowski - required: 114548f8b21SKrzysztof Kozlowski - mboxes 115548f8b21SKrzysztof Kozlowski - required: 116548f8b21SKrzysztof Kozlowski - qcom,ipc 117548f8b21SKrzysztof Kozlowski 118548f8b21SKrzysztof KozlowskiadditionalProperties: false 119548f8b21SKrzysztof Kozlowski 120548f8b21SKrzysztof Kozlowskiexamples: 121548f8b21SKrzysztof Kozlowski # The following example shows the SMP2P setup with the wireless processor, 122548f8b21SKrzysztof Kozlowski # defined from the 8974 apps processor's point-of-view. It encompasses one 123548f8b21SKrzysztof Kozlowski # inbound and one outbound entry. 124548f8b21SKrzysztof Kozlowski - | 125548f8b21SKrzysztof Kozlowski #include <dt-bindings/interrupt-controller/arm-gic.h> 126548f8b21SKrzysztof Kozlowski 127548f8b21SKrzysztof Kozlowski shared-memory { 128548f8b21SKrzysztof Kozlowski compatible = "qcom,smp2p"; 129548f8b21SKrzysztof Kozlowski qcom,smem = <431>, <451>; 130548f8b21SKrzysztof Kozlowski interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>; 131548f8b21SKrzysztof Kozlowski qcom,ipc = <&apcs 8 18>; 132548f8b21SKrzysztof Kozlowski qcom,local-pid = <0>; 133548f8b21SKrzysztof Kozlowski qcom,remote-pid = <4>; 134548f8b21SKrzysztof Kozlowski 135548f8b21SKrzysztof Kozlowski wcnss_smp2p_out: master-kernel { 136548f8b21SKrzysztof Kozlowski qcom,entry-name = "master-kernel"; 137548f8b21SKrzysztof Kozlowski #qcom,smem-state-cells = <1>; 138548f8b21SKrzysztof Kozlowski }; 139548f8b21SKrzysztof Kozlowski 140548f8b21SKrzysztof Kozlowski wcnss_smp2p_in: slave-kernel { 141548f8b21SKrzysztof Kozlowski qcom,entry-name = "slave-kernel"; 142548f8b21SKrzysztof Kozlowski interrupt-controller; 143548f8b21SKrzysztof Kozlowski #interrupt-cells = <2>; 144548f8b21SKrzysztof Kozlowski }; 145548f8b21SKrzysztof Kozlowski }; 146