aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJingoo Han <jg1.han@samsung.com>2013-03-07 21:37:38 -0500
committerBryan Wu <cooloney@gmail.com>2013-04-01 14:04:49 -0400
commit84f6942cde279e812c59eed456d1f43a39ca6c40 (patch)
tree9dd1e0f672a1f2949e8b5d8750979ec2696f7527
parente9dd68cf148994bf2eb718c540a472170b1ad4d3 (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.c5
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