Documentation / devicetree / bindings / soc / qcom / qcom,smd.yaml


Based on kernel version 6.11. Page generated on 2024-09-24 08:21 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/soc/qcom/qcom,smd.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm Shared Memory Driver

maintainers:
  - Andy Gross <agross@kernel.org>
  - Bjorn Andersson <bjorn.andersson@linaro.org>
  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

description:
  The Qualcomm Shared Memory Driver is a FIFO based communication channel for
  sending data between the various subsystems in Qualcomm platforms.
 
  Using the top-level SMD node is deprecated. Instead, the SMD edges are defined
  directly below the device node representing the respective remote subsystem
  or remote processor.

deprecated: true

properties:
  compatible:
    const: qcom,smd

patternProperties:
  "^smd-edge|rpm$":
    $ref: /schemas/remoteproc/qcom,smd-edge.yaml#
    unevaluatedProperties: false
    description:
      Each subnode of the SMD node represents a remote subsystem or a remote
      processor of some sort - or in SMD language an "edge". The name of the
      edges are not important.

required:
  - compatible

additionalProperties: false

examples:
  # The following example represents a smd node, with one edge representing the
  # "rpm" subsystem. For the "rpm" subsystem we have a device tied to the
  # "rpm_request" channel.
  # NOTE: This is deprecated, represent the RPM using "qcom,rpm-proc" instead.
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
 
    shared-memory {
        compatible = "qcom,smd";
 
        rpm {
            interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
            qcom,ipc = <&apcs 8 0>;
            qcom,smd-edge = <15>;
 
            rpm-requests {
                compatible = "qcom,rpm-msm8974";
                qcom,smd-channels = "rpm_requests";
 
                clock-controller {
                    compatible = "qcom,rpmcc-msm8974", "qcom,rpmcc";
                    #clock-cells = <1>;
                };
 
            };
        };
    };