Re: [PATCH v3 1/5] dt-bindings: leds: is31fl32xx: convert the binding to yaml
From: Rob Herring <robh@kernel.org>
Date: 2026-05-06 19:41:26
Also in:
linux-leds, lkml
On Wed, Apr 29, 2026 at 11:44:45PM +0800, Jun Yan wrote:
quoted hunk ↗ jump to hunk
Convert leds-is31fl32xx to DT schema format. Co-developed-by: Lucca Fachinetti <redacted> Signed-off-by: Lucca Fachinetti <redacted> Co-developed-by: Pawel Zalewski <redacted> Signed-off-by: Pawel Zalewski <redacted> Signed-off-by: Jun Yan <redacted> --- .../bindings/leds/issl,is31fl32xx.yaml | 163 ++++++++++++++++++ .../bindings/leds/leds-is31fl32xx.txt | 53 ------ 2 files changed, 163 insertions(+), 53 deletions(-) create mode 100644 Documentation/devicetree/bindings/leds/issl,is31fl32xx.yaml delete mode 100644 Documentation/devicetree/bindings/leds/leds-is31fl32xx.txtdiff --git a/Documentation/devicetree/bindings/leds/issl,is31fl32xx.yaml b/Documentation/devicetree/bindings/leds/issl,is31fl32xx.yaml new file mode 100644 index 000000000000..cb4741dee12e --- /dev/null +++ b/Documentation/devicetree/bindings/leds/issl,is31fl32xx.yaml@@ -0,0 +1,163 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/leds/issl,is31fl32xx.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: IS31FL32xx and Si-En SN32xx LED controller + +maintainers: + - Lucca Fachinetti <luccafachinetti@gmail.com> + - Pavel Machek <pavel@ucw.cz> + - Jun Yan <jerrysteve1101@gmail.com> + +description: | + The IS31FL32xx/SN32xx family of LED drivers are I2C devices with multiple + constant-current channels, each with independent 256-level PWM control. + Each LED is represented as a sub-node of the device. + + For more product information please see the links below: + https://www.lumissil.com/assets/pdf/core/IS31FL3216_DS.pdf + https://www.lumissil.com/assets/pdf/core/IS31FL3218_DS.pdf + https://www.lumissil.com/assets/pdf/core/IS31FL3235_DS.pdf + https://www.lumissil.com/assets/pdf/core/IS31FL3236_DS.pdf + https://www.lumissil.com/assets/pdf/core/IS31FL3293_DS.pdf + +properties: + compatible: + enum: + - issi,is31fl3216 + - issi,is31fl3218 + - issi,is31fl3235 + - issi,is31fl3236 + - issi,is31fl3293 + - si-en,sn3216 + - si-en,sn3218 + + reg: + maxItems: 1 + + "#address-cells": + const: 1 + + "#size-cells": + const: 0 + +patternProperties: + "^led@([1-9])+$":
Unit-addresses are hex.
+ type: object + $ref: common.yaml# + unevaluatedProperties: false + + properties: + reg: + description: + LED channel number (1..N) + minimum: 1 + maximum: 36 + + required: + - reg + +allOf: + - if: + properties: + compatible: + contains: + enum: + - issi,is31fl3293 + then: + patternProperties: + "^led@([1-9])+$":
No need to repeat the unit-address pattern here. Just "^led@".
+ properties: + reg: + maximum: 3 + - if: + properties: + compatible: + contains: + enum: + - issi,is31fl3216 + - si-en,sn3216 + then: + patternProperties: + "^led@([1-9])+$": + properties: + reg: + maximum: 16 + - if: + properties: + compatible: + contains: + enum: + - issi,is31fl3218 + - si-en,sn3218 + then: + patternProperties: + "^led@([1-9])+$": + properties: + reg: + maximum: 18 + - if: + properties: + compatible: + contains: + enum: + - issi,is31fl3235 + then: + patternProperties: + "^led@([1-9])+$": + properties: + reg: + maximum: 28 + - if: + properties: + compatible: + contains: + enum: + - issi,is31fl3236 + then: + patternProperties: + "^led@([1-9])+$": + properties: + reg: + maximum: 36
That's the default max, so you can drop this if/then.
quoted hunk ↗ jump to hunk
+ +required: + - compatible + - reg + - "#address-cells" + - "#size-cells" + +additionalProperties: false + +examples: + - | + #include <dt-bindings/leds/common.h> + + i2c { + #address-cells = <1>; + #size-cells = <0>; + + led-controller@3c { + compatible = "issi,is31fl3236"; + reg = <0x3c>; + #address-cells = <1>; + #size-cells = <0>; + + led@1 { + reg = <1>; + color = <LED_COLOR_ID_RED>; + function = LED_FUNCTION_STATUS; + }; + + led@5 { + reg = <5>; + color = <LED_COLOR_ID_GREEN>; + function = LED_FUNCTION_POWER; + linux,default-trigger = "default-on"; + }; + }; + }; +... +diff --git a/Documentation/devicetree/bindings/leds/leds-is31fl32xx.txt b/Documentation/devicetree/bindings/leds/leds-is31fl32xx.txt deleted file mode 100644 index 7082ed186dd9..000000000000 --- a/Documentation/devicetree/bindings/leds/leds-is31fl32xx.txt +++ /dev/null@@ -1,53 +0,0 @@ -Binding for ISSI IS31FL32xx and Si-En SN32xx LED Drivers - -The IS31FL32xx/SN32xx family of LED drivers are I2C devices with multiple -constant-current channels, each with independent 256-level PWM control. -Each LED is represented as a sub-node of the device. - -Required properties: -- compatible: one of - issi,is31fl3236 - issi,is31fl3235 - issi,is31fl3218 - issi,is31fl3216 - issi,is31fl3293 - si-en,sn3218 - si-en,sn3216 -- reg: I2C slave address -- address-cells : must be 1 -- size-cells : must be 0 - -LED sub-node properties: -- reg : LED channel number (1..N) -- label : (optional) - see Documentation/devicetree/bindings/leds/common.txt -- linux,default-trigger : (optional) - see Documentation/devicetree/bindings/leds/common.txt - - -Example: - -is31fl3236: led-controller@3c { - compatible = "issi,is31fl3236"; - reg = <0x3c>; - #address-cells = <1>; - #size-cells = <0>; - - led@1 { - reg = <1>; - label = "EB:blue:usr0"; - }; - led@2 { - reg = <2>; - label = "EB:blue:usr1"; - }; - ... - led@36 { - reg = <36>; - label = "EB:blue:usr35"; - }; -}; - -For more product information please see the links below: -http://www.issi.com/US/product-analog-fxled-driver.shtml -http://www.si-en.com/product.asp?parentid=890-- 2.53.0