Devicetree
 help / color / mirror / Atom feed
* [PATCH] dt-bindings: leds: lacie,netxbig-leds: Convert to DT schema
@ 2026-08-20 15:02 Udaya Kiran Challa
  2026-08-20 15:11 ` sashiko-bot
  2026-08-20 18:06 ` Conor Dooley
  0 siblings, 2 replies; 3+ messages in thread
From: Udaya Kiran Challa @ 2026-08-20 15:02 UTC (permalink / raw)
  To: lee, pavel, robh, krzk+dt, conor+dt
  Cc: skhan, me, linux-leds, devicetree, linux-kernel,
	Udaya Kiran Challa

Convert lacie,netxbig-leds devicetree binding from legacy
text format to DT schema.

Signed-off-by: Udaya Kiran Challa <challauday369@gmail.com>
---
 .../bindings/leds/lacie,netxbig-leds.yaml     | 134 ++++++++++++++++++
 .../devicetree/bindings/leds/leds-netxbig.txt |  92 ------------
 2 files changed, 134 insertions(+), 92 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/leds/lacie,netxbig-leds.yaml
 delete mode 100644 Documentation/devicetree/bindings/leds/leds-netxbig.txt

diff --git a/Documentation/devicetree/bindings/leds/lacie,netxbig-leds.yaml b/Documentation/devicetree/bindings/leds/lacie,netxbig-leds.yaml
new file mode 100644
index 000000000000..ffdd47458d24
--- /dev/null
+++ b/Documentation/devicetree/bindings/leds/lacie,netxbig-leds.yaml
@@ -0,0 +1,134 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/leds/lacie,netxbig-leds.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: LaCie/Seagate netxbig CPLD LEDs
+
+maintainers:
+  - Simon Guinot <simon.guinot@sequanux.org>
+
+description: |
+  Binding for the CPLD LEDs (GPIO extension bus) found on some LaCie/Seagate
+  boards (Example: 2Big/5Big Network v2, 2Big NAS).
+
+properties:
+  compatible:
+    const: lacie,netxbig-leds
+
+  gpio-ext:
+    description: Phandle for the gpio-ext bus.
+    $ref: /schemas/types.yaml#/definitions/phandle
+
+  timers:
+    description: |
+      Timer array. Each timer entry is represented by three integers:
+      Mode (gpio-ext bus), delay_on and delay_off.
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+
+required:
+  - compatible
+  - gpio-ext
+
+additionalProperties:
+  description: Each child node represents a single LED
+  type: object
+  $ref: common.yaml#
+  unevaluatedProperties: false
+
+  properties:
+    mode-addr:
+      description: Mode register address on gpio-ext bus.
+      $ref: /schemas/types.yaml#/definitions/uint32
+
+    mode-val:
+      description: |
+        Mode to value mapping. Each entry is represented by two integers: a mode and
+        the corresponding value on the gpio-ext bus.
+      $ref: /schemas/types.yaml#/definitions/uint32-array
+
+    bright-addr:
+      description: Brightness register address on gpio-ext bus.
+      $ref: /schemas/types.yaml#/definitions/uint32
+
+    max-brightness:
+      description: Maximum brightness value.
+      $ref: /schemas/types.yaml#/definitions/uint32
+
+  required:
+    - mode-addr
+    - mode-val
+    - bright-addr
+    - max-brightness
+
+examples:
+  - |
+    #include <dt-bindings/leds/leds-netxbig.h>
+
+    netxbig-leds {
+        compatible = "lacie,netxbig-leds";
+
+        gpio-ext = <&netxbig_gpio_ext>;
+
+        timers = <NETXBIG_LED_TIMER1 500 500
+                  NETXBIG_LED_TIMER2 500 1000>;
+
+        blue-power {
+            label = "netxbig:blue:power";
+            mode-addr = <0>;
+            mode-val = <NETXBIG_LED_OFF 0
+                        NETXBIG_LED_ON 1
+                        NETXBIG_LED_TIMER1 3
+                        NETXBIG_LED_TIMER2 7>;
+            bright-addr = <1>;
+            max-brightness = <7>;
+        };
+        red-power {
+            label = "netxbig:red:power";
+            mode-addr = <0>;
+            mode-val = <NETXBIG_LED_OFF 0
+                        NETXBIG_LED_ON 2
+                        NETXBIG_LED_TIMER1 4>;
+            bright-addr = <1>;
+            max-brightness = <7>;
+        };
+        blue-sata0 {
+            label = "netxbig:blue:sata0";
+            mode-addr = <3>;
+            mode-val = <NETXBIG_LED_OFF 0
+                        NETXBIG_LED_ON 7
+                        NETXBIG_LED_SATA 1
+                        NETXBIG_LED_TIMER1 3>;
+            bright-addr = <2>;
+            max-brightness = <7>;
+        };
+        red-sata0 {
+            label = "netxbig:red:sata0";
+            mode-addr = <3>;
+            mode-val = <NETXBIG_LED_OFF 0
+                        NETXBIG_LED_ON 2
+                        NETXBIG_LED_TIMER1 4>;
+            bright-addr = <2>;
+            max-brightness = <7>;
+        };
+        blue-sata1 {
+            label = "netxbig:blue:sata1";
+            mode-addr = <4>;
+            mode-val = <NETXBIG_LED_OFF 0
+                        NETXBIG_LED_ON 7
+                        NETXBIG_LED_SATA 1
+                        NETXBIG_LED_TIMER1 3>;
+            bright-addr = <2>;
+            max-brightness = <7>;
+        };
+        red-sata1 {
+            label = "netxbig:red:sata1";
+            mode-addr = <4>;
+            mode-val = <NETXBIG_LED_OFF 0
+                        NETXBIG_LED_ON 2
+                        NETXBIG_LED_TIMER1 4>;
+            bright-addr = <2>;
+            max-brightness = <7>;
+        };
+    };
diff --git a/Documentation/devicetree/bindings/leds/leds-netxbig.txt b/Documentation/devicetree/bindings/leds/leds-netxbig.txt
deleted file mode 100644
index 5ef92a26d768..000000000000
--- a/Documentation/devicetree/bindings/leds/leds-netxbig.txt
+++ /dev/null
@@ -1,92 +0,0 @@
-Binding for the CPLD LEDs (GPIO extension bus) found on some LaCie/Seagate
-boards (Example: 2Big/5Big Network v2, 2Big NAS).
-
-Required properties:
-- compatible: "lacie,netxbig-leds".
-- gpio-ext: Phandle for the gpio-ext bus.
-
-Optional properties:
-- timers: Timer array. Each timer entry is represented by three integers:
-  Mode (gpio-ext bus), delay_on and delay_off.
-
-Each LED is represented as a sub-node of the netxbig-leds device.
-
-Required sub-node properties:
-- mode-addr: Mode register address on gpio-ext bus.
-- mode-val: Mode to value mapping. Each entry is represented by two integers:
-  A mode and the corresponding value on the gpio-ext bus.
-- bright-addr: Brightness register address on gpio-ext bus.
-- max-brightness: Maximum brightness value.
-
-Optional sub-node properties:
-- label: Name for this LED. If omitted, the label is taken from the node name.
-- linux,default-trigger: Trigger assigned to the LED.
-
-Example:
-
-netxbig-leds {
-	compatible = "lacie,netxbig-leds";
-
-	gpio-ext = &gpio_ext;
-
-	timers = <NETXBIG_LED_TIMER1 500 500
-		  NETXBIG_LED_TIMER2 500 1000>;
-
-	blue-power {
-		label = "netxbig:blue:power";
-		mode-addr = <0>;
-		mode-val = <NETXBIG_LED_OFF 0
-			    NETXBIG_LED_ON 1
-			    NETXBIG_LED_TIMER1 3
-			    NETXBIG_LED_TIMER2 7>;
-		bright-addr = <1>;
-		max-brightness = <7>;
-	};
-	red-power {
-		label = "netxbig:red:power";
-		mode-addr = <0>;
-		mode-val = <NETXBIG_LED_OFF 0
-			    NETXBIG_LED_ON 2
-			    NETXBIG_LED_TIMER1 4>;
-		bright-addr = <1>;
-		max-brightness = <7>;
-	};
-	blue-sata0 {
-		label = "netxbig:blue:sata0";
-		mode-addr = <3>;
-		mode-val = <NETXBIG_LED_OFF 0
-			    NETXBIG_LED_ON 7
-			    NETXBIG_LED_SATA 1
-			    NETXBIG_LED_TIMER1 3>;
-		bright-addr = <2>;
-		max-brightness = <7>;
-	};
-	red-sata0 {
-		label = "netxbig:red:sata0";
-		mode-addr = <3>;
-		mode-val = <NETXBIG_LED_OFF 0
-			    NETXBIG_LED_ON 2
-			    NETXBIG_LED_TIMER1 4>;
-		bright-addr = <2>;
-		max-brightness = <7>;
-	};
-	blue-sata1 {
-		label = "netxbig:blue:sata1";
-		mode-addr = <4>;
-		mode-val = <NETXBIG_LED_OFF 0
-			    NETXBIG_LED_ON 7
-			    NETXBIG_LED_SATA 1
-			    NETXBIG_LED_TIMER1 3>;
-		bright-addr = <2>;
-		max-brightness = <7>;
-	};
-	red-sata1 {
-		label = "netxbig:red:sata1";
-		mode-addr = <4>;
-		mode-val = <NETXBIG_LED_OFF 0
-			    NETXBIG_LED_ON 2
-			    NETXBIG_LED_TIMER1 4>;
-		bright-addr = <2>;
-		max-brightness = <7>;
-	};
-};
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] dt-bindings: leds: lacie,netxbig-leds: Convert to DT schema
  2026-08-20 15:02 [PATCH] dt-bindings: leds: lacie,netxbig-leds: Convert to DT schema Udaya Kiran Challa
