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 29*b2d2a78aSEmmanuel Vadot - cdsp1 307ef62cebSEmmanuel Vadot 317ef62cebSEmmanuel Vadot memory-region: 327ef62cebSEmmanuel Vadot maxItems: 1 337ef62cebSEmmanuel Vadot description: 347ef62cebSEmmanuel Vadot Phandle to a node describing memory to be used for remote heap CMA. 357ef62cebSEmmanuel Vadot 367ef62cebSEmmanuel Vadot qcom,glink-channels: 377ef62cebSEmmanuel Vadot description: 387ef62cebSEmmanuel Vadot A list of channels tied to this function, used for matching 397ef62cebSEmmanuel Vadot the function to a set of virtual channels. 40f126890aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/string-array 417ef62cebSEmmanuel Vadot items: 427ef62cebSEmmanuel Vadot - const: fastrpcglink-apps-dsp 437ef62cebSEmmanuel Vadot 447ef62cebSEmmanuel Vadot qcom,non-secure-domain: 457ef62cebSEmmanuel Vadot description: 467ef62cebSEmmanuel Vadot Used to mark the current domain as non-secure. 477ef62cebSEmmanuel Vadot type: boolean 487ef62cebSEmmanuel Vadot 497ef62cebSEmmanuel Vadot qcom,smd-channels: 507ef62cebSEmmanuel Vadot description: 517ef62cebSEmmanuel Vadot Channel name used for the RPM communication 52f126890aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/string-array 537ef62cebSEmmanuel Vadot items: 547ef62cebSEmmanuel Vadot - const: fastrpcsmd-apps-dsp 557ef62cebSEmmanuel Vadot 567ef62cebSEmmanuel Vadot qcom,vmids: 577ef62cebSEmmanuel Vadot description: 587ef62cebSEmmanuel Vadot Virtual machine IDs for remote processor. 59f126890aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32-array 607ef62cebSEmmanuel Vadot 617ef62cebSEmmanuel Vadot "#address-cells": 627ef62cebSEmmanuel Vadot const: 1 637ef62cebSEmmanuel Vadot 647ef62cebSEmmanuel Vadot "#size-cells": 657ef62cebSEmmanuel Vadot const: 0 667ef62cebSEmmanuel Vadot 677ef62cebSEmmanuel VadotpatternProperties: 687ef62cebSEmmanuel Vadot "(compute-)?cb@[0-9]*$": 697ef62cebSEmmanuel Vadot type: object 707ef62cebSEmmanuel Vadot 717ef62cebSEmmanuel Vadot description: > 727ef62cebSEmmanuel Vadot Each subnode of the Fastrpc represents compute context banks available on the dsp. 737ef62cebSEmmanuel Vadot 747ef62cebSEmmanuel Vadot properties: 757ef62cebSEmmanuel Vadot compatible: 767ef62cebSEmmanuel Vadot const: qcom,fastrpc-compute-cb 777ef62cebSEmmanuel Vadot 787ef62cebSEmmanuel Vadot reg: 797ef62cebSEmmanuel Vadot maxItems: 1 807ef62cebSEmmanuel Vadot 8101950c46SEmmanuel Vadot dma-coherent: true 8201950c46SEmmanuel Vadot 837ef62cebSEmmanuel Vadot iommus: 847ef62cebSEmmanuel Vadot minItems: 1 85*b2d2a78aSEmmanuel Vadot maxItems: 10 867ef62cebSEmmanuel Vadot 877ef62cebSEmmanuel Vadot qcom,nsessions: 887ef62cebSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 897ef62cebSEmmanuel Vadot default: 1 907ef62cebSEmmanuel Vadot description: > 917ef62cebSEmmanuel Vadot A value indicating how many sessions can share this context bank. 927ef62cebSEmmanuel Vadot 937ef62cebSEmmanuel Vadot required: 947ef62cebSEmmanuel Vadot - compatible 957ef62cebSEmmanuel Vadot - reg 967ef62cebSEmmanuel Vadot 977ef62cebSEmmanuel Vadot additionalProperties: false 987ef62cebSEmmanuel Vadot 997ef62cebSEmmanuel Vadotrequired: 1007ef62cebSEmmanuel Vadot - compatible 1017ef62cebSEmmanuel Vadot - label 1027ef62cebSEmmanuel Vadot - "#address-cells" 1037ef62cebSEmmanuel Vadot - "#size-cells" 1047ef62cebSEmmanuel Vadot 1057ef62cebSEmmanuel VadotadditionalProperties: false 1067ef62cebSEmmanuel Vadot 1077ef62cebSEmmanuel Vadotexamples: 1087ef62cebSEmmanuel Vadot - | 1097ef62cebSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 1107ef62cebSEmmanuel Vadot #include <dt-bindings/mailbox/qcom-ipcc.h> 1117ef62cebSEmmanuel Vadot 1127ef62cebSEmmanuel Vadot glink-edge { 1137ef62cebSEmmanuel Vadot interrupts-extended = <&ipcc IPCC_CLIENT_LPASS 1147ef62cebSEmmanuel Vadot IPCC_MPROC_SIGNAL_GLINK_QMP 1157ef62cebSEmmanuel Vadot IRQ_TYPE_EDGE_RISING>; 1167ef62cebSEmmanuel Vadot mboxes = <&ipcc IPCC_CLIENT_LPASS 1177ef62cebSEmmanuel Vadot IPCC_MPROC_SIGNAL_GLINK_QMP>; 1187ef62cebSEmmanuel Vadot label = "lpass"; 1197ef62cebSEmmanuel Vadot qcom,remote-pid = <2>; 1207ef62cebSEmmanuel Vadot 1217ef62cebSEmmanuel Vadot fastrpc { 1227ef62cebSEmmanuel Vadot compatible = "qcom,fastrpc"; 1237ef62cebSEmmanuel Vadot qcom,glink-channels = "fastrpcglink-apps-dsp"; 1247ef62cebSEmmanuel Vadot label = "sdsp"; 1257ef62cebSEmmanuel Vadot qcom,non-secure-domain; 1267ef62cebSEmmanuel Vadot #address-cells = <1>; 1277ef62cebSEmmanuel Vadot #size-cells = <0>; 1287ef62cebSEmmanuel Vadot 1297ef62cebSEmmanuel Vadot compute-cb@1 { 1307ef62cebSEmmanuel Vadot compatible = "qcom,fastrpc-compute-cb"; 1317ef62cebSEmmanuel Vadot reg = <1>; 1327ef62cebSEmmanuel Vadot iommus = <&apps_smmu 0x0541 0x0>; 1337ef62cebSEmmanuel Vadot }; 1347ef62cebSEmmanuel Vadot 1357ef62cebSEmmanuel Vadot compute-cb@2 { 1367ef62cebSEmmanuel Vadot compatible = "qcom,fastrpc-compute-cb"; 1377ef62cebSEmmanuel Vadot reg = <2>; 1387ef62cebSEmmanuel Vadot iommus = <&apps_smmu 0x0542 0x0>; 1397ef62cebSEmmanuel Vadot }; 1407ef62cebSEmmanuel Vadot 1417ef62cebSEmmanuel Vadot compute-cb@3 { 1427ef62cebSEmmanuel Vadot compatible = "qcom,fastrpc-compute-cb"; 1437ef62cebSEmmanuel Vadot reg = <3>; 1447ef62cebSEmmanuel Vadot iommus = <&apps_smmu 0x0543 0x0>; 1457ef62cebSEmmanuel Vadot }; 1467ef62cebSEmmanuel Vadot }; 1477ef62cebSEmmanuel Vadot }; 148