Back to home page

OSCL-LXR

 
 

    


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     };