@ 2026-08-20 15:11 ` sashiko-bot
  2026-08-20 18:06 ` Conor Dooley
  1 sibling, 0 replies; 3+ messages in thread
From: sashiko-bot @ 2026-08-20 15:11 UTC (permalink / raw)
  To: Udaya Kiran Challa; +Cc: devicetree, linux-leds, lee, robh, conor+dt

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The dt-schema incorrectly uses an object schema for `additionalProperties` to define child LED nodes instead of `patternProperties`.
--

--- Patch [1]: [PATCH] dt-bindings: leds: lacie,netxbig-leds: Convert to DT schema ---
commit aac938a074c3b72885d598a72f89b254f35a5d88
Author: Udaya Kiran Challa <challauday369@gmail.com>

dt-bindings: leds: lacie,netxbig-leds: Convert to DT schema
    
This commit converts the lacie,netxbig-leds devicetree binding from the
legacy text format to DT schema.

> diff --git a/Documentation/devicetree/bindings/leds/lacie,netxbig-leds.yaml b/Documentation/devicetree/bindings/leds/lacie,netxbig-leds.yaml
> new file mode 100644
> index 0000000000000..ffdd47458d248
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/leds/lacie,netxbig-leds.yaml

[ ... ]

> +required:
> +  - compatible
> +  - gpio-ext
> +
> +additionalProperties:
> +  description: Each child node represents a single LED
> +  type: object
> +  $ref: common.yaml#
> +  unevaluatedProperties: false

