* [PATCH v3 1/5] dt-bindings: leds: is31fl32xx: convert the binding to yaml
2026-04-29 15:44 [PATCH v3 0/5] leds: Add powerdown gpio for is31fl32xx Jun Yan
@ 2026-04-29 15:44 ` Jun Yan
2026-05-06 19:41 ` Rob Herring
2026-04-29 15:44 ` [PATCH v3 2/5] dt-bindings: leds: leds-is31fl32xx: add support for is31fl3236a Jun Yan
` (3 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Jun Yan @ 2026-04-29 15:44 UTC (permalink / raw)
To: linux-kernel, devicetree, linux-leds
Cc: lee, robh, krzk+dt, conor+dt, luccafachinetti, pzalewski, daniel,
Jun Yan
Convert leds-is31fl32xx to DT schema format.
Co-developed-by: Lucca Fachinetti <luccafachinetti@gmail.com>
Signed-off-by: Lucca Fachinetti <luccafachinetti@gmail.com>
Co-developed-by: Pawel Zalewski <pzalewski@thegoodpenguin.co.uk>
Signed-off-by: Pawel Zalewski <pzalewski@thegoodpenguin.co.uk>
Signed-off-by: Jun Yan <jerrysteve1101@gmail.com>
---
.../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.txt
diff --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])+$":
+ 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])+$":
+ 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
+
+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
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [PATCH v3 1/5] dt-bindings: leds: is31fl32xx: convert the binding to yaml
2026-04-29 15:44 ` [PATCH v3 1/5] dt-bindings: leds: is31fl32xx: convert the binding to yaml Jun Yan
@ 2026-05-06 19:41 ` Rob Herring
0 siblings, 0 replies; 9+ messages in thread
From: Rob Herring @ 2026-05-06 19:41 UTC (permalink / raw)
To: Jun Yan
Cc: linux-kernel, devicetree, linux-leds, lee, krzk+dt, conor+dt,
luccafachinetti, pzalewski, daniel
On Wed, Apr 29, 2026 at 11:44:45PM +0800, Jun Yan wrote:
> Convert leds-is31fl32xx to DT schema format.
>
> Co-developed-by: Lucca Fachinetti <luccafachinetti@gmail.com>
> Signed-off-by: Lucca Fachinetti <luccafachinetti@gmail.com>
> Co-developed-by: Pawel Zalewski <pzalewski@thegoodpenguin.co.uk>
> Signed-off-by: Pawel Zalewski <pzalewski@thegoodpenguin.co.uk>
> Signed-off-by: Jun Yan <jerrysteve1101@gmail.com>
> ---
> .../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.txt
>
> diff --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.
> +
> +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
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v3 2/5] dt-bindings: leds: leds-is31fl32xx: add support for is31fl3236a
2026-04-29 15:44 [PATCH v3 0/5] leds: Add powerdown gpio for is31fl32xx Jun Yan
2026-04-29 15:44 ` [PATCH v3 1/5] dt-bindings: leds: is31fl32xx: convert the binding to yaml Jun Yan
@ 2026-04-29 15:44 ` Jun Yan
2026-05-06 19:42 ` Rob Herring (Arm)
2026-04-29 15:44 ` [PATCH v3 3/5] dt-bindings: leds: leds-is31fl32xx: Add powerdown-gpios property Jun Yan
` (2 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Jun Yan @ 2026-04-29 15:44 UTC (permalink / raw)
To: linux-kernel, devicetree, linux-leds
Cc: lee, robh, krzk+dt, conor+dt, luccafachinetti, pzalewski, daniel,
Jun Yan
Add an additional and optional control property for setting
the output PWM frequency to 22kHz that exists on is31fl3236a.
The default is 3kHz and this option puts the operational frequency
outside of the audible range.
Co-developed-by: Pawel Zalewski <pzalewski@thegoodpenguin.co.uk>
Signed-off-by: Pawel Zalewski <pzalewski@thegoodpenguin.co.uk>
Signed-off-by: Jun Yan <jerrysteve1101@gmail.com>
---
.../bindings/leds/issl,is31fl32xx.yaml | 25 +++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/Documentation/devicetree/bindings/leds/issl,is31fl32xx.yaml b/Documentation/devicetree/bindings/leds/issl,is31fl32xx.yaml
index cb4741dee12e..25ce67940c88 100644
--- a/Documentation/devicetree/bindings/leds/issl,is31fl32xx.yaml
+++ b/Documentation/devicetree/bindings/leds/issl,is31fl32xx.yaml
@@ -21,6 +21,7 @@ description: |
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/IS31FL3236A_DS.pdf
https://www.lumissil.com/assets/pdf/core/IS31FL3293_DS.pdf
properties:
@@ -30,6 +31,7 @@ properties:
- issi,is31fl3218
- issi,is31fl3235
- issi,is31fl3236
+ - issi,is31fl3236a
- issi,is31fl3293
- si-en,sn3216
- si-en,sn3218
@@ -37,6 +39,12 @@ properties:
reg:
maxItems: 1
+ issi,22khz-pwm:
+ type: boolean
+ description:
+ When present, the chip's PWM will operate at ~22kHz as opposed
+ to ~3kHz to move the operating frequency out of the audible range.
+
"#address-cells":
const: 1
@@ -60,6 +68,22 @@ patternProperties:
- reg
allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - issi,is31fl3216
+ - issi,is31fl3218
+ - issi,is31fl3235
+ - issi,is31fl3236
+ - issi,is31fl3293
+ - si-en,sn3216
+ - si-en,sn3218
+ then:
+ properties:
+ issi,22khz-pwm: false
+
- if:
properties:
compatible:
@@ -116,6 +140,7 @@ allOf:
contains:
enum:
- issi,is31fl3236
+ - issi,is31fl3236a
then:
patternProperties:
"^led@([1-9])+$":
--
2.53.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [PATCH v3 2/5] dt-bindings: leds: leds-is31fl32xx: add support for is31fl3236a
2026-04-29 15:44 ` [PATCH v3 2/5] dt-bindings: leds: leds-is31fl32xx: add support for is31fl3236a Jun Yan
@ 2026-05-06 19:42 ` Rob Herring (Arm)
0 siblings, 0 replies; 9+ messages in thread
From: Rob Herring (Arm) @ 2026-05-06 19:42 UTC (permalink / raw)
To: Jun Yan
Cc: linux-leds, linux-kernel, luccafachinetti, lee, krzk+dt,
pzalewski, daniel, devicetree, conor+dt
On Wed, 29 Apr 2026 23:44:46 +0800, Jun Yan wrote:
> Add an additional and optional control property for setting
> the output PWM frequency to 22kHz that exists on is31fl3236a.
> The default is 3kHz and this option puts the operational frequency
> outside of the audible range.
>
> Co-developed-by: Pawel Zalewski <pzalewski@thegoodpenguin.co.uk>
> Signed-off-by: Pawel Zalewski <pzalewski@thegoodpenguin.co.uk>
> Signed-off-by: Jun Yan <jerrysteve1101@gmail.com>
> ---
> .../bindings/leds/issl,is31fl32xx.yaml | 25 +++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v3 3/5] dt-bindings: leds: leds-is31fl32xx: Add powerdown-gpios property
2026-04-29 15:44 [PATCH v3 0/5] leds: Add powerdown gpio for is31fl32xx Jun Yan
2026-04-29 15:44 ` [PATCH v3 1/5] dt-bindings: leds: is31fl32xx: convert the binding to yaml Jun Yan
2026-04-29 15:44 ` [PATCH v3 2/5] dt-bindings: leds: leds-is31fl32xx: add support for is31fl3236a Jun Yan
@ 2026-04-29 15:44 ` Jun Yan
2026-05-06 19:42 ` Rob Herring (Arm)
2026-04-29 15:44 ` [PATCH v3 4/5] leds: is31fl32xx: Add powerdown pin to exit hardware shutdown mode Jun Yan
2026-04-29 15:44 ` [PATCH v3 5/5] leds: is31f132xx: Fix missing brightness_steps for is31f13236 Jun Yan
4 siblings, 1 reply; 9+ messages in thread
From: Jun Yan @ 2026-04-29 15:44 UTC (permalink / raw)
To: linux-kernel, devicetree, linux-leds
Cc: lee, robh, krzk+dt, conor+dt, luccafachinetti, pzalewski, daniel,
Jun Yan
The IS31FL32XX series features an SDB shutdown pin.
Driving it low (active low) places the chip into hardware shutdown mode
for power saving, while all register contents are preserved
and registers are not reset.
Add powerdown-gpios property to describe the GPIO connected to the
SDB pin of IS31FL32XX series LED controllers.
Signed-off-by: Jun Yan <jerrysteve1101@gmail.com>
---
.../devicetree/bindings/leds/issl,is31fl32xx.yaml | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/Documentation/devicetree/bindings/leds/issl,is31fl32xx.yaml b/Documentation/devicetree/bindings/leds/issl,is31fl32xx.yaml
index 25ce67940c88..9b129f962d1f 100644
--- a/Documentation/devicetree/bindings/leds/issl,is31fl32xx.yaml
+++ b/Documentation/devicetree/bindings/leds/issl,is31fl32xx.yaml
@@ -45,6 +45,15 @@ properties:
When present, the chip's PWM will operate at ~22kHz as opposed
to ~3kHz to move the operating frequency out of the audible range.
+ powerdown-gpios:
+ maxItems: 1
+ description:
+ GPIO connected to the chip's SDB pin.
+ Driving this GPIO low places the chip into hardware shutdown mode
+ for power saving. All register contents are preserved and registers
+ are not reset during shutdown. The chip exits hardware shutdown mode
+ when the SDB pin is pulled high.
+
"#address-cells":
const: 1
@@ -158,6 +167,7 @@ additionalProperties: false
examples:
- |
+ #include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/leds/common.h>
i2c {
@@ -170,6 +180,8 @@ examples:
#address-cells = <1>;
#size-cells = <0>;
+ powerdown-gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
+
led@1 {
reg = <1>;
color = <LED_COLOR_ID_RED>;
--
2.53.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [PATCH v3 3/5] dt-bindings: leds: leds-is31fl32xx: Add powerdown-gpios property
2026-04-29 15:44 ` [PATCH v3 3/5] dt-bindings: leds: leds-is31fl32xx: Add powerdown-gpios property Jun Yan
@ 2026-05-06 19:42 ` Rob Herring (Arm)
0 siblings, 0 replies; 9+ messages in thread
From: Rob Herring (Arm) @ 2026-05-06 19:42 UTC (permalink / raw)
To: Jun Yan
Cc: linux-kernel, pzalewski, lee, krzk+dt, conor+dt, daniel,
linux-leds, luccafachinetti, devicetree
On Wed, 29 Apr 2026 23:44:47 +0800, Jun Yan wrote:
> The IS31FL32XX series features an SDB shutdown pin.
> Driving it low (active low) places the chip into hardware shutdown mode
> for power saving, while all register contents are preserved
> and registers are not reset.
>
> Add powerdown-gpios property to describe the GPIO connected to the
> SDB pin of IS31FL32XX series LED controllers.
>
> Signed-off-by: Jun Yan <jerrysteve1101@gmail.com>
> ---
> .../devicetree/bindings/leds/issl,is31fl32xx.yaml | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v3 4/5] leds: is31fl32xx: Add powerdown pin to exit hardware shutdown mode
2026-04-29 15:44 [PATCH v3 0/5] leds: Add powerdown gpio for is31fl32xx Jun Yan
` (2 preceding siblings ...)
2026-04-29 15:44 ` [PATCH v3 3/5] dt-bindings: leds: leds-is31fl32xx: Add powerdown-gpios property Jun Yan
@ 2026-04-29 15:44 ` Jun Yan
2026-04-29 15:44 ` [PATCH v3 5/5] leds: is31f132xx: Fix missing brightness_steps for is31f13236 Jun Yan
4 siblings, 0 replies; 9+ messages in thread
From: Jun Yan @ 2026-04-29 15:44 UTC (permalink / raw)
To: linux-kernel, devicetree, linux-leds
Cc: lee, robh, krzk+dt, conor+dt, luccafachinetti, pzalewski, daniel,
Jun Yan
The IS31FL32XX series features an SDB shutdown pin.
Driving it low (active low) places the chip into hardware shutdown
mode for power saving, while all register contents are preserved
and registers are not reset.
Drive the pin logic low during probe() to exit hardware shutdown
mode.
Signed-off-by: Jun Yan <jerrysteve1101@gmail.com>
---
drivers/leds/leds-is31fl32xx.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/leds/leds-is31fl32xx.c b/drivers/leds/leds-is31fl32xx.c
index fe07acbb103a..801caf2b2e71 100644
--- a/drivers/leds/leds-is31fl32xx.c
+++ b/drivers/leds/leds-is31fl32xx.c
@@ -60,6 +60,7 @@ struct is31fl32xx_led_data {
struct is31fl32xx_priv {
const struct is31fl32xx_chipdef *cdef;
struct i2c_client *client;
+ struct gpio_desc *powerdown_gpio;
unsigned int num_leds;
struct is31fl32xx_led_data leds[];
};
@@ -421,6 +422,11 @@ static int is31fl32xx_parse_dt(struct device *dev,
const struct is31fl32xx_chipdef *cdef = priv->cdef;
int ret = 0;
+ priv->powerdown_gpio = devm_gpiod_get_optional(dev, "powerdown", GPIOD_OUT_LOW);
+ if (IS_ERR(priv->powerdown_gpio))
+ return dev_err_probe(dev, PTR_ERR(priv->powerdown_gpio),
+ "Failed to get powerdown gpio\n");
+
if ((cdef->output_frequency_setting_reg != IS31FL32XX_REG_NONE) &&
of_property_read_bool(dev_of_node(dev), "issi,22khz-pwm")) {
--
2.53.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v3 5/5] leds: is31f132xx: Fix missing brightness_steps for is31f13236
2026-04-29 15:44 [PATCH v3 0/5] leds: Add powerdown gpio for is31fl32xx Jun Yan
` (3 preceding siblings ...)
2026-04-29 15:44 ` [PATCH v3 4/5] leds: is31fl32xx: Add powerdown pin to exit hardware shutdown mode Jun Yan
@ 2026-04-29 15:44 ` Jun Yan
4 siblings, 0 replies; 9+ messages in thread
From: Jun Yan @ 2026-04-29 15:44 UTC (permalink / raw)
To: linux-kernel, devicetree, linux-leds
Cc: lee, robh, krzk+dt, conor+dt, luccafachinetti, pzalewski, daniel,
Jun Yan
Add missing brightness_steps for is31fl3236 to fix brightness control.
Fixes: a18983b95a61 ("leds: is31f132xx: Add support for is31fl3293")
Signed-off-by: Jun Yan <jerrysteve1101@gmail.com>
---
drivers/leds/leds-is31fl32xx.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/leds/leds-is31fl32xx.c b/drivers/leds/leds-is31fl32xx.c
index 801caf2b2e71..353451da72ad 100644
--- a/drivers/leds/leds-is31fl32xx.c
+++ b/drivers/leds/leds-is31fl32xx.c
@@ -487,6 +487,7 @@ static const struct is31fl32xx_chipdef is31fl3236_cdef = {
.pwm_register_base = 0x01,
.led_control_register_base = 0x26,
.enable_bits_per_led_control_register = 1,
+ .brightness_steps = 256,
};
static const struct is31fl32xx_chipdef is31fl3236a_cdef = {
--
2.53.0
^ permalink raw reply related [flat|nested] 9+ messages in thread