xref: /linux/Documentation/devicetree/bindings/misc/qcom,fastrpc.yaml (revision bba2c3615bd6cfee7456d1130f2e6b01b3f4e9ba)
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              - qcom,hawi-fastrpc
29          - const: qcom,kaanapali-fastrpc
30
31  label:
32    enum:
33      - adsp
34      - mdsp
35      - sdsp
36      - cdsp
37      - cdsp1
38      - gdsp0
39      - gdsp1
40
41  memory-region:
42    maxItems: 1
43    description:
44      Phandle to a node describing memory to be used for remote heap CMA.
45
46  qcom,glink-channels:
47    description:
48      A list of channels tied to this function, used for matching
49      the function to a set of virtual channels.
50    $ref: /schemas/types.yaml#/definitions/string-array
51    items:
52      - const: fastrpcglink-apps-dsp
53
54  qcom,non-secure-domain:
55    description:
56      Used to mark the current domain as non-secure.
57    type: boolean
58
59  qcom,smd-channels:
60    description:
61      Channel name used for the RPM communication
62    $ref: /schemas/types.yaml#/definitions/string-array
63    items:
64      - const: fastrpcsmd-apps-dsp
65
66  qcom,vmids:
67    description:
68      Virtual machine IDs for remote processor.
69    $ref: /schemas/types.yaml#/definitions/uint32-array
70
71  "#address-cells":
72    const: 1
73
74  "#size-cells":
75    const: 0
76
77patternProperties:
78  "(compute-)?cb@[0-9]*$":
79    type: object
80
81    description: >
82      Each subnode of the Fastrpc represents compute context banks available on the dsp.
83
84    properties:
85      compatible:
86        const: qcom,fastrpc-compute-cb
87
88      reg:
89        maxItems: 1
90
91      dma-coherent: true
92
93      iommus:
94        minItems: 1
95        maxItems: 10
96
97      qcom,nsessions:
98        $ref: /schemas/types.yaml#/definitions/uint32
99        default: 1
100        description: >
101          A value indicating how many sessions can share this context bank.
102
103    required:
104      - compatible
105      - reg
106
107    additionalProperties: false
108
109required:
110  - compatible
111  - label
112  - "#address-cells"
113  - "#size-cells"
114
115additionalProperties: false
116
117examples:
118  - |
119    #include <dt-bindings/interrupt-controller/arm-gic.h>
120    #include <dt-bindings/mailbox/qcom-ipcc.h>
121
122    glink-edge {
123        interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
124                                     IPCC_MPROC_SIGNAL_GLINK_QMP
125                                     IRQ_TYPE_EDGE_RISING>;
126        mboxes = <&ipcc IPCC_CLIENT_LPASS
127                        IPCC_MPROC_SIGNAL_GLINK_QMP>;
128        label = "lpass";
129        qcom,remote-pid = <2>;
130
131        fastrpc {
132            compatible = "qcom,fastrpc";
133            qcom,glink-channels = "fastrpcglink-apps-dsp";
134            label = "sdsp";
135            qcom,non-secure-domain;
136            #address-cells = <1>;
137            #size-cells = <0>;
138
139            compute-cb@1 {
140                compatible = "qcom,fastrpc-compute-cb";
141                reg = <1>;
142                iommus = <&apps_smmu 0x0541 0x0>;
143            };
144
145            compute-cb@2 {
146                compatible = "qcom,fastrpc-compute-cb";
147                reg = <2>;
148                iommus = <&apps_smmu 0x0542 0x0>;
149            };
150
151            compute-cb@3 {
152                compatible = "qcom,fastrpc-compute-cb";
153                reg = <3>;
154                iommus = <&apps_smmu 0x0543 0x0>;
155            };
156        };
157    };
158