diff options
author | Johan Hovold <jhovold@gmail.com> | 2013-11-12 18:09:45 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-12 22:09:21 -0500 |
commit | 81b62db56dbdfef8f3b596dc2845df7ee3ab2165 (patch) | |
tree | d035c19baa65faeda0c3bbac854250a986ad7f6d | |
parent | 5ada4550e86b081b889bced50e5ab6c510f9cdd7 (diff) |
backlight: atmel-pwm-bl: refactor gpio_on handling
Add helper function to control the gpio_on signal.
Signed-off-by: Johan Hovold <jhovold@gmail.com>
Acked-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | drivers/video/backlight/atmel-pwm-bl.c | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/drivers/video/backlight/atmel-pwm-bl.c b/drivers/video/backlight/atmel-pwm-bl.c index c2542095a04c..bd1ed342f87a 100644 --- a/drivers/video/backlight/atmel-pwm-bl.c +++ b/drivers/video/backlight/atmel-pwm-bl.c | |||
@@ -26,6 +26,14 @@ struct atmel_pwm_bl { | |||
26 | int gpio_on; | 26 | int gpio_on; |
27 | }; | 27 | }; |
28 | 28 | ||
29 | static void atmel_pwm_bl_set_gpio_on(struct atmel_pwm_bl *pwmbl, int on) | ||
30 | { | ||
31 | if (!gpio_is_valid(pwmbl->gpio_on)) | ||
32 | return; | ||
33 | |||
34 | gpio_set_value(pwmbl->gpio_on, on ^ pwmbl->pdata->on_active_low); | ||
35 | } | ||
36 | |||
29 | static int atmel_pwm_bl_set_intensity(struct backlight_device *bd) | 37 | static int atmel_pwm_bl_set_intensity(struct backlight_device *bd) |
30 | { | 38 | { |
31 | struct atmel_pwm_bl *pwmbl = bl_get_data(bd); | 39 | struct atmel_pwm_bl *pwmbl = bl_get_data(bd); |
@@ -48,19 +56,13 @@ static int atmel_pwm_bl_set_intensity(struct backlight_device *bd) | |||
48 | pwm_duty = pwmbl->pdata->pwm_duty_min; | 56 | pwm_duty = pwmbl->pdata->pwm_duty_min; |
49 | 57 | ||
50 | if (!intensity) { | 58 | if (!intensity) { |
51 | if (gpio_is_valid(pwmbl->gpio_on)) { | 59 | atmel_pwm_bl_set_gpio_on(pwmbl, 0); |
52 | gpio_set_value(pwmbl->gpio_on, | ||
53 | 0 ^ pwmbl->pdata->on_active_low); | ||
54 | } | ||
55 | pwm_channel_writel(&pwmbl->pwmc, PWM_CUPD, pwm_duty); | 60 | pwm_channel_writel(&pwmbl->pwmc, PWM_CUPD, pwm_duty); |
56 | pwm_channel_disable(&pwmbl->pwmc); | 61 | pwm_channel_disable(&pwmbl->pwmc); |
57 | } else { | 62 | } else { |
58 | pwm_channel_enable(&pwmbl->pwmc); | 63 | pwm_channel_enable(&pwmbl->pwmc); |
59 | pwm_channel_writel(&pwmbl->pwmc, PWM_CUPD, pwm_duty); | 64 | pwm_channel_writel(&pwmbl->pwmc, PWM_CUPD, pwm_duty); |
60 | if (gpio_is_valid(pwmbl->gpio_on)) { | 65 | atmel_pwm_bl_set_gpio_on(pwmbl, 1); |
61 | gpio_set_value(pwmbl->gpio_on, | ||
62 | 1 ^ pwmbl->pdata->on_active_low); | ||
63 | } | ||
64 | } | 66 | } |
65 | 67 | ||
66 | return 0; | 68 | return 0; |
@@ -196,10 +198,7 @@ static int atmel_pwm_bl_remove(struct platform_device *pdev) | |||
196 | { | 198 | { |
197 | struct atmel_pwm_bl *pwmbl = platform_get_drvdata(pdev); | 199 | struct atmel_pwm_bl *pwmbl = platform_get_drvdata(pdev); |
198 | 200 | ||
199 | if (gpio_is_valid(pwmbl->gpio_on)) { | 201 | atmel_pwm_bl_set_gpio_on(pwmbl, 0); |
200 | gpio_set_value(pwmbl->gpio_on, | ||
201 | 0 ^ pwmbl->pdata->on_active_low); | ||
202 | } | ||
203 | pwm_channel_disable(&pwmbl->pwmc); | 202 | pwm_channel_disable(&pwmbl->pwmc); |
204 | pwm_channel_free(&pwmbl->pwmc); | 203 | pwm_channel_free(&pwmbl->pwmc); |
205 | 204 | ||