| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) | |
| %YAML 1.2 | |
| --- | |
| $id: http://devicetree.org/schemas/misc/qcom,fastrpc.yaml# | |
| $schema: http://devicetree.org/meta-schemas/core.yaml# | |
| title: Qualcomm FastRPC Driver | |
| maintainers: | |
| - Srinivas Kandagatla <srinivas.kandagatla@linaro.org> | |
| description: | | |
| The FastRPC implements an IPC (Inter-Processor Communication) | |
| mechanism that allows for clients to transparently make remote method | |
| invocations across DSP and APPS boundaries. This enables developers | |
| to offload tasks to the DSP and free up the application processor for | |
| other tasks. | |
| properties: | |
| compatible: | |
| oneOf: | |
| - enum: | |
| - qcom,kaanapali-fastrpc | |
| - qcom,fastrpc | |
| - items: | |
| - enum: | |
| - qcom,glymur-fastrpc | |
| - qcom,hawi-fastrpc | |
| - qcom,maili-fastrpc | |
| - qcom,nord-fastrpc | |
| - const: qcom,kaanapali-fastrpc | |
| label: | |
| enum: | |
| - adsp | |
| - mdsp | |
| - sdsp | |
| - cdsp | |
| - cdsp1 | |
| - cdsp2 | |
| - cdsp3 | |
| - gdsp0 | |
| - gdsp1 | |
| memory-region: | |
| maxItems: 1 | |
| description: | |
| Phandle to a node describing memory to be used for remote heap CMA. | |
| qcom,glink-channels: | |
| description: | |
| A list of channels tied to this function, used for matching | |
| the function to a set of virtual channels. | |
| $ref: /schemas/types.yaml#/definitions/string-array | |
| items: | |
| - const: fastrpcglink-apps-dsp | |
| qcom,non-secure-domain: | |
| description: | |
| Used to mark the current domain as non-secure. | |
| type: boolean | |
| qcom,smd-channels: | |
| description: | |
| Channel name used for the RPM communication | |
| $ref: /schemas/types.yaml#/definitions/string-array | |
| items: | |
| - const: fastrpcsmd-apps-dsp | |
| qcom,vmids: | |
| description: | |
| Virtual machine IDs for remote processor. | |
| $ref: /schemas/types.yaml#/definitions/uint32-array | |
| "#address-cells": | |
| const: 1 | |
| "#size-cells": | |
| const: 0 | |
| patternProperties: | |
| "(compute-)?cb@[0-9]*$": | |
| type: object | |
| description: > | |
| Each subnode of the Fastrpc represents compute context banks available on the dsp. | |
| properties: | |
| compatible: | |
| const: qcom,fastrpc-compute-cb | |
| reg: | |
| maxItems: 1 | |
| dma-coherent: true | |
| iommus: | |
| minItems: 1 | |
| maxItems: 10 | |
| qcom,nsessions: | |
| $ref: /schemas/types.yaml#/definitions/uint32 | |
| default: 1 | |
| description: > | |
| A value indicating how many sessions can share this context bank. | |
| required: | |
| - compatible | |
| - reg | |
| additionalProperties: false | |
| required: | |
| - compatible | |
| - label | |
| - "#address-cells" | |
| - "#size-cells" | |
| additionalProperties: false | |
| examples: | |
| - | | |
| #include <dt-bindings/interrupt-controller/arm-gic.h> | |
| #include <dt-bindings/mailbox/qcom-ipcc.h> | |
| glink-edge { | |
| interrupts-extended = <&ipcc IPCC_CLIENT_LPASS | |
| IPCC_MPROC_SIGNAL_GLINK_QMP | |
| IRQ_TYPE_EDGE_RISING>; | |
| mboxes = <&ipcc IPCC_CLIENT_LPASS | |
| IPCC_MPROC_SIGNAL_GLINK_QMP>; | |
| label = "lpass"; | |
| qcom,remote-pid = <2>; | |
| fastrpc { | |
| compatible = "qcom,fastrpc"; | |
| qcom,glink-channels = "fastrpcglink-apps-dsp"; | |
| label = "sdsp"; | |
| qcom,non-secure-domain; | |
| #address-cells = <1>; | |
| #size-cells = <0>; | |
| compute-cb@1 { | |
| compatible = "qcom,fastrpc-compute-cb"; | |
| reg = <1>; | |
| iommus = <&apps_smmu 0x0541 0x0>; | |
| }; | |
| compute-cb@2 { | |
| compatible = "qcom,fastrpc-compute-cb"; | |
| reg = <2>; | |
| iommus = <&apps_smmu 0x0542 0x0>; | |
| }; | |
| compute-cb@3 { | |
| compatible = "qcom,fastrpc-compute-cb"; | |
| reg = <3>; | |
| iommus = <&apps_smmu 0x0543 0x0>; | |
| }; | |
| }; | |
| }; |