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