brintos

brintos / linux-shallow public Read only

0
0
Text · 4.2 KiB · 141d666 Raw
147 lines · yaml
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause2%YAML 1.23---4$id: http://devicetree.org/schemas/soc/qcom/qcom,smp2p.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: Qualcomm Shared Memory Point 2 Point8 9maintainers:10  - Andy Gross <agross@kernel.org>11  - Bjorn Andersson <bjorn.andersson@linaro.org>12  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>13 14description:15  The Shared Memory Point to Point (SMP2P) protocol facilitates communication16  of a single 32-bit value between two processors.  Each value has a single17  writer (the local side) and a single reader (the remote side).  Values are18  uniquely identified in the system by the directed edge (local processor ID to19  remote processor ID) and a string identifier.20 21properties:22  compatible:23    const: qcom,smp2p24 25  interrupts:26    maxItems: 127 28  mboxes:29    maxItems: 130    description:31      Reference to the mailbox representing the outgoing doorbell in APCS for32      this client.33 34  qcom,ipc:35    $ref: /schemas/types.yaml#/definitions/phandle-array36    items:37      - items:38          - description: phandle to a syscon node representing the APCS registers39          - description: u32 representing offset to the register within the syscon40          - description: u32 representing the ipc bit within the register41    description:42      Three entries specifying the outgoing ipc bit used for signaling the43      remote end of the smp2p edge.44    deprecated: true45 46  qcom,local-pid:47    $ref: /schemas/types.yaml#/definitions/uint3248    description:49      The identifier of the local endpoint of this edge.50 51  qcom,remote-pid:52    $ref: /schemas/types.yaml#/definitions/uint3253    description:54      The identifier of the remote endpoint of this edge.55 56  qcom,smem:57    $ref: /schemas/types.yaml#/definitions/uint32-array58    items:59      maxItems: 260    description:61      Two identifiers of the inbound and outbound smem items used for this edge.62 63patternProperties:64  "^master-kernel|slave-kernel|ipa-ap-to-modem|ipa-modem-to-ap|wlan-ap-to-wpss|wlan-wpss-to-ap$":65    type: object66    description:67      Each SMP2P pair contain a set of inbound and outbound entries, these are68      described in subnodes of the smp2p device node. The node names are not69      important.70 71    properties:72      interrupt-controller:73        description:74          Marks the entry as inbound; the node should be specified as a two75          cell interrupt-controller.  If not specified this node will denote76          the outgoing entry.77 78      '#interrupt-cells':79        const: 280 81      qcom,entry-name:82        $ref: /schemas/types.yaml#/definitions/string83        description:84          The name of this entry, for inbound entries this will be used to85          match against the remotely allocated entry and for outbound entries86          this name is used for allocating entries.87 88      '#qcom,smem-state-cells':89        $ref: /schemas/types.yaml#/definitions/uint3290        const: 191        description:92          Required for outgoing entries.93 94    required:95      - qcom,entry-name96 97    oneOf:98      - required:99          - interrupt-controller100          - '#interrupt-cells'101      - required:102          - '#qcom,smem-state-cells'103 104    additionalProperties: false105 106required:107  - compatible108  - interrupts109  - qcom,local-pid110  - qcom,remote-pid111  - qcom,smem112 113oneOf:114  - required:115      - mboxes116  - required:117      - qcom,ipc118 119additionalProperties: false120 121examples:122  # The following example shows the SMP2P setup with the wireless processor,123  # defined from the 8974 apps processor's point-of-view. It encompasses one124  # inbound and one outbound entry.125  - |126    #include <dt-bindings/interrupt-controller/arm-gic.h>127 128    shared-memory {129        compatible = "qcom,smp2p";130        qcom,smem = <431>, <451>;131        interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;132        mboxes = <&apcs 18>;133        qcom,local-pid = <0>;134        qcom,remote-pid = <4>;135 136        wcnss_smp2p_out: master-kernel {137            qcom,entry-name = "master-kernel";138            #qcom,smem-state-cells = <1>;139        };140 141        wcnss_smp2p_in: slave-kernel {142            qcom,entry-name = "slave-kernel";143            interrupt-controller;144            #interrupt-cells = <2>;145        };146    };147