Commit 9e87a8da authored by Merlijn Wajer's avatar Merlijn Wajer Committed by Pavel Machek

leds: lp55xx: initialise output direction from dts

Commit a5d3d1ad ("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: a5d3d1ad ("leds: lp55xx: Initialize enable GPIO direction to output")
Fixes: 92a81562 ("leds: lp55xx: Add multicolor framework support to lp55xx")
Fixes: ac219bf3 ("leds: lp55xx: Convert to use GPIO descriptors")
Signed-off-by: default avatarMerlijn Wajer <merlijn@wizzup.org>
Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarPavel Machek <pavel@ucw.cz>
parent e9af026a
...@@ -439,6 +439,8 @@ int lp55xx_init_device(struct lp55xx_chip *chip) ...@@ -439,6 +439,8 @@ int lp55xx_init_device(struct lp55xx_chip *chip)
return -EINVAL; return -EINVAL;
if (pdata->enable_gpiod) { if (pdata->enable_gpiod) {
gpiod_direction_output(pdata->enable_gpiod, 0);
gpiod_set_consumer_name(pdata->enable_gpiod, "LP55xx enable"); gpiod_set_consumer_name(pdata->enable_gpiod, "LP55xx enable");
gpiod_set_value(pdata->enable_gpiod, 0); gpiod_set_value(pdata->enable_gpiod, 0);
usleep_range(1000, 2000); /* Keep enable down at least 1ms */ 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, ...@@ -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); of_property_read_u8(np, "clock-mode", &pdata->clock_mode);
pdata->enable_gpiod = devm_gpiod_get_optional(dev, "enable", pdata->enable_gpiod = devm_gpiod_get_optional(dev, "enable",
GPIOD_OUT_LOW); GPIOD_ASIS);
if (IS_ERR(pdata->enable_gpiod)) if (IS_ERR(pdata->enable_gpiod))
return ERR_CAST(pdata->enable_gpiod); return ERR_CAST(pdata->enable_gpiod);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment