| # 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: |
| const: qcom,fastrpc |
| |
| label: |
| enum: |
| - adsp |
| - mdsp |
| - sdsp |
| - cdsp |
| |
| 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 |
| |
| iommus: |
| minItems: 1 |
| maxItems: 3 |
| |
| 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>; |
| }; |
| }; |
| }; |