Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 | # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause %YAML 1.2 --- $id: http://devicetree.org/schemas/soc/qcom/qcom,smp2p.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Qualcomm Shared Memory Point 2 Point maintainers: - Andy Gross <agross@kernel.org> - Bjorn Andersson <bjorn.andersson@linaro.org> - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> description: The Shared Memory Point to Point (SMP2P) protocol facilitates communication of a single 32-bit value between two processors. Each value has a single writer (the local side) and a single reader (the remote side). Values are uniquely identified in the system by the directed edge (local processor ID to remote processor ID) and a string identifier. properties: compatible: const: qcom,smp2p interrupts: maxItems: 1 mboxes: maxItems: 1 description: Reference to the mailbox representing the outgoing doorbell in APCS for this client. qcom,ipc: $ref: /schemas/types.yaml#/definitions/phandle-array items: - items: - description: phandle to a syscon node representing the APCS registers - description: u32 representing offset to the register within the syscon - description: u32 representing the ipc bit within the register description: Three entries specifying the outgoing ipc bit used for signaling the remote end of the smp2p edge. qcom,local-pid: $ref: /schemas/types.yaml#/definitions/uint32 description: The identifier of the local endpoint of this edge. qcom,remote-pid: $ref: /schemas/types.yaml#/definitions/uint32 description: The identifier of the remote endpoint of this edge. qcom,smem: $ref: /schemas/types.yaml#/definitions/uint32-array items: maxItems: 2 description: Two identifiers of the inbound and outbound smem items used for this edge. patternProperties: "^master-kernel|slave-kernel|ipa-ap-to-modem|ipa-modem-to-ap|wlan-ap-to-wpss|wlan-wpss-to-ap$": type: object description: Each SMP2P pair contain a set of inbound and outbound entries, these are described in subnodes of the smp2p device node. The node names are not important. properties: interrupt-controller: description: Marks the entry as inbound; the node should be specified as a two cell interrupt-controller. If not specified this node will denote the outgoing entry. '#interrupt-cells': const: 2 qcom,entry-name: $ref: /schemas/types.yaml#/definitions/string description: The name of this entry, for inbound entries this will be used to match against the remotely allocated entry and for outbound entries this name is used for allocating entries. '#qcom,smem-state-cells': $ref: /schemas/types.yaml#/definitions/uint32 const: 1 description: Required for outgoing entries. required: - qcom,entry-name oneOf: - required: - interrupt-controller - '#interrupt-cells' - required: - '#qcom,smem-state-cells' additionalProperties: false required: - compatible - interrupts - qcom,local-pid - qcom,remote-pid - qcom,smem oneOf: - required: - mboxes - required: - qcom,ipc additionalProperties: false examples: # The following example shows the SMP2P setup with the wireless processor, # defined from the 8974 apps processor's point-of-view. It encompasses one # inbound and one outbound entry. - | #include <dt-bindings/interrupt-controller/arm-gic.h> shared-memory { compatible = "qcom,smp2p"; qcom,smem = <431>, <451>; interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>; qcom,ipc = <&apcs 8 18>; qcom,local-pid = <0>; qcom,remote-pid = <4>; wcnss_smp2p_out: master-kernel { qcom,entry-name = "master-kernel"; #qcom,smem-state-cells = <1>; }; wcnss_smp2p_in: slave-kernel { qcom,entry-name = "slave-kernel"; interrupt-controller; #interrupt-cells = <2>; }; }; |