xref: /linux/Documentation/devicetree/bindings/soc/qcom/qcom,smd.yaml (revision 6dae25e4df11aed2dbe3b81b81b43c78dce5103f)
1375eed5fSKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2375eed5fSKrzysztof Kozlowski%YAML 1.2
3375eed5fSKrzysztof Kozlowski---
4375eed5fSKrzysztof Kozlowski$id: http://devicetree.org/schemas/soc/qcom/qcom,smd.yaml#
5375eed5fSKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6375eed5fSKrzysztof Kozlowski
7375eed5fSKrzysztof Kozlowskititle: Qualcomm Shared Memory Driver
8375eed5fSKrzysztof Kozlowski
9375eed5fSKrzysztof Kozlowskimaintainers:
10375eed5fSKrzysztof Kozlowski  - Andy Gross <agross@kernel.org>
11375eed5fSKrzysztof Kozlowski  - Bjorn Andersson <bjorn.andersson@linaro.org>
12375eed5fSKrzysztof Kozlowski  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
13375eed5fSKrzysztof Kozlowski
14375eed5fSKrzysztof Kozlowskidescription:
15375eed5fSKrzysztof Kozlowski  The Qualcomm Shared Memory Driver is a FIFO based communication channel for
16375eed5fSKrzysztof Kozlowski  sending data between the various subsystems in Qualcomm platforms.
17375eed5fSKrzysztof Kozlowski
18375eed5fSKrzysztof Kozlowskiproperties:
19375eed5fSKrzysztof Kozlowski  compatible:
20375eed5fSKrzysztof Kozlowski    const: qcom,smd
21375eed5fSKrzysztof Kozlowski
22375eed5fSKrzysztof KozlowskipatternProperties:
23*6dae25e4SKrzysztof Kozlowski  "^smd-edge|rpm$":
24568f83ffSKrzysztof Kozlowski    $ref: /schemas/remoteproc/qcom,smd-edge.yaml#
25375eed5fSKrzysztof Kozlowski    description:
26375eed5fSKrzysztof Kozlowski      Each subnode of the SMD node represents a remote subsystem or a remote
27375eed5fSKrzysztof Kozlowski      processor of some sort - or in SMD language an "edge". The name of the
28375eed5fSKrzysztof Kozlowski      edges are not important.
29375eed5fSKrzysztof Kozlowski
30375eed5fSKrzysztof Kozlowski    properties:
319171c484SKrzysztof Kozlowski      rpm-requests:
32375eed5fSKrzysztof Kozlowski        type: object
33375eed5fSKrzysztof Kozlowski        description:
34375eed5fSKrzysztof Kozlowski          In turn, subnodes of the "edges" represent devices tied to SMD
35375eed5fSKrzysztof Kozlowski          channels on that "edge". The names of the devices are not
36375eed5fSKrzysztof Kozlowski          important. The properties of these nodes are defined by the
37375eed5fSKrzysztof Kozlowski          individual bindings for the SMD devices.
38375eed5fSKrzysztof Kozlowski
39375eed5fSKrzysztof Kozlowski        properties:
40375eed5fSKrzysztof Kozlowski          qcom,smd-channels:
41375eed5fSKrzysztof Kozlowski            $ref: /schemas/types.yaml#/definitions/string-array
42375eed5fSKrzysztof Kozlowski            minItems: 1
43375eed5fSKrzysztof Kozlowski            maxItems: 32
44375eed5fSKrzysztof Kozlowski            description:
45375eed5fSKrzysztof Kozlowski              A list of channels tied to this device, used for matching the
46375eed5fSKrzysztof Kozlowski              device to channels.
47375eed5fSKrzysztof Kozlowski
48375eed5fSKrzysztof Kozlowski        required:
49375eed5fSKrzysztof Kozlowski          - compatible
50375eed5fSKrzysztof Kozlowski          - qcom,smd-channels
51375eed5fSKrzysztof Kozlowski
52375eed5fSKrzysztof Kozlowski        additionalProperties: true
53375eed5fSKrzysztof Kozlowski
54385fad13SKrzysztof Kozlowski    unevaluatedProperties: false
55375eed5fSKrzysztof Kozlowski
56375eed5fSKrzysztof Kozlowskirequired:
57375eed5fSKrzysztof Kozlowski  - compatible
58375eed5fSKrzysztof Kozlowski
59375eed5fSKrzysztof KozlowskiadditionalProperties: false
60375eed5fSKrzysztof Kozlowski
61375eed5fSKrzysztof Kozlowskiexamples:
62375eed5fSKrzysztof Kozlowski  # The following example represents a smd node, with one edge representing the
63375eed5fSKrzysztof Kozlowski  # "rpm" subsystem. For the "rpm" subsystem we have a device tied to the
64375eed5fSKrzysztof Kozlowski  # "rpm_request" channel.
65375eed5fSKrzysztof Kozlowski  - |
66375eed5fSKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/arm-gic.h>
67375eed5fSKrzysztof Kozlowski
68375eed5fSKrzysztof Kozlowski    shared-memory {
69375eed5fSKrzysztof Kozlowski        compatible = "qcom,smd";
70375eed5fSKrzysztof Kozlowski
71375eed5fSKrzysztof Kozlowski        rpm {
72375eed5fSKrzysztof Kozlowski            interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
73375eed5fSKrzysztof Kozlowski            qcom,ipc = <&apcs 8 0>;
74375eed5fSKrzysztof Kozlowski            qcom,smd-edge = <15>;
75375eed5fSKrzysztof Kozlowski
76375eed5fSKrzysztof Kozlowski            rpm-requests {
77375eed5fSKrzysztof Kozlowski                compatible = "qcom,rpm-msm8974";
78375eed5fSKrzysztof Kozlowski                qcom,smd-channels = "rpm_requests";
79375eed5fSKrzysztof Kozlowski
80375eed5fSKrzysztof Kozlowski                clock-controller {
81375eed5fSKrzysztof Kozlowski                    compatible = "qcom,rpmcc-msm8974", "qcom,rpmcc";
82375eed5fSKrzysztof Kozlowski                    #clock-cells = <1>;
83375eed5fSKrzysztof Kozlowski                };
84375eed5fSKrzysztof Kozlowski
85375eed5fSKrzysztof Kozlowski            };
86375eed5fSKrzysztof Kozlowski        };
87375eed5fSKrzysztof Kozlowski    };
88