Patch "leds: lp55xx: initialise output direction from dts" has been added to the 5.16-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    leds: lp55xx: initialise output direction from dts

to the 5.16-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     leds-lp55xx-initialise-output-direction-from-dts.patch
and it can be found in the queue-5.16 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 3f9171dea20fbe3c770819e4b49025ff868ea406
Author: Merlijn Wajer <merlijn@xxxxxxxxxx>
Date:   Sun Dec 12 23:40:07 2021 +0100

    leds: lp55xx: initialise output direction from dts
    
    [ Upstream commit 9e87a8da747bf72365abb79e6f64fcca955b4f56 ]
    
    Commit a5d3d1adc95f ("leds: lp55xx: Initialize enable GPIO direction to
    output") attempts to fix this, but the fix did not work since at least
    for the Nokia N900 the value needs to be set to HIGH, per the device
    tree. So rather than hardcoding the value to a potentially invalid value
    for some devices, let's set direction in lp55xx_init_device.
    
    Fixes: a5d3d1adc95f ("leds: lp55xx: Initialize enable GPIO direction to output")
    Fixes: 92a81562e695 ("leds: lp55xx: Add multicolor framework support to lp55xx")
    Fixes: ac219bf3c9bd ("leds: lp55xx: Convert to use GPIO descriptors")
    Signed-off-by: Merlijn Wajer <merlijn@xxxxxxxxxx>
    Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
    Signed-off-by: Pavel Machek <pavel@xxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/leds/leds-lp55xx-common.c b/drivers/leds/leds-lp55xx-common.c
index d1657c46ee2f8..9fdfc1b9a1a0c 100644
--- a/drivers/leds/leds-lp55xx-common.c
+++ b/drivers/leds/leds-lp55xx-common.c
@@ -439,6 +439,8 @@ int lp55xx_init_device(struct lp55xx_chip *chip)
 		return -EINVAL;
 
 	if (pdata->enable_gpiod) {
+		gpiod_direction_output(pdata->enable_gpiod, 0);
+
 		gpiod_set_consumer_name(pdata->enable_gpiod, "LP55xx enable");
 		gpiod_set_value(pdata->enable_gpiod, 0);
 		usleep_range(1000, 2000); /* Keep enable down at least 1ms */
@@ -694,7 +696,7 @@ struct lp55xx_platform_data *lp55xx_of_populate_pdata(struct device *dev,
 	of_property_read_u8(np, "clock-mode", &pdata->clock_mode);
 
 	pdata->enable_gpiod = devm_gpiod_get_optional(dev, "enable",
-						      GPIOD_OUT_LOW);
+						      GPIOD_ASIS);
 	if (IS_ERR(pdata->enable_gpiod))
 		return ERR_CAST(pdata->enable_gpiod);
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux