diff mbox series

dt-bindings: leds: Add missing (unevaluated|additional)Properties on child nodes

Message ID 20220823145649.3118479-13-robh@kernel.org
State New
Headers show
Series dt-bindings: leds: Add missing (unevaluated|additional)Properties on child nodes | expand

Commit Message

Rob Herring (Arm) Aug. 23, 2022, 2:56 p.m. UTC
In order to ensure only documented properties are present, node schemas
must have unevaluatedProperties or additionalProperties set to false
(typically).

Signed-off-by: Rob Herring <robh@kernel.org>
---
 .../bindings/leds/issi,is31fl319x.yaml           |  1 +
 .../devicetree/bindings/leds/leds-aw2013.yaml    |  1 +
 .../devicetree/bindings/leds/leds-gpio.yaml      |  1 +
 .../devicetree/bindings/leds/leds-lgm.yaml       | 10 +++++++---
 .../devicetree/bindings/leds/leds-max77650.yaml  |  9 ++-------
 .../devicetree/bindings/leds/leds-pwm.yaml       |  1 +
 .../devicetree/bindings/leds/leds-qcom-lpg.yaml  |  6 ++++++
 .../bindings/leds/rohm,bd71828-leds.yaml         | 16 +++-------------
 .../devicetree/bindings/leds/ti,tca6507.yaml     |  1 +
 9 files changed, 23 insertions(+), 23 deletions(-)

Comments

Pavel Machek Aug. 23, 2022, 6:27 p.m. UTC | #1
Hi!

> In order to ensure only documented properties are present, node schemas
> must have unevaluatedProperties or additionalProperties set to false
> (typically).
>
> Signed-off-by: Rob Herring <robh@kernel.org>

Patch does way more than that:

Can we get some explanation why that's correct?

Best regards,
								Pavel

> index f8d7963c3a13..8b3b3bf1eaf2 100644
> --- a/Documentation/devicetree/bindings/leds/leds-lgm.yaml
> +++ b/Documentation/devicetree/bindings/leds/leds-lgm.yaml
> @@ -56,7 +56,8 @@ properties:
>  
>      patternProperties:
>        "^led@[0-2]$":
> -        type: object
> +        $ref: common.yaml#
> +        unevaluatedProperties: false
>  
>          properties:
>            reg:
> @@ -64,6 +65,9 @@ properties:
>              minimum: 0
>              maximum: 2
>  
> +          led-gpios:
> +            maxItems: 1
> +
>            intel,sso-hw-trigger:
>              type: boolean
>              description: This property indicates Hardware driven/control LED.
> @@ -118,14 +122,14 @@ examples:
>            reg = <0>;
>            function = "gphy";
>            color = <LED_COLOR_ID_GREEN>;
> -          led-gpio = <&ssogpio 0 0>;
> +          led-gpios = <&ssogpio 0 0>;
>          };
>  
>          led@2 {
>            reg = <2>;
>            function = LED_FUNCTION_POWER;
>            color = <LED_COLOR_ID_GREEN>;
> -          led-gpio = <&ssogpio 23 0>;
> +          led-gpios = <&ssogpio 23 0>;
>          };
>        };
>      };
Rob Herring (Arm) Aug. 24, 2022, 5:36 p.m. UTC | #2
On Tue, Aug 23, 2022 at 1:28 PM Pavel Machek <pavel@ucw.cz> wrote:
>
> Hi!
>
> > In order to ensure only documented properties are present, node schemas
> > must have unevaluatedProperties or additionalProperties set to false
> > (typically).
> >
> > Signed-off-by: Rob Herring <robh@kernel.org>
>
> Patch does way more than that:

It only 'ensure only documented properties are present', but yeah, it
is sometimes more than just adding unevaluatedProperties.

> Can we get some explanation why that's correct?

...adds missing $ref if needed, and fixes resulting errors about
unevaluatedProperties.

BTW, these are just the simple ones. The led bindings with multi-led
nodes are more of a mess. I haven't decided exactly how to fix those.

Rob
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/leds/issi,is31fl319x.yaml b/Documentation/devicetree/bindings/leds/issi,is31fl319x.yaml
index 940333f2d69c..2929382625b6 100644
--- a/Documentation/devicetree/bindings/leds/issi,is31fl319x.yaml
+++ b/Documentation/devicetree/bindings/leds/issi,is31fl319x.yaml
@@ -57,6 +57,7 @@  patternProperties:
   "^led@[1-9]$":
     type: object
     $ref: common.yaml#
+    unevaluatedProperties: false
 
     properties:
       reg:
diff --git a/Documentation/devicetree/bindings/leds/leds-aw2013.yaml b/Documentation/devicetree/bindings/leds/leds-aw2013.yaml
index e24b0d15ef01..6c3ea0f06cef 100644
--- a/Documentation/devicetree/bindings/leds/leds-aw2013.yaml
+++ b/Documentation/devicetree/bindings/leds/leds-aw2013.yaml
@@ -33,6 +33,7 @@  patternProperties:
   "^led@[0-2]$":
     type: object
     $ref: common.yaml#
+    unevaluatedProperties: false
 
     properties:
       reg:
diff --git a/Documentation/devicetree/bindings/leds/leds-gpio.yaml b/Documentation/devicetree/bindings/leds/leds-gpio.yaml
index 7ad2baeda0b0..f156d3e47b71 100644
--- a/Documentation/devicetree/bindings/leds/leds-gpio.yaml
+++ b/Documentation/devicetree/bindings/leds/leds-gpio.yaml
@@ -25,6 +25,7 @@  patternProperties:
     type: object
 
     $ref: common.yaml#
+    unevaluatedProperties: false
 
     properties:
       gpios:
diff --git a/Documentation/devicetree/bindings/leds/leds-lgm.yaml b/Documentation/devicetree/bindings/leds/leds-lgm.yaml
index f8d7963c3a13..8b3b3bf1eaf2 100644
--- a/Documentation/devicetree/bindings/leds/leds-lgm.yaml
+++ b/Documentation/devicetree/bindings/leds/leds-lgm.yaml
@@ -56,7 +56,8 @@  properties:
 
     patternProperties:
       "^led@[0-2]$":
-        type: object
+        $ref: common.yaml#
+        unevaluatedProperties: false
 
         properties:
           reg:
@@ -64,6 +65,9 @@  properties:
             minimum: 0
             maximum: 2
 
+          led-gpios:
+            maxItems: 1
+
           intel,sso-hw-trigger:
             type: boolean
             description: This property indicates Hardware driven/control LED.
@@ -118,14 +122,14 @@  examples:
           reg = <0>;
           function = "gphy";
           color = <LED_COLOR_ID_GREEN>;
-          led-gpio = <&ssogpio 0 0>;
+          led-gpios = <&ssogpio 0 0>;
         };
 
         led@2 {
           reg = <2>;
           function = LED_FUNCTION_POWER;
           color = <LED_COLOR_ID_GREEN>;
-          led-gpio = <&ssogpio 23 0>;
+          led-gpios = <&ssogpio 23 0>;
         };
       };
     };
diff --git a/Documentation/devicetree/bindings/leds/leds-max77650.yaml b/Documentation/devicetree/bindings/leds/leds-max77650.yaml
index c6f96cabd4d1..fdb08f44a45d 100644
--- a/Documentation/devicetree/bindings/leds/leds-max77650.yaml
+++ b/Documentation/devicetree/bindings/leds/leds-max77650.yaml
@@ -30,9 +30,8 @@  properties:
 
 patternProperties:
   "^led@[0-2]$":
-    type: object
-    description: |
-      Properties for a single LED.
+    $ref: common.yaml#
+    unevaluatedProperties: false
 
     properties:
       reg:
@@ -41,10 +40,6 @@  patternProperties:
         minimum: 0
         maximum: 2
 
-      label: true
-
-      linux,default-trigger: true
-
 required:
   - compatible
   - "#address-cells"
diff --git a/Documentation/devicetree/bindings/leds/leds-pwm.yaml b/Documentation/devicetree/bindings/leds/leds-pwm.yaml
index fe4d5fd25913..e60009863d07 100644
--- a/Documentation/devicetree/bindings/leds/leds-pwm.yaml
+++ b/Documentation/devicetree/bindings/leds/leds-pwm.yaml
@@ -22,6 +22,7 @@  patternProperties:
     type: object
 
     $ref: common.yaml#
+    unevaluatedProperties: false
 
     properties:
       pwms:
diff --git a/Documentation/devicetree/bindings/leds/leds-qcom-lpg.yaml b/Documentation/devicetree/bindings/leds/leds-qcom-lpg.yaml
index 497db289169d..6f43aadea3be 100644
--- a/Documentation/devicetree/bindings/leds/leds-qcom-lpg.yaml
+++ b/Documentation/devicetree/bindings/leds/leds-qcom-lpg.yaml
@@ -72,11 +72,17 @@  properties:
       "^led@[0-9a-f]$":
         type: object
         $ref: common.yaml#
+        unevaluatedProperties: false
+
+        properties:
+          reg:
+            maxItems: 1
 
 patternProperties:
   "^led@[0-9a-f]$":
     type: object
     $ref: common.yaml#
+    unevaluatedProperties: false
 
     properties:
       reg: true
diff --git a/Documentation/devicetree/bindings/leds/rohm,bd71828-leds.yaml b/Documentation/devicetree/bindings/leds/rohm,bd71828-leds.yaml
index 86a37c92b834..ca92cea56a6f 100644
--- a/Documentation/devicetree/bindings/leds/rohm,bd71828-leds.yaml
+++ b/Documentation/devicetree/bindings/leds/rohm,bd71828-leds.yaml
@@ -26,26 +26,16 @@  properties:
 
 patternProperties:
   "^led-[1-2]$":
-    type: object
-    description:
-      Properties for a single LED.
+    $ref: common.yaml#
+    unevaluatedProperties: false
+
     properties:
-      #allOf:
-        #- $ref: "common.yaml#"
       rohm,led-compatible:
         description: LED identification string
         $ref: "/schemas/types.yaml#/definitions/string"
         enum:
           - bd71828-ambled
           - bd71828-grnled
-      function:
-        description:
-          Purpose of LED as defined in dt-bindings/leds/common.h
-        $ref: "/schemas/types.yaml#/definitions/string"
-      color:
-        description:
-          LED colour as defined in dt-bindings/leds/common.h
-        $ref: "/schemas/types.yaml#/definitions/uint32"
 
 required:
   - compatible
diff --git a/Documentation/devicetree/bindings/leds/ti,tca6507.yaml b/Documentation/devicetree/bindings/leds/ti,tca6507.yaml
index 32c600387895..e83964600993 100644
--- a/Documentation/devicetree/bindings/leds/ti,tca6507.yaml
+++ b/Documentation/devicetree/bindings/leds/ti,tca6507.yaml
@@ -40,6 +40,7 @@  patternProperties:
     type: object
 
     $ref: common.yaml#
+    unevaluatedProperties: false
 
     properties:
       reg: