linux/Documentation/devicetree/bindings/misc/qcom,fastrpc.yaml
Abel Vesa 70aa0a5551 dt-bindings: misc: qcom,fastrpc: increase allowed iommus entries
The fastrpc components on the SM8550 SoC can require up to 3 IOMMU
entries, this bumps the maxItems to 3 for this purpose.

Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20221125071405.148786-2-srinivas.kandagatla@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-11-25 18:45:33 +01:00

144 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>;
};
};
};