[PATCH v2 2/6] leds: is31fl319x: Fix shutdown GPIO initial state and remove redundant startup pulse

Krzysztof Kozlowski krzk at kernel.org
Mon Jun 1 01:20:13 PDT 2026


On 25/05/2026 16:46, Jun Yan wrote:
> 1. Per IS31FL319x datasheet [1], the hardware shutdown pin (SDB) is
> active-low.
> 
> Fix incorrect initial GPIO level to properly release the chip from shutdown
> state.
> 
> 2. According to datasheet [1] definition:
>   Shutdown mode can either be used as a means of
>   reducing power consumption or generating a flashing
>   display (repeatedly entering and leaving shutdown
>   mode). During shutdown mode all registers retain their
>   data.
> shutdown mode does NOT perform chip reset.A dedicated software reset is
> already implemented in driver by writing 0 to reset chip.
> 
> Remove redundant unnecessary toggling of the shutdown GPIO.
> 
> [1] https://lumissil.com/assets/pdf/core/IS31FL3193_DS.pdf
> 
> Fixes: dddb4e38c6ba ("leds: is31fl319x: Add shutdown pin and generate a 5ms low pulse when startup")
> Signed-off-by: Jun Yan <jerrysteve1101 at gmail.com>
> ---
>  drivers/leds/leds-is31fl319x.c | 11 ++++-------
>  1 file changed, 4 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/leds/leds-is31fl319x.c b/drivers/leds/leds-is31fl319x.c
> index e411cee06dab..41087ed262cb 100644
> --- a/drivers/leds/leds-is31fl319x.c
> +++ b/drivers/leds/leds-is31fl319x.c
> @@ -396,7 +396,10 @@ static int is31fl319x_parse_fw(struct device *dev, struct is31fl319x_chip *is31)
>  	int count;
>  	int ret;
>  
> -	is31->shutdown_gpio = devm_gpiod_get_optional(dev, "shutdown", GPIOD_OUT_HIGH);
> +	/* Driving this GPIO line low (in fact high) takes the chip out of shutdown,
> +	 * as it is flagged as GPIO_ACTIVE_LOW in provider (such as the device tree).
> +	 */
> +	is31->shutdown_gpio = devm_gpiod_get_optional(dev, "shutdown", GPIOD_OUT_LOW);

That's ABI break.

Best regards,
Krzysztof



More information about the linux-arm-kernel mailing list