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:
parent
d2153e4cdf
commit
ed18a9b140
@ -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>;
|
||||
};
|
||||
...
|
||||
};
|
||||
};
|
||||
};
|
124
Documentation/devicetree/bindings/misc/qcom,fastrpc.yaml
Normal file
124
Documentation/devicetree/bindings/misc/qcom,fastrpc.yaml
Normal 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>;
|
||||
};
|
||||
};
|
||||
};
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user