dt-bindings: mtd: fixed-partitions: Fix 'sercomm,scpart-id' schema

Message ID 20221111212824.4103514-1-robh@kernel.org
State New
Headers
Series dt-bindings: mtd: fixed-partitions: Fix 'sercomm,scpart-id' schema |

Commit Message

Rob Herring Nov. 11, 2022, 9:28 p.m. UTC
  The schema for 'sercomm,scpart-id' is broken. The 'if' condition is
never true because 'compatible' is in the parent node, not the child
node the sub-schema applies to. The example passes as there are no
constraints on additional/unevaluated properties. That's a secondary
issue which is complicated due to nested partitions.

Drop the if/then schema and the unnecessary 'allOf' so that the
'sercomm,scpart-id' property is at least defined.

Cc: Mikhail Zhilkin <csharper2005@gmail.com>
Signed-off-by: Rob Herring <robh@kernel.org>
---
 .../mtd/partitions/fixed-partitions.yaml      | 29 +++++++------------
 1 file changed, 11 insertions(+), 18 deletions(-)
  

Comments

Miquel Raynal Nov. 14, 2022, 9:14 a.m. UTC | #1
Hi Rob,

robh@kernel.org wrote on Fri, 11 Nov 2022 15:28:24 -0600:

> The schema for 'sercomm,scpart-id' is broken. The 'if' condition is
> never true because 'compatible' is in the parent node, not the child
> node the sub-schema applies to. The example passes as there are no
> constraints on additional/unevaluated properties. That's a secondary
> issue which is complicated due to nested partitions.
> 
> Drop the if/then schema and the unnecessary 'allOf' so that the
> 'sercomm,scpart-id' property is at least defined.
> 
> Cc: Mikhail Zhilkin <csharper2005@gmail.com>
> Signed-off-by: Rob Herring <robh@kernel.org>

Mmmh right, I've missed that in my little rework. I'll apply it with
the big series "[PATCH v3 00/17]  Improve MTD bindings" as soon as the
last remaining patch gets reviewed.

> ---
>  .../mtd/partitions/fixed-partitions.yaml      | 29 +++++++------------
>  1 file changed, 11 insertions(+), 18 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml b/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml
> index ad3ccd250802..39b715aad2dc 100644
> --- a/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml
> +++ b/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml
> @@ -31,24 +31,17 @@ properties:
>  
>  patternProperties:
>    "@[0-9a-f]+$":
> -    allOf:
> -      - $ref: "partition.yaml#"
> -      - if:
> -          properties:
> -            compatible:
> -              contains:
> -                const: sercomm,sc-partitions
> -        then:
> -          properties:
> -            sercomm,scpart-id:
> -              description: Partition id in Sercomm partition map. Mtd
> -                parser uses this id to find a record in the partition map
> -                containing offset and size of the current partition. The
> -                values from partition map overrides partition offset and
> -                size defined in reg property of the dts. Frequently these
> -                values are the same, but may differ if device has bad
> -                eraseblocks on a flash.
> -              $ref: /schemas/types.yaml#/definitions/uint32
> +    $ref: partition.yaml#
> +
> +    properties:
> +      sercomm,scpart-id:
> +        description: Partition id in Sercomm partition map. Mtd parser
> +          uses this id to find a record in the partition map containing
> +          offset and size of the current partition. The values from
> +          partition map overrides partition offset and size defined in
> +          reg property of the dts. Frequently these values are the same,
> +          but may differ if device has bad eraseblocks on a flash.
> +        $ref: /schemas/types.yaml#/definitions/uint32
>  
>  required:
>    - "#address-cells"


Thanks,
Miquèl
  
Miquel Raynal Nov. 17, 2022, 9:14 p.m. UTC | #2
On Fri, 2022-11-11 at 21:28:24 UTC, Rob Herring wrote:
> The schema for 'sercomm,scpart-id' is broken. The 'if' condition is
> never true because 'compatible' is in the parent node, not the child
> node the sub-schema applies to. The example passes as there are no
> constraints on additional/unevaluated properties. That's a secondary
> issue which is complicated due to nested partitions.
> 
> Drop the if/then schema and the unnecessary 'allOf' so that the
> 'sercomm,scpart-id' property is at least defined.
> 
> Cc: Mikhail Zhilkin <csharper2005@gmail.com>
> Signed-off-by: Rob Herring <robh@kernel.org>

Applied to https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git mtd/next, thanks.

Miquel
  

Patch

diff --git a/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml b/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml
index ad3ccd250802..39b715aad2dc 100644
--- a/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml
+++ b/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml
@@ -31,24 +31,17 @@  properties:
 
 patternProperties:
   "@[0-9a-f]+$":
-    allOf:
-      - $ref: "partition.yaml#"
-      - if:
-          properties:
-            compatible:
-              contains:
-                const: sercomm,sc-partitions
-        then:
-          properties:
-            sercomm,scpart-id:
-              description: Partition id in Sercomm partition map. Mtd
-                parser uses this id to find a record in the partition map
-                containing offset and size of the current partition. The
-                values from partition map overrides partition offset and
-                size defined in reg property of the dts. Frequently these
-                values are the same, but may differ if device has bad
-                eraseblocks on a flash.
-              $ref: /schemas/types.yaml#/definitions/uint32
+    $ref: partition.yaml#
+
+    properties:
+      sercomm,scpart-id:
+        description: Partition id in Sercomm partition map. Mtd parser
+          uses this id to find a record in the partition map containing
+          offset and size of the current partition. The values from
+          partition map overrides partition offset and size defined in
+          reg property of the dts. Frequently these values are the same,
+          but may differ if device has bad eraseblocks on a flash.
+        $ref: /schemas/types.yaml#/definitions/uint32
 
 required:
   - "#address-cells"