dt-bindings: misc: fastrpc convert bindings to yaml

Convert Qualcomm FastRPC bindings to yaml format, so that we could validate
dt-entries correctly and any future additions can go into yaml format.

Use compute-cb@ subnodes instead of just cb@. Add qcom,glink-channels and
qcom,smd-channels missing properties to make sure dtbs_check doesn't fail
right off the bat. Correct the name of the parent node in the example from
smd-edge to glink-edge.

Since now the qcom,fastrpc bindings document is yaml, update the
reference to it in qcom,glink-edge and also use $ref.

Also update the MAINTAINERS file to point to the yaml version.

Co-developed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Co-developed-by: David Heidelberg <david@ixit.cz>
Signed-off-by: David Heidelberg <david@ixit.cz>
Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20220907074301.3996021-1-abel.vesa@linaro.org
Signed-off-by: Rob Herring <robh@kernel.org>
This commit is contained in:
Abel Vesa 2022-09-07 10:43:01 +03:00 committed by Rob Herring
parent d2153e4cdf
commit ed18a9b140
4 changed files with 127 additions and 91 deletions

View File

@ -1,88 +0,0 @@
Qualcomm Technologies, Inc. FastRPC Driver
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.
- compatible:
Usage: required
Value type: <stringlist>
Definition: must be "qcom,fastrpc"
- label
Usage: required
Value type: <string>
Definition: should specify the dsp domain name this fastrpc
corresponds to. must be one of this: "adsp", "mdsp", "sdsp", "cdsp"
- qcom,non-secure-domain:
Usage: required
Value type: <boolean>
Definition: Property to specify that dsp domain is non-secure.
- qcom,vmids:
Usage: optional
Value type: <u32 array>
Definition: Virtual machine IDs for remote processor.
- #address-cells
Usage: required
Value type: <u32>
Definition: Must be 1
- #size-cells
Usage: required
Value type: <u32>
Definition: Must be 0
= COMPUTE BANKS
Each subnode of the Fastrpc represents compute context banks available
on the dsp.
- All Compute context banks MUST contain the following properties:
- compatible:
Usage: required
Value type: <stringlist>
Definition: must be "qcom,fastrpc-compute-cb"
- reg
Usage: required
Value type: <u32>
Definition: Context Bank ID.
- qcom,nsessions:
Usage: Optional
Value type: <u32>
Defination: A value indicating how many sessions can share this
context bank. Defaults to 1 when this property
is not specified.
Example:
adsp-pil {
compatible = "qcom,msm8996-adsp-pil";
...
smd-edge {
label = "lpass";
fastrpc {
compatible = "qcom,fastrpc";
qcom,smd-channels = "fastrpcsmd-apps-dsp";
label = "adsp";
#address-cells = <1>;
#size-cells = <0>;
cb@1 {
compatible = "qcom,fastrpc-compute-cb";
reg = <1>;
};
cb@2 {
compatible = "qcom,fastrpc-compute-cb";
reg = <2>;
};
...
};
};
};

View File

@ -0,0 +1,124 @@
# 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
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"
maxItems: 1
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"
maxItems: 1
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
qcom,nsession:
$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";
label = "adsp";
qcom,smd-channels = "fastrpcsmd-apps-dsp";
#address-cells = <1>;
#size-cells = <0>;
compute-cb@1 {
compatible = "qcom,fastrpc-compute-cb";
reg = <1>;
};
compute-cb@2 {
compatible = "qcom,fastrpc-compute-cb";
reg = <2>;
};
};
};

View File

@ -23,9 +23,9 @@ properties:
Qualcomm APR/GPR (Asynchronous/Generic Packet Router)
fastrpc:
type: object
$ref: /schemas/misc/qcom,fastrpc.yaml#
description:
See Documentation/devicetree/bindings/misc/qcom,fastrpc.txt
Qualcomm FastRPC
interrupts:
maxItems: 1

View File

@ -16862,7 +16862,7 @@ M: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
M: Amol Maheshwari <amahesh@qti.qualcomm.com>
L: linux-arm-msm@vger.kernel.org
S: Maintained
F: Documentation/devicetree/bindings/misc/qcom,fastrpc.txt
F: Documentation/devicetree/bindings/misc/qcom,fastrpc.yaml
F: drivers/misc/fastrpc.c
F: include/uapi/misc/fastrpc.h