Skip to content

Commit

Permalink
dt-bindings: remoteproc: qcom,smd-edge: define children
Browse files Browse the repository at this point in the history
SMD edge contains subnodes representing devices related to the remote
processor.  With limietd number of remote processors, there is a limited
set of such devices.

List all of them in smd-edge bindings so schema can strictly check for
subnodes.

Additional benefit is requirement of "qcom,smd-channels" for such
subnodes, because their schema cannot enforce it (few devices like APR
or FastRPC can be part of either SMD or GLINK edge).

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20220909125403.803158-8-krzysztof.kozlowski@linaro.org
Signed-off-by: Rob Herring <robh@kernel.org>
  • Loading branch information
Krzysztof Kozlowski authored and Rob Herring committed Sep 9, 2022
1 parent 6dae25e commit 547bed8
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 27 deletions.
34 changes: 33 additions & 1 deletion Documentation/devicetree/bindings/remoteproc/qcom,smd-edge.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,30 @@ description:
Qualcomm SMD subnode represents a remote subsystem or a remote processor of
some sort - or in SMD language an "edge". The name of the edges are not
important.

In turn, subnodes of the "edges" represent devices tied to SMD channels on
that "edge". The names of the devices are not important. The properties of
these nodes are defined by the individual bindings for the SMD devices.
See also Documentation/devicetree/bindings/soc/qcom/qcom,smd.yaml

properties:
$nodename:
const: "smd-edge"

apr:
$ref: /schemas/soc/qcom/qcom,apr.yaml#
required:
- qcom,smd-channels
description:
Qualcomm APR/GPR (Asynchronous/Generic Packet Router)

fastrpc:
$ref: /schemas/misc/qcom,fastrpc.yaml#
required:
- qcom,smd-channels
description:
Qualcomm FastRPC

interrupts:
maxItems: 1

Expand Down Expand Up @@ -56,6 +74,20 @@ properties:
The identifier for the remote processor as known by the rest of the
system.

rpm-requests:
$ref: /schemas/soc/qcom/qcom,smd-rpm.yaml#
required:
- qcom,smd-channels
description:
Qualcomm Resource Power Manager (RPM) over SMD.

wcnss:
$ref: /schemas/soc/qcom/qcom,wcnss.yaml
required:
- qcom,smd-channels
description:
Qualcomm WCNSS for Bluetooth, WiFi and FM radio.

required:
- interrupts
- qcom,smd-edge
Expand All @@ -66,7 +98,7 @@ oneOf:
- required:
- qcom,ipc

additionalProperties: true
additionalProperties: false

examples:
- |
Expand Down
27 changes: 1 addition & 26 deletions Documentation/devicetree/bindings/soc/qcom/qcom,smd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,37 +22,12 @@ properties:
patternProperties:
"^smd-edge|rpm$":
$ref: /schemas/remoteproc/qcom,smd-edge.yaml#
unevaluatedProperties: false
description:
Each subnode of the SMD node represents a remote subsystem or a remote
processor of some sort - or in SMD language an "edge". The name of the
edges are not important.

properties:
rpm-requests:
type: object
description:
In turn, subnodes of the "edges" represent devices tied to SMD
channels on that "edge". The names of the devices are not
important. The properties of these nodes are defined by the
individual bindings for the SMD devices.

properties:
qcom,smd-channels:
$ref: /schemas/types.yaml#/definitions/string-array
minItems: 1
maxItems: 32
description:
A list of channels tied to this device, used for matching the
device to channels.

required:
- compatible
- qcom,smd-channels

additionalProperties: true

unevaluatedProperties: false

required:
- compatible

Expand Down

0 comments on commit 547bed8

Please sign in to comment.