xref: /linux/Documentation/devicetree/bindings/misc/qcom,fastrpc.yaml (revision 5643c6b2c8308b206cb01cbfd0e6ac80f9f1bc9a)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/misc/qcom,fastrpc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm FastRPC Driver
8
9maintainers:
10  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
11
12description: |
13  The FastRPC implements an IPC (Inter-Processor Communication)
14  mechanism that allows for clients to transparently make remote method
15  invocations across DSP and APPS boundaries. This enables developers
16  to offload tasks to the DSP and free up the application processor for
17  other tasks.
18
19properties:
20  compatible:
21    oneOf:
22      - enum:
23          - qcom,kaanapali-fastrpc
24          - qcom,fastrpc
25      - items:
26          - enum:
27              - qcom,glymur-fastrpc
28          - const: qcom,kaanapali-fastrpc
29
30  label:
31    enum:
32      - adsp
33      - mdsp
34      - sdsp
35      - cdsp
36      - cdsp1
37      - gdsp0
38      - gdsp1
39
40  memory-region:
41    maxItems: 1
42    description:
43      Phandle to a node describing memory to be used for remote heap CMA.
44
45  qcom,glink-channels:
46    description:
47      A list of channels tied to this function, used for matching
48      the function to a set of virtual channels.
49    $ref: /schemas/types.yaml#/definitions/string-array
50    items:
51      - const: fastrpcglink-apps-dsp
52
53  qcom,non-secure-domain:
54    description:
55      Used to mark the current domain as non-secure.
56    type: boolean
57
58  qcom,smd-channels:
59    description:
60      Channel name used for the RPM communication
61    $ref: /schemas/types.yaml#/definitions/string-array
62    items:
63      - const: fastrpcsmd-apps-dsp
64
65  qcom,vmids:
66    description:
67      Virtual machine IDs for remote processor.
68    $ref: /schemas/types.yaml#/definitions/uint32-array
69
70  "#address-cells":
71    const: 1
72
73  "#size-cells":
74    const: 0
75
76patternProperties:
77  "(compute-)?cb@[0-9]*$":
78    type: object
79
80    description: >
81      Each subnode of the Fastrpc represents compute context banks available on the dsp.
82
83    properties:
84      compatible:
85        const: qcom,fastrpc-compute-cb
86
87      reg:
88        maxItems: 1
89
90      dma-coherent: true
91
92      iommus:
93        minItems: 1
94        maxItems: 10
95
96      qcom,nsessions:
97        $ref: /schemas/types.yaml#/definitions/uint32
98        default: 1
99        description: >
100          A value indicating how many sessions can share this context bank.
101
102    required:
103      - compatible
104      - reg
105
106    additionalProperties: false
107
108required:
109  - compatible
110  - label
111  - "#address-cells"
112  - "#size-cells"
113
114additionalProperties: false
115
116examples:
117  - |
118    #include <dt-bindings/interrupt-controller/arm-gic.h>
119    #include <dt-bindings/mailbox/qcom-ipcc.h>
120
121    glink-edge {
122        interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
123                                     IPCC_MPROC_SIGNAL_GLINK_QMP
124                                     IRQ_TYPE_EDGE_RISING>;
125        mboxes = <&ipcc IPCC_CLIENT_LPASS
126                        IPCC_MPROC_SIGNAL_GLINK_QMP>;
127        label = "lpass";
128        qcom,remote-pid = <2>;
129
130        fastrpc {
131            compatible = "qcom,fastrpc";
132            qcom,glink-channels = "fastrpcglink-apps-dsp";
133            label = "sdsp";
134            qcom,non-secure-domain;
135            #address-cells = <1>;
136            #size-cells = <0>;
137
138            compute-cb@1 {
139                compatible = "qcom,fastrpc-compute-cb";
140                reg = <1>;
141                iommus = <&apps_smmu 0x0541 0x0>;
142            };
143
144            compute-cb@2 {
145                compatible = "qcom,fastrpc-compute-cb";
146                reg = <2>;
147                iommus = <&apps_smmu 0x0542 0x0>;
148            };
149
150            compute-cb@3 {
151                compatible = "qcom,fastrpc-compute-cb";
152                reg = <3>;
153                iommus = <&apps_smmu 0x0543 0x0>;
154            };
155        };
156    };
157