[Severity: Medium]
Will this strict additionalProperties definition cause standard device tree
properties to fail validation?

Because additionalProperties is defined as an object schema here, any
top-level property added to the netxbig-leds node that isn't explicitly
defined (like status = "okay" or pinctrl-0) will be forced to evaluate
as an object, triggering schema validation errors for strings or arrays.

Should child LED nodes be defined using patternProperties instead, so that
standard node properties are not caught by this block?

> +
> +  properties:
> +    mode-addr:
> +      description: Mode register address on gpio-ext bus.

[ ... ]

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260820150223.108374-1-challauday369@gmail.com?part=1

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] dt-bindings: leds: lacie,netxbig-leds: Convert to DT schema
  2026-08-20 15:02 [PATCH] dt-bindings: leds: lacie,netxbig-leds: Convert to DT schema Udaya Kiran Challa
  2026-08-20 15:11 ` sashiko-bot
@ 2026-08-20 18:06 ` Conor Dooley
  1 sibling, 0 replies; 3+ messages in thread
From: Conor Dooley @ 2026-08-20 18:06 UTC (permalink / raw)
  To: Udaya Kiran Challa
  Cc: lee, pavel, robh, krzk+dt, conor+dt, skhan, me, linux-leds,
	devicetree, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 8755 bytes --]

On Thu, Aug 20, 2026 at 08:32:23PM +0530, Udaya Kiran Challa wrote:
> Convert lacie,netxbig-leds devicetree binding from legacy
> text format to DT schema.
> 
> Signed-off-by: Udaya Kiran Challa <challauday369@gmail.com>
> ---
>  .../bindings/leds/lacie,netxbig-leds.yaml     | 134 ++++++++++++++++++
>  .../devicetree/bindings/leds/leds-netxbig.txt |  92 ------------
>  2 files changed, 134 insertions(+), 92 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/leds/lacie,netxbig-leds.yaml
>  delete mode 100644 Documentation/devicetree/bindings/leds/leds-netxbig.txt
> 
> diff --git a/Documentation/devicetree/bindings/leds/lacie,netxbig-leds.yaml b/Documentation/devicetree/bindings/leds/lacie,netxbig-leds.yaml
> new file mode 100644
> index 000000000000..ffdd47458d24
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/leds/lacie,netxbig-leds.yaml
> @@ -0,0 +1,134 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/leds/lacie,netxbig-leds.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: LaCie/Seagate netxbig CPLD LEDs
> +
> +maintainers:
> +  - Simon Guinot <simon.guinot@sequanux.org>
> +
> +description: |
> +  Binding for the CPLD LEDs (GPIO extension bus) found on some LaCie/Seagate
> +  boards (Example: 2Big/5Big Network v2, 2Big NAS).
> +
> +properties:
> +  compatible:
> +    const: lacie,netxbig-leds
> +
> +  gpio-ext:
> +    description: Phandle for the gpio-ext bus.
> +    $ref: /schemas/types.yaml#/definitions/phandle
> +
> +  timers:
> +    description: |
> +      Timer array. Each timer entry is represented by three integers:
> +      Mode (gpio-ext bus), delay_on and delay_off.
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +
> +required:
> +  - compatible
> +  - gpio-ext

