Commit df4fdd0d authored by Rob Herring's avatar Rob Herring
Browse files

dt-bindings: firmware: arm,scmi: Restrict protocol child node properties



The SCMI protocol child nodes are missing any constraints on unknown
properties. Specifically, either 'unevaluatedProperties' or
'additionalProperties' is needed. The current structure with a regex
match for all child nodes doesn't work for this purpose, so let's move
the common properties '$defs' entry which each specific protocol node
can reference and set 'unevaluatedProperties: false'.

Reviewed-by: default avatarSudeep Holla <sudeep.holla@arm.com>
Link: https://lore.kernel.org/r/20230124222023.316089-1-robh@kernel.org


Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent f3531d1a
Loading
Loading
Loading
Loading
+33 −10
Original line number Diff line number Diff line
@@ -100,7 +100,9 @@ properties:
      Channel specifier required when using OP-TEE transport.

  protocol@11:
    type: object
    $ref: '#/$defs/protocol-node'
    unevaluatedProperties: false

    properties:
      reg:
        const: 0x11
@@ -112,7 +114,9 @@ properties:
      - '#power-domain-cells'

  protocol@13:
    type: object
    $ref: '#/$defs/protocol-node'
    unevaluatedProperties: false

    properties:
      reg:
        const: 0x13
@@ -124,7 +128,9 @@ properties:
      - '#clock-cells'

  protocol@14:
    type: object
    $ref: '#/$defs/protocol-node'
    unevaluatedProperties: false

    properties:
      reg:
        const: 0x14
@@ -136,7 +142,9 @@ properties:
      - '#clock-cells'

  protocol@15:
    type: object
    $ref: '#/$defs/protocol-node'
    unevaluatedProperties: false

    properties:
      reg:
        const: 0x15
@@ -148,7 +156,9 @@ properties:
      - '#thermal-sensor-cells'

  protocol@16:
    type: object
    $ref: '#/$defs/protocol-node'
    unevaluatedProperties: false

    properties:
      reg:
        const: 0x16
@@ -160,20 +170,31 @@ properties:
      - '#reset-cells'

  protocol@17:
    type: object
    $ref: '#/$defs/protocol-node'
    unevaluatedProperties: false

    properties:
      reg:
        const: 0x17

      regulators:
        type: object
        additionalProperties: false
        description:
          The list of all regulators provided by this SCMI controller.

        properties:
          '#address-cells':
            const: 1

          '#size-cells':
            const: 0

        patternProperties:
          '^regulators@[0-9a-f]+$':
          '^regulator@[0-9a-f]+$':
            type: object
            $ref: "../regulator/regulator.yaml#"
            unevaluatedProperties: false

            properties:
              reg:
@@ -184,15 +205,17 @@ properties:
              - reg

  protocol@18:
    type: object
    $ref: '#/$defs/protocol-node'
    unevaluatedProperties: false

    properties:
      reg:
        const: 0x18

additionalProperties: false

patternProperties:
  '^protocol@[0-9a-f]+$':
$defs:
  protocol-node:
    type: object
    description:
      Each sub-node represents a protocol supported. If the platform