cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

qcom,smd.yaml (3910B)


      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
     18properties:
     19  compatible:
     20    const: qcom,smd
     21
     22patternProperties:
     23  "^.*-edge|rpm$":
     24    type: object
     25    description:
     26      Each subnode of the SMD node represents a remote subsystem or a remote
     27      processor of some sort - or in SMD language an "edge". The name of the
     28      edges are not important.
     29
     30    properties:
     31      interrupts:
     32        maxItems: 1
     33
     34      label:
     35        $ref: /schemas/types.yaml#/definitions/string
     36        description:
     37          Name of the edge, used for debugging and identification purposes. The
     38          node name will be used if this is not present.
     39
     40      mboxes:
     41        maxItems: 1
     42        description:
     43          Reference to the mailbox representing the outgoing doorbell in APCS for
     44          this client.
     45
     46      qcom,ipc:
     47        $ref: /schemas/types.yaml#/definitions/phandle-array
     48        items:
     49          - items:
     50              - description: phandle to a syscon node representing the APCS registers
     51              - description: u32 representing offset to the register within the syscon
     52              - description: u32 representing the ipc bit within the register
     53        description:
     54          Three entries specifying the outgoing ipc bit used for signaling the
     55          remote processor.
     56
     57      qcom,smd-edge:
     58        $ref: /schemas/types.yaml#/definitions/uint32
     59        description:
     60          The identifier of the remote processor in the smd channel allocation
     61          table.
     62
     63      qcom,remote-pid:
     64        $ref: /schemas/types.yaml#/definitions/uint32
     65        description:
     66          The identifier for the remote processor as known by the rest of the
     67          system.
     68
     69      rpm-requests:
     70        type: object
     71        description:
     72          In turn, subnodes of the "edges" represent devices tied to SMD
     73          channels on that "edge". The names of the devices are not
     74          important. The properties of these nodes are defined by the
     75          individual bindings for the SMD devices.
     76
     77        properties:
     78          qcom,smd-channels:
     79            $ref: /schemas/types.yaml#/definitions/string-array
     80            minItems: 1
     81            maxItems: 32
     82            description:
     83              A list of channels tied to this device, used for matching the
     84              device to channels.
     85
     86        required:
     87          - compatible
     88          - qcom,smd-channels
     89
     90        additionalProperties: true
     91
     92    required:
     93      - interrupts
     94      - qcom,smd-edge
     95
     96    oneOf:
     97      - required:
     98          - mboxes
     99      - required:
    100          - qcom,ipc
    101
    102    additionalProperties: false
    103
    104required:
    105  - compatible
    106
    107additionalProperties: false
    108
    109examples:
    110  # The following example represents a smd node, with one edge representing the
    111  # "rpm" subsystem. For the "rpm" subsystem we have a device tied to the
    112  # "rpm_request" channel.
    113  - |
    114    #include <dt-bindings/interrupt-controller/arm-gic.h>
    115
    116    shared-memory {
    117        compatible = "qcom,smd";
    118
    119        rpm {
    120            interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
    121            qcom,ipc = <&apcs 8 0>;
    122            qcom,smd-edge = <15>;
    123
    124            rpm-requests {
    125                compatible = "qcom,rpm-msm8974";
    126                qcom,smd-channels = "rpm_requests";
    127
    128                clock-controller {
    129                    compatible = "qcom,rpmcc-msm8974", "qcom,rpmcc";
    130                    #clock-cells = <1>;
    131                };
    132
    133            };
    134        };
    135    };