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