leds: lp8550: correction for pwm
authorSergey Kudakov <sergey.kudakov@motorola.com>
Wed, 8 Dec 2010 01:39:23 +0000 (19:39 -0600)
committerRebecca Schultz Zavin <rebecca@android.com>
Mon, 13 Dec 2010 21:47:20 +0000 (13:47 -0800)
turn off the backlight properly
scale the brightness

Change-Id: I51d9d36c4b5bff4ddda3c2c4273b12368447c7c5
Signed-off-by: Sergey Kudakov <sergey.kudakov@motorola.com>
drivers/leds/leds-lp8550.c

index f99add9130cce96dea21683547e3e9fd2ade3e76..8ca14da544bd7b6fc5d35948aa594073884a88da 100755 (executable)
@@ -235,8 +235,7 @@ static void lp8550_brightness_write(struct lp8550_data *led_data)
 
        if (brightness == LED_OFF) {
                if (lp8550_write_reg(led_data, LP8550_DEVICE_CTRL,
-                               (led_data->led_pdata->dev_ctrl_config &
-                               LD_LP8550_ON_OFF_MASK))) {
+                               LP8550_BRT_MODE_BRIGHT)) {
                        pr_err("%s:writing failed while setting brightness:%d\n",
                                __func__, error);
                }
@@ -261,8 +260,9 @@ static void lp8550_brightness_write(struct lp8550_data *led_data)
 
                if (led_data->led_pdata->dev_ctrl_config ==
                         LP8550_BRT_MODE_PWM) {
+                       //scale the brightness to prevent more than 19mA per LED
                        if (lp8550_write_reg(led_data, LP8550_EEPROM_A0,
-                                brightness))
+                                (brightness * 625) / 1000))
                                pr_err("%s:Failed to set brightness:%d\n",
                                __func__, error);
                }