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
18  Using the top-level SMD node is deprecated. Instead, the SMD edges are defined
19  directly below the device node representing the respective remote subsystem
20  or remote processor.
21
22deprecated: true
23
24properties:
25  compatible:
26    const: qcom,smd
27
28patternProperties:
29  "^smd-edge|rpm$":
30    $ref: /schemas/remoteproc/qcom,smd-edge.yaml#
31    unevaluatedProperties: false
32    description:
33      Each subnode of the SMD node represents a remote subsystem or a remote
34      processor of some sort - or in SMD language an "edge". The name of the
35      edges are not important.
36
37required:
38  - compatible
39
40additionalProperties: false
41
42examples:
43  # The following example represents a smd node, with one edge representing the
44  # "rpm" subsystem. For the "rpm" subsystem we have a device tied to the
45  # "rpm_request" channel.
46  # NOTE: This is deprecated, represent the RPM using "qcom,rpm-proc" instead.
47  - |
48    #include <dt-bindings/interrupt-controller/arm-gic.h>
49
50    shared-memory {
51        compatible = "qcom,smd";
52
53        rpm {
54            interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
55            qcom,ipc = <&apcs 8 0>;
56            qcom,smd-edge = <15>;
57
58            rpm-requests {
59                compatible = "qcom,rpm-msm8974";
60                qcom,smd-channels = "rpm_requests";
61
62                clock-controller {
63                    compatible = "qcom,rpmcc-msm8974", "qcom,rpmcc";
64                    #clock-cells = <1>;
65                };
66
67            };
68        };
69    };
70