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