1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/remoteproc/qcom,glink-rpm-edge.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm G-Link RPM edge
8
9description: |
10  Qualcomm G-Link edge, a FIFO based mechanism for communication with Resource
11  Power Manager (RPM) on various Qualcomm platforms.
12
13maintainers:
14  - Bjorn Andersson <andersson@kernel.org>
15
16properties:
17  compatible:
18    const: qcom,glink-rpm
19
20  label:
21    $ref: /schemas/types.yaml#/definitions/string
22    description:
23      Name of the edge, used for debugging and identification purposes. The
24      node name will be used if this is not present.
25
26  interrupts:
27    maxItems: 1
28
29  mboxes:
30    items:
31      - description: rpm_hlos mailbox in APCS
32
33  qcom,remote-pid:
34    $ref: /schemas/types.yaml#/definitions/uint32
35    description:
36      The identifier for the remote processor as known by the rest of the
37      system.
38
39  qcom,rpm-msg-ram:
40    $ref: /schemas/types.yaml#/definitions/phandle
41    description: |
42      RPM message memory resource (compatible: qcom,rpm-msg-ram).
43
44  rpm-requests:
45    type: object
46    $ref: /schemas/soc/qcom/qcom,smd-rpm.yaml#
47    unevaluatedProperties: false
48    description:
49      Qualcomm Resource Power Manager (RPM) over G-Link
50
51    properties:
52      qcom,intents:
53        $ref: /schemas/types.yaml#/definitions/uint32-matrix
54        minItems: 1
55        maxItems: 32
56        items:
57          items:
58            - description: size of each intent to preallocate
59            - description: amount of intents to preallocate
60              minimum: 1
61        description:
62          List of (size, amount) pairs describing what intents should be
63          preallocated for this virtual channel. This can be used to tweak the
64          default intents available for the channel to meet expectations of the
65          remote.
66
67    required:
68      - qcom,glink-channels
69
70required:
71  - compatible
72  - interrupts
73  - mboxes
74
75anyOf:
76  - required:
77      - qcom,remote-pid
78  - required:
79      - qcom,rpm-msg-ram
80
81additionalProperties: false
82
83examples:
84  - |
85    #include <dt-bindings/interrupt-controller/arm-gic.h>
86
87    glink-edge {
88        compatible = "qcom,glink-rpm";
89        interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
90        mboxes = <&apcs_glb 0>;
91        qcom,rpm-msg-ram = <&rpm_msg_ram>;
92
93        rpm-requests {
94            compatible = "qcom,rpm-msm8996";
95            qcom,glink-channels = "rpm_requests";
96
97            /* ... */
98        };
99    };
100