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 | # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause %YAML 1.2 --- $id: http://devicetree.org/schemas/soc/qcom/qcom,smsm.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Qualcomm Shared Memory State Machine maintainers: - Andy Gross <agross@kernel.org> - Bjorn Andersson <bjorn.andersson@linaro.org> - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> description: The Shared Memory State Machine facilitates broadcasting of single bit state information between the processors in a Qualcomm SoC. Each processor is assigned 32 bits of state that can be modified. A processor can through a matrix of bitmaps signal subscription of notifications upon changes to a certain bit owned by a certain remote processor. properties: compatible: const: qcom,smsm '#address-cells': const: 1 qcom,local-host: $ref: /schemas/types.yaml#/definitions/uint32 default: 0 description: Identifier of the local processor in the list of hosts, or in other words specifier of the column in the subscription matrix representing the local processor. '#size-cells': const: 0 patternProperties: "^qcom,ipc-[1-4]$": $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 N:th remote processor. "@[0-9a-f]$": type: object description: Each processor's state bits are described by a subnode of the SMSM device node. Nodes can either be flagged as an interrupt-controller to denote a remote processor's state bits or the local processors bits. The node names are not important. properties: reg: maxItems: 1 interrupt-controller: description: Marks the entry as a interrupt-controller and the state bits to belong to a remote processor. '#interrupt-cells': const: 2 interrupts: maxItems: 1 description: One entry specifying remote IRQ used by the remote processor to signal changes of its state bits. '#qcom,smem-state-cells': $ref: /schemas/types.yaml#/definitions/uint32 const: 1 description: Required for local entry. Denotes bit number. required: - reg oneOf: - required: - '#qcom,smem-state-cells' - required: - interrupt-controller - '#interrupt-cells' - interrupts additionalProperties: false required: - compatible - '#address-cells' - '#size-cells' anyOf: - required: - qcom,ipc-1 - required: - qcom,ipc-2 - required: - qcom,ipc-3 - required: - qcom,ipc-4 additionalProperties: false examples: # The following example shows the SMEM setup for controlling properties of # the wireless processor, defined from the 8974 apps processor's # point-of-view. It encompasses one outbound entry and the outgoing interrupt # for the wireless processor. - | #include <dt-bindings/interrupt-controller/arm-gic.h> shared-memory { compatible = "qcom,smsm"; #address-cells = <1>; #size-cells = <0>; qcom,ipc-3 = <&apcs 8 19>; apps_smsm: apps@0 { reg = <0>; #qcom,smem-state-cells = <1>; }; wcnss_smsm: wcnss@7 { reg = <7>; interrupts = <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>; interrupt-controller; #interrupt-cells = <2>; }; }; |