1d5b0e70fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2d5b0e70fSEmmanuel Vadot%YAML 1.2 3d5b0e70fSEmmanuel Vadot--- 4d5b0e70fSEmmanuel Vadot$id: http://devicetree.org/schemas/soc/qcom/qcom,smd.yaml# 5d5b0e70fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6d5b0e70fSEmmanuel Vadot 7d5b0e70fSEmmanuel Vadottitle: Qualcomm Shared Memory Driver 8d5b0e70fSEmmanuel Vadot 9d5b0e70fSEmmanuel Vadotmaintainers: 10d5b0e70fSEmmanuel Vadot - Andy Gross <agross@kernel.org> 11d5b0e70fSEmmanuel Vadot - Bjorn Andersson <bjorn.andersson@linaro.org> 12d5b0e70fSEmmanuel Vadot - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> 13d5b0e70fSEmmanuel Vadot 14d5b0e70fSEmmanuel Vadotdescription: 15d5b0e70fSEmmanuel Vadot The Qualcomm Shared Memory Driver is a FIFO based communication channel for 16d5b0e70fSEmmanuel Vadot sending data between the various subsystems in Qualcomm platforms. 17d5b0e70fSEmmanuel Vadot 18*aa1a8ff2SEmmanuel Vadot Using the top-level SMD node is deprecated. Instead, the SMD edges are defined 19*aa1a8ff2SEmmanuel Vadot directly below the device node representing the respective remote subsystem 20*aa1a8ff2SEmmanuel Vadot or remote processor. 21*aa1a8ff2SEmmanuel Vadot 22*aa1a8ff2SEmmanuel Vadotdeprecated: true 23*aa1a8ff2SEmmanuel Vadot 24d5b0e70fSEmmanuel Vadotproperties: 25d5b0e70fSEmmanuel Vadot compatible: 26d5b0e70fSEmmanuel Vadot const: qcom,smd 27d5b0e70fSEmmanuel Vadot 28d5b0e70fSEmmanuel VadotpatternProperties: 297ef62cebSEmmanuel Vadot "^smd-edge|rpm$": 30b97ee269SEmmanuel Vadot $ref: /schemas/remoteproc/qcom,smd-edge.yaml# 317ef62cebSEmmanuel Vadot unevaluatedProperties: false 32d5b0e70fSEmmanuel Vadot description: 33d5b0e70fSEmmanuel Vadot Each subnode of the SMD node represents a remote subsystem or a remote 34d5b0e70fSEmmanuel Vadot processor of some sort - or in SMD language an "edge". The name of the 35d5b0e70fSEmmanuel Vadot edges are not important. 36d5b0e70fSEmmanuel Vadot 37d5b0e70fSEmmanuel Vadotrequired: 38d5b0e70fSEmmanuel Vadot - compatible 39d5b0e70fSEmmanuel Vadot 40d5b0e70fSEmmanuel VadotadditionalProperties: false 41d5b0e70fSEmmanuel Vadot 42d5b0e70fSEmmanuel Vadotexamples: 43d5b0e70fSEmmanuel Vadot # The following example represents a smd node, with one edge representing the 44d5b0e70fSEmmanuel Vadot # "rpm" subsystem. For the "rpm" subsystem we have a device tied to the 45d5b0e70fSEmmanuel Vadot # "rpm_request" channel. 46*aa1a8ff2SEmmanuel Vadot # NOTE: This is deprecated, represent the RPM using "qcom,rpm-proc" instead. 47d5b0e70fSEmmanuel Vadot - | 48d5b0e70fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 49d5b0e70fSEmmanuel Vadot 50d5b0e70fSEmmanuel Vadot shared-memory { 51d5b0e70fSEmmanuel Vadot compatible = "qcom,smd"; 52d5b0e70fSEmmanuel Vadot 53d5b0e70fSEmmanuel Vadot rpm { 54d5b0e70fSEmmanuel Vadot interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>; 55d5b0e70fSEmmanuel Vadot qcom,ipc = <&apcs 8 0>; 56d5b0e70fSEmmanuel Vadot qcom,smd-edge = <15>; 57d5b0e70fSEmmanuel Vadot 58d5b0e70fSEmmanuel Vadot rpm-requests { 59d5b0e70fSEmmanuel Vadot compatible = "qcom,rpm-msm8974"; 60d5b0e70fSEmmanuel Vadot qcom,smd-channels = "rpm_requests"; 61d5b0e70fSEmmanuel Vadot 62d5b0e70fSEmmanuel Vadot clock-controller { 63d5b0e70fSEmmanuel Vadot compatible = "qcom,rpmcc-msm8974", "qcom,rpmcc"; 64d5b0e70fSEmmanuel Vadot #clock-cells = <1>; 65d5b0e70fSEmmanuel Vadot }; 66d5b0e70fSEmmanuel Vadot 67d5b0e70fSEmmanuel Vadot }; 68d5b0e70fSEmmanuel Vadot }; 69d5b0e70fSEmmanuel Vadot }; 70