17ef62cebSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 27ef62cebSEmmanuel Vadot%YAML 1.2 37ef62cebSEmmanuel Vadot--- 47ef62cebSEmmanuel Vadot$id: http://devicetree.org/schemas/misc/qcom,fastrpc.yaml# 57ef62cebSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 67ef62cebSEmmanuel Vadot 77ef62cebSEmmanuel Vadottitle: Qualcomm FastRPC Driver 87ef62cebSEmmanuel Vadot 97ef62cebSEmmanuel Vadotmaintainers: 107ef62cebSEmmanuel Vadot - Srinivas Kandagatla <srinivas.kandagatla@linaro.org> 117ef62cebSEmmanuel Vadot 127ef62cebSEmmanuel Vadotdescription: | 137ef62cebSEmmanuel Vadot The FastRPC implements an IPC (Inter-Processor Communication) 147ef62cebSEmmanuel Vadot mechanism that allows for clients to transparently make remote method 157ef62cebSEmmanuel Vadot invocations across DSP and APPS boundaries. This enables developers 167ef62cebSEmmanuel Vadot to offload tasks to the DSP and free up the application processor for 177ef62cebSEmmanuel Vadot other tasks. 187ef62cebSEmmanuel Vadot 197ef62cebSEmmanuel Vadotproperties: 207ef62cebSEmmanuel Vadot compatible: 217ef62cebSEmmanuel Vadot const: qcom,fastrpc 227ef62cebSEmmanuel Vadot 237ef62cebSEmmanuel Vadot label: 247ef62cebSEmmanuel Vadot enum: 257ef62cebSEmmanuel Vadot - adsp 267ef62cebSEmmanuel Vadot - mdsp 277ef62cebSEmmanuel Vadot - sdsp 287ef62cebSEmmanuel Vadot - cdsp 297ef62cebSEmmanuel Vadot 307ef62cebSEmmanuel Vadot memory-region: 317ef62cebSEmmanuel Vadot maxItems: 1 327ef62cebSEmmanuel Vadot description: 337ef62cebSEmmanuel Vadot Phandle to a node describing memory to be used for remote heap CMA. 347ef62cebSEmmanuel Vadot 357ef62cebSEmmanuel Vadot qcom,glink-channels: 367ef62cebSEmmanuel Vadot description: 377ef62cebSEmmanuel Vadot A list of channels tied to this function, used for matching 387ef62cebSEmmanuel Vadot the function to a set of virtual channels. 39f126890aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/string-array 407ef62cebSEmmanuel Vadot items: 417ef62cebSEmmanuel Vadot - const: fastrpcglink-apps-dsp 427ef62cebSEmmanuel Vadot 437ef62cebSEmmanuel Vadot qcom,non-secure-domain: 447ef62cebSEmmanuel Vadot description: 457ef62cebSEmmanuel Vadot Used to mark the current domain as non-secure. 467ef62cebSEmmanuel Vadot type: boolean 477ef62cebSEmmanuel Vadot 487ef62cebSEmmanuel Vadot qcom,smd-channels: 497ef62cebSEmmanuel Vadot description: 507ef62cebSEmmanuel Vadot Channel name used for the RPM communication 51f126890aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/string-array 527ef62cebSEmmanuel Vadot items: 537ef62cebSEmmanuel Vadot - const: fastrpcsmd-apps-dsp 547ef62cebSEmmanuel Vadot 557ef62cebSEmmanuel Vadot qcom,vmids: 567ef62cebSEmmanuel Vadot description: 577ef62cebSEmmanuel Vadot Virtual machine IDs for remote processor. 58f126890aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32-array 597ef62cebSEmmanuel Vadot 607ef62cebSEmmanuel Vadot "#address-cells": 617ef62cebSEmmanuel Vadot const: 1 627ef62cebSEmmanuel Vadot 637ef62cebSEmmanuel Vadot "#size-cells": 647ef62cebSEmmanuel Vadot const: 0 657ef62cebSEmmanuel Vadot 667ef62cebSEmmanuel VadotpatternProperties: 677ef62cebSEmmanuel Vadot "(compute-)?cb@[0-9]*$": 687ef62cebSEmmanuel Vadot type: object 697ef62cebSEmmanuel Vadot 707ef62cebSEmmanuel Vadot description: > 717ef62cebSEmmanuel Vadot Each subnode of the Fastrpc represents compute context banks available on the dsp. 727ef62cebSEmmanuel Vadot 737ef62cebSEmmanuel Vadot properties: 747ef62cebSEmmanuel Vadot compatible: 757ef62cebSEmmanuel Vadot const: qcom,fastrpc-compute-cb 767ef62cebSEmmanuel Vadot 777ef62cebSEmmanuel Vadot reg: 787ef62cebSEmmanuel Vadot maxItems: 1 797ef62cebSEmmanuel Vadot 80*01950c46SEmmanuel Vadot dma-coherent: true 81*01950c46SEmmanuel Vadot 827ef62cebSEmmanuel Vadot iommus: 837ef62cebSEmmanuel Vadot minItems: 1 848bab661aSEmmanuel Vadot maxItems: 3 857ef62cebSEmmanuel Vadot 867ef62cebSEmmanuel Vadot qcom,nsessions: 877ef62cebSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 887ef62cebSEmmanuel Vadot default: 1 897ef62cebSEmmanuel Vadot description: > 907ef62cebSEmmanuel Vadot A value indicating how many sessions can share this context bank. 917ef62cebSEmmanuel Vadot 927ef62cebSEmmanuel Vadot required: 937ef62cebSEmmanuel Vadot - compatible 947ef62cebSEmmanuel Vadot - reg 957ef62cebSEmmanuel Vadot 967ef62cebSEmmanuel Vadot additionalProperties: false 977ef62cebSEmmanuel Vadot 987ef62cebSEmmanuel Vadotrequired: 997ef62cebSEmmanuel Vadot - compatible 1007ef62cebSEmmanuel Vadot - label 1017ef62cebSEmmanuel Vadot - "#address-cells" 1027ef62cebSEmmanuel Vadot - "#size-cells" 1037ef62cebSEmmanuel Vadot 1047ef62cebSEmmanuel VadotadditionalProperties: false 1057ef62cebSEmmanuel Vadot 1067ef62cebSEmmanuel Vadotexamples: 1077ef62cebSEmmanuel Vadot - | 1087ef62cebSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 1097ef62cebSEmmanuel Vadot #include <dt-bindings/mailbox/qcom-ipcc.h> 1107ef62cebSEmmanuel Vadot 1117ef62cebSEmmanuel Vadot glink-edge { 1127ef62cebSEmmanuel Vadot interrupts-extended = <&ipcc IPCC_CLIENT_LPASS 1137ef62cebSEmmanuel Vadot IPCC_MPROC_SIGNAL_GLINK_QMP 1147ef62cebSEmmanuel Vadot IRQ_TYPE_EDGE_RISING>; 1157ef62cebSEmmanuel Vadot mboxes = <&ipcc IPCC_CLIENT_LPASS 1167ef62cebSEmmanuel Vadot IPCC_MPROC_SIGNAL_GLINK_QMP>; 1177ef62cebSEmmanuel Vadot label = "lpass"; 1187ef62cebSEmmanuel Vadot qcom,remote-pid = <2>; 1197ef62cebSEmmanuel Vadot 1207ef62cebSEmmanuel Vadot fastrpc { 1217ef62cebSEmmanuel Vadot compatible = "qcom,fastrpc"; 1227ef62cebSEmmanuel Vadot qcom,glink-channels = "fastrpcglink-apps-dsp"; 1237ef62cebSEmmanuel Vadot label = "sdsp"; 1247ef62cebSEmmanuel Vadot qcom,non-secure-domain; 1257ef62cebSEmmanuel Vadot #address-cells = <1>; 1267ef62cebSEmmanuel Vadot #size-cells = <0>; 1277ef62cebSEmmanuel Vadot 1287ef62cebSEmmanuel Vadot compute-cb@1 { 1297ef62cebSEmmanuel Vadot compatible = "qcom,fastrpc-compute-cb"; 1307ef62cebSEmmanuel Vadot reg = <1>; 1317ef62cebSEmmanuel Vadot iommus = <&apps_smmu 0x0541 0x0>; 1327ef62cebSEmmanuel Vadot }; 1337ef62cebSEmmanuel Vadot 1347ef62cebSEmmanuel Vadot compute-cb@2 { 1357ef62cebSEmmanuel Vadot compatible = "qcom,fastrpc-compute-cb"; 1367ef62cebSEmmanuel Vadot reg = <2>; 1377ef62cebSEmmanuel Vadot iommus = <&apps_smmu 0x0542 0x0>; 1387ef62cebSEmmanuel Vadot }; 1397ef62cebSEmmanuel Vadot 1407ef62cebSEmmanuel Vadot compute-cb@3 { 1417ef62cebSEmmanuel Vadot compatible = "qcom,fastrpc-compute-cb"; 1427ef62cebSEmmanuel Vadot reg = <3>; 1437ef62cebSEmmanuel Vadot iommus = <&apps_smmu 0x0543 0x0>; 1447ef62cebSEmmanuel Vadot }; 1457ef62cebSEmmanuel Vadot }; 1467ef62cebSEmmanuel Vadot }; 147