aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Murthy <arun.murthy@stericsson.com>2010-05-18 16:13:40 +0530
committerJohn Rigby <john.rigby@linaro.org>2010-09-02 22:45:28 -0600
commit4c7ab1c4c6872d500bb7bbfbc3d414d9f7f19a44 (patch)
treefcf27d9012e1e0525113a6f5936c713df7055e7c
parent0e674622db981e424eda3f0a621f6b385bf2e279 (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.c84
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");