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