Re: [PATCH v3] dt-bindings: leds: lacie,netxbig-leds: Convert to DT schema
From: Krzysztof Kozlowski
Date: Wed Sep 09 2026 - 03:17:24 EST
On Tue, Sep 01, 2026 at 10:33:58PM +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@xxxxxxxxx>
> ---
> Changelog:
> Changes since v2:
> - Add reference to led common.yaml
> - Drop type for all common properties
>
> Link to v2:https://lore.kernel.org/all/20260821123723.198286-1-challauday369@xxxxxxxxx/
>
> Changes since v1:
> - Use pattenProperties for LED child nodes instead of additionalProperties
> - Explicitly list the two optional properties supported by the binding
> - Place the top-level required block after child-node definition
>
> Link to v1:https://lore.kernel.org/all/20260820150223.108374-1-challauday369@xxxxxxxxx/
> ---
> .../bindings/leds/lacie,netxbig-leds.yaml | 139 ++++++++++++++++++
> .../devicetree/bindings/leds/leds-netxbig.txt | 92 ------------
> 2 files changed, 139 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..5cb2eaf74d1a
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/leds/lacie,netxbig-leds.yaml
> @@ -0,0 +1,139 @@
> +# 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@xxxxxxxxxxxx>
> +
> +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
> +
> +patternProperties:
> + "^(?!gpio-ext$|pinctrl-[0-9]+$)[a-z][a-z0-9]*(-[a-z0-9]+)+$":
This is an odd pattern. Why is pinctrl an LED? or gpio-ext?
Actually entire pattern is very odd - it has $ in the middle, but then
followed with other REQUIRED stuff. I am surprised it works, but
regardless it is absolutely not readable. Looks like a begative pattern,
but why would you have negative pattern for known properties?
> + type: object
> + $ref: common.yaml#
> + unevaluatedProperties: false
> +
> + properties:
> + label: true
> + linux,default-trigger: true
Drop both, common.yaml provides these.
> +
> + mode-addr:
> + description: Mode register address on gpio-ext bus.
> + $ref: /schemas/types.yaml#/definitions/uint32
> +
> + mode-val:
> + description: |
Do not need '|' unless you need to preserve formatting.
> + 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
> +
> +required:
> + - compatible
> + - gpio-ext
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/leds/leds-netxbig.h>
> +
> + netxbig-leds {
Just "leds"
> + compatible = "lacie,netxbig-leds";
Best regards,
Krzysztof