This should be after the block defining the child nodes.

> +
> +additionalProperties:

This is not how the child nodes should be implmeneted, it should use
pattenProperties instead.

> +  description: Each child node represents a single LED
> +  type: object
> +  $ref: common.yaml#

> +  unevaluatedProperties: false

This should IMO be additionalProperties: false, and the two option
properties that are supported explicitly cited.

The rest of this looks fine I think.

pw-bot: changes-requested

Thanks,
Conor.

> +
> +  properties:
> +    mode-addr:
> +      description: Mode register address on gpio-ext bus.
> +      $ref: /schemas/types.yaml#/definitions/uint32
> +
> +    mode-val:
> +      description: |
> +        Mode to value mapping. Each entry is represented by two integers: a mode and
> +        the corresponding value on the gpio-ext bus.
> +      $ref: /schemas/types.yaml#/definitions/uint32-array
> +
> +    bright-addr:
> +      description: Brightness register address on gpio-ext bus.
> +      $ref: /schemas/types.yaml#/definitions/uint32
> +
> +    max-brightness:
> +      description: Maximum brightness value.
> +      $ref: /schemas/types.yaml#/definitions/uint32
> +
> +  required:
> +    - mode-addr
> +    - mode-val
> +    - bright-addr
> +    - max-brightness
> +
> +examples:
> +  - |
> +    #include <dt-bindings/leds/leds-netxbig.h>
> +
> +    netxbig-leds {
> +        compatible = "lacie,netxbig-leds";
> +
> +        gpio-ext = <&netxbig_gpio_ext>;
> +
> +        timers = <NETXBIG_LED_TIMER1 500 500
> +                  NETXBIG_LED_TIMER2 500 1000>;
> +
> +        blue-power {
> +            label = "netxbig:blue:power";
> +            mode-addr = <0>;
> +            mode-val = <NETXBIG_LED_OFF 0
> +                        NETXBIG_LED_ON 1
> +                        NETXBIG_LED_TIMER1 3
> +                        NETXBIG_LED_TIMER2 7>;
> +            bright-addr = <1>;
> +            max-brightness = <7>;
> +        };
> +        red-power {
> +            label = "netxbig:red:power";
> +            mode-addr = <0>;
> +            mode-val = <NETXBIG_LED_OFF 0
> +                        NETXBIG_LED_ON 2
> +                        NETXBIG_LED_TIMER1 4>;
> +            bright-addr = <1>;
> +            max-brightness = <7>;
> +        };
> +        blue-sata0 {
> +            label = "netxbig:blue:sata0";
> +            mode-addr = <3>;
> +            mode-val = <NETXBIG_LED_OFF 0
> +                        NETXBIG_LED_ON 7
> +                        NETXBIG_LED_SATA 1
> +                        NETXBIG_LED_TIMER1 3>;
> +            bright-addr = <2>;
> +            max-brightness = <7>;
> +        };
> +        red-sata0 {
> +            label = "netxbig:red:sata0";
> +            mode-addr = <3>;
> +            mode-val = <NETXBIG_LED_OFF 0
> +                        NETXBIG_LED_ON 2
> +                        NETXBIG_LED_TIMER1 4>;
> +            bright-addr = <2>;
> +            max-brightness = <7>;
> +        };
> +        blue-sata1 {
> +            label = "netxbig:blue:sata1";
> +            mode-addr = <4>;
> +            mode-val = <NETXBIG_LED_OFF 0
> +                        NETXBIG_LED_ON 7
> +                        NETXBIG_LED_SATA 1
> +                        NETXBIG_LED_TIMER1 3>;
> +            bright-addr = <2>;
> +            max-brightness = <7>;
> +        };
> +        red-sata1 {
> +            label = "netxbig:red:sata1";
> +            mode-addr = <4>;
> +            mode-val = <NETXBIG_LED_OFF 0
> +                        NETXBIG_LED_ON 2
> +                        NETXBIG_LED_TIMER1 4>;
> +            bright-addr = <2>;
> +            max-brightness = <7>;
> +        };
> +    };
> diff --git a/Documentation/devicetree/bindings/leds/leds-netxbig.txt b/Documentation/devicetree/bindings/leds/leds-netxbig.txt
> deleted file mode 100644
> index 5ef92a26d768..000000000000
> --- a/Documentation/devicetree/bindings/leds/leds-netxbig.txt
> +++ /dev/null
> @@ -1,92 +0,0 @@
> -Binding for the CPLD LEDs (GPIO extension bus) found on some LaCie/Seagate
> -boards (Example: 2Big/5Big Network v2, 2Big NAS).
> -
> -Required properties:
> -- compatible: "lacie,netxbig-leds".
> -- gpio-ext: Phandle for the gpio-ext bus.
> -
> -Optional properties:
> -- timers: Timer array. Each timer entry is represented by three integers:
> -  Mode (gpio-ext bus), delay_on and delay_off.
> -
> -Each LED is represented as a sub-node of the netxbig-leds device.
> -
> -Required sub-node properties:
> -- mode-addr: Mode register address on gpio-ext bus.
> -- mode-val: Mode to value mapping. Each entry is represented by two integers:
> -  A mode and the corresponding value on the gpio-ext bus.
> -- bright-addr: Brightness register address on gpio-ext bus.
> -- max-brightness: Maximum brightness value.
> -
> -Optional sub-node properties:
> -- label: Name for this LED. If omitted, the label is taken from the node name.
> -- linux,default-trigger: Trigger assigned to the LED.
> -
> -Example:
> -
> -netxbig-leds {
> -	compatible = "lacie,netxbig-leds";
> -
> -	gpio-ext = &gpio_ext;
> -
> -	timers = <NETXBIG_LED_TIMER1 500 500
> -		  NETXBIG_LED_TIMER2 500 1000>;
> -
> -	blue-power {
> -		label = "netxbig:blue:power";
> -		mode-addr = <0>;
> -		mode-val = <NETXBIG_LED_OFF 0
> -			    NETXBIG_LED_ON 1
> -			    NETXBIG_LED_TIMER1 3
> -			    NETXBIG_LED_TIMER2 7>;
> -		bright-addr = <1>;
> -		max-brightness = <7>;
> -	};
> -	red-power {
> -		label = "netxbig:red:power";
> -		mode-addr = <0>;
> -		mode-val = <NETXBIG_LED_OFF 0
> -			    NETXBIG_LED_ON 2
> -			    NETXBIG_LED_TIMER1 4>;
> -		bright-addr = <1>;
> -		max-brightness = <7>;
> -	};
> -	blue-sata0 {
> -		label = "netxbig:blue:sata0";
> -		mode-addr = <3>;
> -		mode-val = <NETXBIG_LED_OFF 0
> -			    NETXBIG_LED_ON 7
> -			    NETXBIG_LED_SATA 1
> -			    NETXBIG_LED_TIMER1 3>;
> -		bright-addr = <2>;
> -		max-brightness = <7>;
> -	};
> -	red-sata0 {
> -		label = "netxbig:red:sata0";
> -		mode-addr = <3>;
> -		mode-val = <NETXBIG_LED_OFF 0
> -			    NETXBIG_LED_ON 2
> -			    NETXBIG_LED_TIMER1 4>;
> -		bright-addr = <2>;
> -		max-brightness = <7>;
> -	};
> -	blue-sata1 {
> -		label = "netxbig:blue:sata1";
> -		mode-addr = <4>;
> -		mode-val = <NETXBIG_LED_OFF 0
> -			    NETXBIG_LED_ON 7
> -			    NETXBIG_LED_SATA 1
> -			    NETXBIG_LED_TIMER1 3>;
> -		bright-addr = <2>;
> -		max-brightness = <7>;
> -	};
> -	red-sata1 {
> -		label = "netxbig:red:sata1";
> -		mode-addr = <4>;
> -		mode-val = <NETXBIG_LED_OFF 0
> -			    NETXBIG_LED_ON 2
> -			    NETXBIG_LED_TIMER1 4>;
> -		bright-addr = <2>;
> -		max-brightness = <7>;
> -	};
> -};
> -- 
> 2.34.1
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-08-20 18:06 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-20 15:02 [PATCH] dt-bindings: leds: lacie,netxbig-leds: Convert to DT schema Udaya Kiran Challa
2026-08-20 15:11 ` sashiko-bot
2026-08-20 18:06 ` Conor Dooley

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox