diff options
author | Arun Murthy <arun.murthy@stericsson.com> | 2010-05-18 16:13:40 +0530 |
---|---|---|
committer | John Rigby <john.rigby@linaro.org> | 2010-09-02 22:45:28 -0600 |
commit | 4c7ab1c4c6872d500bb7bbfbc3d414d9f7f19a44 (patch) | |
tree | fcf27d9012e1e0525113a6f5936c713df7055e7c | |
parent | 0e674622db981e424eda3f0a621f6b385bf2e279 (diff) |
WP:239161 Removed magic values in leds-u8500.c
Signed-off-by: Arun Murthy <arun.murthy@stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/317
Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
Tested-by: Jonas ABERG <jonas.aberg@stericsson.com>
Signed-off-by: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com>
Change-Id: I765b730d3959d3b79755bfe2c0dac895556745c0
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/2369
-rw-r--r-- | drivers/leds/leds-u8500.c | 84 |
1 files changed, 54 insertions, 30 deletions
diff --git a/drivers/leds/leds-u8500.c b/drivers/leds/leds-u8500.c index 836ec9d4fff..f85d29be6df 100644 --- a/drivers/leds/leds-u8500.c +++ b/drivers/leds/leds-u8500.c @@ -1,9 +1,8 @@ /* - * Copyright (C) 2009 ST-Ericsson SA + * Copyright (C) ST-Ericsson SA 2010 * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, as - * published by the Free Software Foundation. + * Author: Dushyanth S R <dushyanth.sr@stericsson.com> for ST-Ericsson + * License terms: GNU General Public License (GPL) version 2 */ #include <linux/module.h> @@ -11,24 +10,45 @@ #include <linux/leds.h> #include <mach/ab8500.h> +#define DISABLE_PWM1 0 +#define DISABLE_PWM2 0 +#define DISABLE_PWM3 0 +#define ENABLE_PWM1 0x01 +#define PWM_DUTY_LOW_1024_1024 0xFF +#define PWM_DUTY_HI_1024_1024 0x03 +#define PWM_DUTY_HI_512_1025 0x01 +#define PWM_DUTY_LOW_1_1024 0x00 +#define PWM_DUTY_HI_1_1024 0x00 +#define PWM_FULL 255 +#define PWM_HALF 127 + static void lcd_backlight_brightness_set(struct led_classdev *led_cdev, enum led_brightness value) { if (value == LED_OFF) { - /* Putting of the backlight */ - ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL7_REG, 0x00); - ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL1_REG, 0xFF); - ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL2_REG, 0x03); + /* Putting off the backlight */ + ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL7_REG, + (DISABLE_PWM1 | DISABLE_PWM2 | DISABLE_PWM3)); + ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL1_REG, + PWM_DUTY_LOW_1024_1024); + ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL2_REG, + PWM_DUTY_HI_1024_1024); } else if ((value > LED_OFF) && (value <= LED_HALF)) { - /*Putting on the backlight at half brightness */ - ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL7_REG, 0x01); - ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL1_REG, 0xFF); - ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL2_REG, 0x01); + /* Putting on the backlight at half brightness */ + ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL7_REG, + ENABLE_PWM1); + ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL1_REG, + PWM_DUTY_LOW_1024_1024); + ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL2_REG, + PWM_DUTY_HI_512_1025); } else if ((value > LED_HALF) && (value <= LED_FULL)) { - /*Putting on the backlight in full brightness */ - ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL7_REG, 0x01); - ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL1_REG, 0xFF); - ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL2_REG, 0x03); + /* Putting on the backlight in full brightness */ + ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL7_REG, + ENABLE_PWM1); + ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL1_REG, + PWM_DUTY_LOW_1024_1024); + ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL2_REG, + PWM_DUTY_HI_1024_1024); } } @@ -36,14 +56,14 @@ enum led_brightness (lcd_backlight_brightness_get)(struct led_classdev *led_cdev { int value = 0; value = ab8500_read(AB8500_MISC, AB8500_PWM_OUT_CTRL7_REG); - if (!(value & 0x01)) + if (!(value & ENABLE_PWM1)) return 0; value = ab8500_read(AB8500_MISC, AB8500_PWM_OUT_CTRL2_REG); - if ((value & 0x03) == 0x03) - return 255; - else if ((value & 0x03) == 0x01) - return 127; + if ((value & 0x03) == PWM_DUTY_HI_1024_1024) + return PWM_FULL; + else if ((value & 0x03) == PWM_DUTY_HI_512_1025) + return PWM_HALF; return 0; } @@ -68,9 +88,10 @@ static int __init u8500_leds_probe(struct platform_device *pdev) if (ret < 0) return ret; - ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL7_REG, 0x01); - ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL1_REG, 0xFF); - ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL2_REG, 0x03); + ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL7_REG, ENABLE_PWM1); + ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL1_REG, + PWM_DUTY_LOW_1024_1024); + ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL2_REG, PWM_DUTY_HI_1024_1024); return 0; } @@ -80,9 +101,12 @@ static int __init u8500_leds_probe(struct platform_device *pdev) */ static int u8500_leds_remove(struct platform_device *pdev) { - ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL7_REG, 0x00); - ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL1_REG, 0x00); - ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL2_REG, 0x00); + ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL7_REG, + (DISABLE_PWM1 | DISABLE_PWM2 | DISABLE_PWM3)); + ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL1_REG, + PWM_DUTY_LOW_1_1024); + ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL2_REG, + PWM_DUTY_HI_1_1024); led_classdev_unregister(&lcd_backlight); return 0; @@ -120,8 +144,8 @@ static struct platform_driver u8500_leds_driver = { }, .probe = u8500_leds_probe, .remove = u8500_leds_remove, - .suspend = u8500_leds_suspend, - .resume = u8500_leds_resume, + .suspend = u8500_leds_suspend, + .resume = u8500_leds_resume, }; /* @@ -143,6 +167,6 @@ static void __exit u8500_leds_exit(void) module_init(u8500_leds_init); module_exit(u8500_leds_exit); -MODULE_AUTHOR("ST Ericsson"); +MODULE_AUTHOR("ST-Ericsson, Dushyanth S R"); MODULE_DESCRIPTION("LEDS class framework implementation for u8500 Platform (LCD backlight)"); MODULE_LICENSE("GPL"); |