GNU Linux-libre 6.8.9-gnu
[releases.git] / Documentation / devicetree / bindings / soc / qcom / qcom,smd.yaml
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
7 title: Qualcomm Shared Memory Driver
8
9 maintainers:
10   - Andy Gross <agross@kernel.org>
11   - Bjorn Andersson <bjorn.andersson@linaro.org>
12   - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
13
14 description:
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
22 deprecated: true
23
24 properties:
25   compatible:
26     const: qcom,smd
27
28 patternProperties:
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
37 required:
38   - compatible
39
40 additionalProperties: false
41
42 examples:
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     };