From: Jun Yan <jerrysteve1101@gmail.com>
To: linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
linux-leds@vger.kernel.org
Cc: lee@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
conor+dt@kernel.org, luccafachinetti@gmail.com,
pzalewski@thegoodpenguin.co.uk, daniel@zonque.org,
Jun Yan <jerrysteve1101@gmail.com>
Subject: [PATCH v6 4/6] leds: is31fl32xx: Add powerdown pin for hardware shutdown mode
Date: Wed, 20 May 2026 21:33:41 +0800 [thread overview]
Message-ID: <20260520133343.1423946-5-jerrysteve1101@gmail.com> (raw)
In-Reply-To: <20260520133343.1423946-1-jerrysteve1101@gmail.com>
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.
Deassert/assert the pin accordingly during probe() and remove()
to manage hardware shutdown mode.
Signed-off-by: Jun Yan <jerrysteve1101@gmail.com>
---
drivers/leds/leds-is31fl32xx.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/drivers/leds/leds-is31fl32xx.c b/drivers/leds/leds-is31fl32xx.c
index fe07acbb103a..b5207ad6ae96 100644
--- a/drivers/leds/leds-is31fl32xx.c
+++ b/drivers/leds/leds-is31fl32xx.c
@@ -10,6 +10,7 @@
*/
#include <linux/device.h>
+#include <linux/gpio/consumer.h>
#include <linux/i2c.h>
#include <linux/kernel.h>
#include <linux/leds.h>
@@ -60,6 +61,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 +423,14 @@ static int is31fl32xx_parse_dt(struct device *dev,
const struct is31fl32xx_chipdef *cdef = priv->cdef;
int ret = 0;
+ /* Driving this GPIO line low takes the chip out of shutdown,
+ * as it is flagged as GPIO_ACTIVE_LOW in provider (such as the device tree).
+ */
+ 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")) {
@@ -609,6 +619,9 @@ static void is31fl32xx_remove(struct i2c_client *client)
if (ret)
dev_err(&client->dev, "Failed to reset registers on removal (%pe)\n",
ERR_PTR(ret));
+
+ if (priv->powerdown_gpio)
+ gpiod_set_value(priv->powerdown_gpio, 1);
}
/*
@@ -643,4 +656,4 @@ module_i2c_driver(is31fl32xx_driver);
MODULE_AUTHOR("David Rivshin <drivshin@allworx.com>");
MODULE_DESCRIPTION("ISSI IS31FL32xx LED driver");
-MODULE_LICENSE("GPL v2");
+MODULE_LICENSE("GPL v2");
\ No newline at end of file
--
2.54.0
next prev parent reply other threads:[~2026-05-20 13:34 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-20 13:33 [PATCH v6 0/6] leds: Add powerdown gpio for is31fl32xx Jun Yan
2026-05-20 13:33 ` [PATCH v6 1/6] dt-bindings: leds: issi,is31fl32xx: convert the binding to yaml Jun Yan
2026-05-20 13:33 ` [PATCH v6 2/6] dt-bindings: leds: issi,is31fl32xx: add support for is31fl3236a Jun Yan
2026-05-20 13:33 ` [PATCH v6 3/6] dt-bindings: leds: issi,is31fl32xx: Add powerdown-gpios property Jun Yan
2026-05-20 13:33 ` Jun Yan [this message]
2026-05-20 13:33 ` [PATCH v6 5/6] leds: is31fl32xx: Fix missing brightness_steps for is31fl3236 Jun Yan
2026-05-20 13:33 ` [PATCH v6 6/6] leds: is31fl32xx: Move pwm frequency setting to init_regs() Jun Yan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260520133343.1423946-5-jerrysteve1101@gmail.com \
--to=jerrysteve1101@gmail.com \
--cc=conor+dt@kernel.org \
--cc=daniel@zonque.org \
--cc=devicetree@vger.kernel.org \
--cc=krzk+dt@kernel.org \
--cc=lee@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=luccafachinetti@gmail.com \
--cc=pzalewski@thegoodpenguin.co.uk \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox