| # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/soc/qcom/qcom,smd.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Qualcomm Shared Memory Driver |
| |
| maintainers: |
| - Andy Gross <agross@kernel.org> |
| - Bjorn Andersson <bjorn.andersson@linaro.org> |
| - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> |
| |
| description: |
| The Qualcomm Shared Memory Driver is a FIFO based communication channel for |
| sending data between the various subsystems in Qualcomm platforms. |
| |
| properties: |
| compatible: |
| const: qcom,smd |
| |
| patternProperties: |
| "^.*-edge|rpm$": |
| $ref: /schemas/remoteproc/qcom,smd-edge.yaml# |
| description: |
| Each subnode of the SMD node represents a remote subsystem or a remote |
| processor of some sort - or in SMD language an "edge". The name of the |
| edges are not important. |
| |
| properties: |
| rpm-requests: |
| type: object |
| description: |
| In turn, subnodes of the "edges" represent devices tied to SMD |
| channels on that "edge". The names of the devices are not |
| important. The properties of these nodes are defined by the |
| individual bindings for the SMD devices. |
| |
| properties: |
| qcom,smd-channels: |
| $ref: /schemas/types.yaml#/definitions/string-array |
| minItems: 1 |
| maxItems: 32 |
| description: |
| A list of channels tied to this device, used for matching the |
| device to channels. |
| |
| required: |
| - compatible |
| - qcom,smd-channels |
| |
| additionalProperties: true |
| |
| unevaluatedProperties: false |
| |
| required: |
| - compatible |
| |
| additionalProperties: false |
| |
| examples: |
| # The following example represents a smd node, with one edge representing the |
| # "rpm" subsystem. For the "rpm" subsystem we have a device tied to the |
| # "rpm_request" channel. |
| - | |
| #include <dt-bindings/interrupt-controller/arm-gic.h> |
| |
| shared-memory { |
| compatible = "qcom,smd"; |
| |
| rpm { |
| interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>; |
| qcom,ipc = <&apcs 8 0>; |
| qcom,smd-edge = <15>; |
| |
| rpm-requests { |
| compatible = "qcom,rpm-msm8974"; |
| qcom,smd-channels = "rpm_requests"; |
| |
| clock-controller { |
| compatible = "qcom,rpmcc-msm8974", "qcom,rpmcc"; |
| #clock-cells = <1>; |
| }; |
| |
| }; |
| }; |
| }; |