0001 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/soc/qcom/qcom,smd.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: Qualcomm Shared Memory Driver
0008
0009 maintainers:
0010 - Andy Gross <agross@kernel.org>
0011 - Bjorn Andersson <bjorn.andersson@linaro.org>
0012 - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
0013
0014 description:
0015 The Qualcomm Shared Memory Driver is a FIFO based communication channel for
0016 sending data between the various subsystems in Qualcomm platforms.
0017
0018 properties:
0019 compatible:
0020 const: qcom,smd
0021
0022 patternProperties:
0023 "^.*-edge|rpm$":
0024 $ref: /schemas/remoteproc/qcom,smd-edge.yaml#
0025 description:
0026 Each subnode of the SMD node represents a remote subsystem or a remote
0027 processor of some sort - or in SMD language an "edge". The name of the
0028 edges are not important.
0029
0030 properties:
0031 rpm-requests:
0032 type: object
0033 description:
0034 In turn, subnodes of the "edges" represent devices tied to SMD
0035 channels on that "edge". The names of the devices are not
0036 important. The properties of these nodes are defined by the
0037 individual bindings for the SMD devices.
0038
0039 properties:
0040 qcom,smd-channels:
0041 $ref: /schemas/types.yaml#/definitions/string-array
0042 minItems: 1
0043 maxItems: 32
0044 description:
0045 A list of channels tied to this device, used for matching the
0046 device to channels.
0047
0048 required:
0049 - compatible
0050 - qcom,smd-channels
0051
0052 additionalProperties: true
0053
0054 unevaluatedProperties: false
0055
0056 required:
0057 - compatible
0058
0059 additionalProperties: false
0060
0061 examples:
0062 # The following example represents a smd node, with one edge representing the
0063 # "rpm" subsystem. For the "rpm" subsystem we have a device tied to the
0064 # "rpm_request" channel.
0065 - |
0066 #include <dt-bindings/interrupt-controller/arm-gic.h>
0067
0068 shared-memory {
0069 compatible = "qcom,smd";
0070
0071 rpm {
0072 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
0073 qcom,ipc = <&apcs 8 0>;
0074 qcom,smd-edge = <15>;
0075
0076 rpm-requests {
0077 compatible = "qcom,rpm-msm8974";
0078 qcom,smd-channels = "rpm_requests";
0079
0080 clock-controller {
0081 compatible = "qcom,rpmcc-msm8974", "qcom,rpmcc";
0082 #clock-cells = <1>;
0083 };
0084
0085 };
0086 };
0087 };