Commit 547bed81 authored by Krzysztof Kozlowski's avatar Krzysztof Kozlowski Committed by Rob Herring
Browse files

dt-bindings: remoteproc: qcom,smd-edge: define children



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: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20220909125403.803158-8-krzysztof.kozlowski@linaro.org


Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent 6dae25e4
Loading
Loading
Loading
Loading
+33 −1
Original line number Original line Diff line number Diff line
@@ -13,12 +13,30 @@ description:
  Qualcomm SMD subnode represents a remote subsystem or a remote processor of
  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
  some sort - or in SMD language an "edge". The name of the edges are not
  important.
  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
  See also Documentation/devicetree/bindings/soc/qcom/qcom,smd.yaml


properties:
properties:
  $nodename:
  $nodename:
    const: "smd-edge"
    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:
  interrupts:
    maxItems: 1
    maxItems: 1


@@ -56,6 +74,20 @@ properties:
      The identifier for the remote processor as known by the rest of the
      The identifier for the remote processor as known by the rest of the
      system.
      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:
required:
  - interrupts
  - interrupts
  - qcom,smd-edge
  - qcom,smd-edge
@@ -66,7 +98,7 @@ oneOf:
  - required:
  - required:
      - qcom,ipc
      - qcom,ipc


additionalProperties: true
additionalProperties: false


examples:
examples:
  - |
  - |
+1 −26
Original line number Original line Diff line number Diff line
@@ -22,37 +22,12 @@ properties:
patternProperties:
patternProperties:
  "^smd-edge|rpm$":
  "^smd-edge|rpm$":
    $ref: /schemas/remoteproc/qcom,smd-edge.yaml#
    $ref: /schemas/remoteproc/qcom,smd-edge.yaml#
    unevaluatedProperties: false
    description:
    description:
      Each subnode of the SMD node represents a remote subsystem or a remote
      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
      processor of some sort - or in SMD language an "edge". The name of the
      edges are not important.
      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:
required:
  - compatible
  - compatible