diff options
author | Jingoo Han <jg1.han@samsung.com> | 2013-03-07 21:37:38 -0500 |
---|---|---|
committer | Bryan Wu <cooloney@gmail.com> | 2013-04-01 14:04:49 -0400 |
commit | 84f6942cde279e812c59eed456d1f43a39ca6c40 (patch) | |
tree | 9dd1e0f672a1f2949e8b5d8750979ec2696f7527 | |
parent | e9dd68cf148994bf2eb718c540a472170b1ad4d3 (diff) |
leds: leds-lt3593: set devm_gpio_request_one() flags param correctly
The devm_gpio_request_one() flags parameter was set to:
GPIOF_DIR_OUT | state
GPIOF_DIR_OUT and GPIOF_DIR_IN are defined as below:
GPIOF_DIR_OUT (0 << 0)
GPIOF_DIR_IN (1 << 0)
So, when 'state' is 1, the gpio pin can be set as input, instead
of output.
To prevent this problem, GPIOF_OUT_INIT flags should be used when
using devm_gpio_request_one().
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Bryan Wu <cooloney@gmail.com>
-rw-r--r-- | drivers/leds/leds-lt3593.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/leds/leds-lt3593.c b/drivers/leds/leds-lt3593.c index c9b9e1fec587..ca48a7d5502d 100644 --- a/drivers/leds/leds-lt3593.c +++ b/drivers/leds/leds-lt3593.c | |||
@@ -106,8 +106,9 @@ static int create_lt3593_led(const struct gpio_led *template, | |||
106 | if (!template->retain_state_suspended) | 106 | if (!template->retain_state_suspended) |
107 | led_dat->cdev.flags |= LED_CORE_SUSPENDRESUME; | 107 | led_dat->cdev.flags |= LED_CORE_SUSPENDRESUME; |
108 | 108 | ||
109 | ret = devm_gpio_request_one(parent, template->gpio, | 109 | ret = devm_gpio_request_one(parent, template->gpio, state ? |
110 | GPIOF_DIR_OUT | state, template->name); | 110 | GPIOF_OUT_INIT_HIGH : GPIOF_OUT_INIT_LOW, |
111 | template->name); | ||
111 | if (ret < 0) | 112 | if (ret < 0) |
112 | return ret; | 113 | return ret; |
113 | 114 | ||