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