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 }; 150