1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/soc/qcom/qcom,smd.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm Shared Memory Driver 8 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 Qualcomm Shared Memory Driver is a FIFO based communication channel for 16 sending data between the various subsystems in Qualcomm platforms. 17 18properties: 19 compatible: 20 const: qcom,smd 21 22patternProperties: 23 "^.*-edge|rpm$": 24 $ref: /schemas/remoteproc/qcom,smd-edge.yaml# 25 description: 26 Each subnode of the SMD node represents a remote subsystem or a remote 27 processor of some sort - or in SMD language an "edge". The name of the 28 edges are not important. 29 30 properties: 31 rpm-requests: 32 type: object 33 description: 34 In turn, subnodes of the "edges" represent devices tied to SMD 35 channels on that "edge". The names of the devices are not 36 important. The properties of these nodes are defined by the 37 individual bindings for the SMD devices. 38 39 properties: 40 qcom,smd-channels: 41 $ref: /schemas/types.yaml#/definitions/string-array 42 minItems: 1 43 maxItems: 32 44 description: 45 A list of channels tied to this device, used for matching the 46 device to channels. 47 48 required: 49 - compatible 50 - qcom,smd-channels 51 52 additionalProperties: true 53 54 unevaluatedProperties: false 55 56required: 57 - compatible 58 59additionalProperties: false 60 61examples: 62 # The following example represents a smd node, with one edge representing the 63 # "rpm" subsystem. For the "rpm" subsystem we have a device tied to the 64 # "rpm_request" channel. 65 - | 66 #include <dt-bindings/interrupt-controller/arm-gic.h> 67 68 shared-memory { 69 compatible = "qcom,smd"; 70 71 rpm { 72 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>; 73 qcom,ipc = <&apcs 8 0>; 74 qcom,smd-edge = <15>; 75 76 rpm-requests { 77 compatible = "qcom,rpm-msm8974"; 78 qcom,smd-channels = "rpm_requests"; 79 80 clock-controller { 81 compatible = "qcom,rpmcc-msm8974", "qcom,rpmcc"; 82 #clock-cells = <1>; 83 }; 84 85 }; 86 }; 87 }; 88