145 lines
3.5 KiB
YAML
145 lines
3.5 KiB
YAML
|
# 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>;
|
||
|
};
|
||
|
};
|
||
|
};
|