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    description:
22      Name of the edge, used for debugging and identification purposes. The
23      node name will be used if this is not present.
24
25  interrupts:
26    maxItems: 1
27
28  mboxes:
29    items:
30      - description: rpm_hlos mailbox in APCS
31
32  qcom,remote-pid:
33    $ref: /schemas/types.yaml#/definitions/uint32
34    description:
35      The identifier for the remote processor as known by the rest of the
36      system.
37
38  qcom,rpm-msg-ram:
39    $ref: /schemas/types.yaml#/definitions/phandle
40    description: |
41      RPM message memory resource (compatible: qcom,rpm-msg-ram).
42
43  rpm-requests:
44    type: object
45    $ref: /schemas/soc/qcom/qcom,smd-rpm.yaml#
46    unevaluatedProperties: false
47    description:
48      Qualcomm Resource Power Manager (RPM) over G-Link
49
50    properties:
51      qcom,intents:
52        $ref: /schemas/types.yaml#/definitions/uint32-matrix
53        minItems: 1
54        maxItems: 32
55        items:
56          items:
57            - description: size of each intent to preallocate
58            - description: amount of intents to preallocate
59              minimum: 1
60        description:
61          List of (size, amount) pairs describing what intents should be
62          preallocated for this virtual channel. This can be used to tweak the
63          default intents available for the channel to meet expectations of the
64          remote.
65
66    required:
67      - qcom,glink-channels
68
69required:
70  - compatible
71  - interrupts
72  - mboxes
73
74anyOf:
75  - required:
76      - qcom,remote-pid
77  - required:
78      - qcom,rpm-msg-ram
79
80additionalProperties: false
81
82examples:
83  - |
84    #include <dt-bindings/interrupt-controller/arm-gic.h>
85
86    glink-edge {
87        compatible = "qcom,glink-rpm";
88        interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
89        mboxes = <&apcs_glb 0>;
90        qcom,rpm-msg-ram = <&rpm_msg_ram>;
91
92        rpm-requests {
93            compatible = "qcom,rpm-msm8996";
94            qcom,glink-channels = "rpm_requests";
95
96            /* ... */
97        };
98    };
99