| # 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. |
| |
| Using the top-level SMD node is deprecated. Instead, the SMD edges are defined |
| directly below the device node representing the respective remote subsystem |
| or remote processor. |
| |
| deprecated: true |
| |
| properties: |
| compatible: |
| const: qcom,smd |
| |
| patternProperties: |
| "^smd-edge|rpm$": |
| $ref: /schemas/remoteproc/qcom,smd-edge.yaml# |
| unevaluatedProperties: false |
| 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. |
| |
| 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. |
| # NOTE: This is deprecated, represent the RPM using "qcom,rpm-proc" instead. |
| - | |
| #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>; |
| }; |
| |
| }; |
| }; |
| }; |