diff options
author | Daniel Hillenbrand <daniel.hillenbrand@codeworkx.de> | 2012-07-21 23:04:45 +0200 |
---|---|---|
committer | Daniel Hillenbrand <daniel.hillenbrand@codeworkx.de> | 2012-07-21 23:04:45 +0200 |
commit | 0a1182796f6475b8cb2ff1781dad873a744b3197 (patch) | |
tree | e15b5256dac226c49a25b5e24594cd638e2fec2c /drivers/leds | |
parent | 633018c13fe06461d9c60692fbb114734aa37802 (diff) | |
download | kernel_samsung_smdk4412-0a1182796f6475b8cb2ff1781dad873a744b3197.zip kernel_samsung_smdk4412-0a1182796f6475b8cb2ff1781dad873a744b3197.tar.gz kernel_samsung_smdk4412-0a1182796f6475b8cb2ff1781dad873a744b3197.tar.bz2 |
samsung opensource update3
Diffstat (limited to 'drivers/leds')
-rw-r--r-- | drivers/leds/leds-aat1290a.c | 2 | ||||
-rw-r--r-- | drivers/leds/leds-an30259a.c | 22 |
2 files changed, 17 insertions, 7 deletions
diff --git a/drivers/leds/leds-aat1290a.c b/drivers/leds/leds-aat1290a.c index 8889360..493f422 100644 --- a/drivers/leds/leds-aat1290a.c +++ b/drivers/leds/leds-aat1290a.c @@ -125,7 +125,7 @@ static long aat1290a_ioctl(struct file *file, return 0; } -static ssize_t aat1290a_power(struct device *dev, +ssize_t aat1290a_power(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { diff --git a/drivers/leds/leds-an30259a.c b/drivers/leds/leds-an30259a.c index bae3203..ce05065 100644 --- a/drivers/leds/leds-an30259a.c +++ b/drivers/leds/leds-an30259a.c @@ -77,6 +77,7 @@ #define LED_R_CURRENT 0x28 #define LED_G_CURRENT 0x28 #define LED_B_CURRENT 0x28 +#define LED_MAX_CURRENT 0xFF #define LED_OFF 0x00 #define MAX_NUM_LEDS 3 @@ -85,17 +86,17 @@ static struct an30259_led_conf led_conf[] = { { .name = "led_r", .brightness = LED_OFF, - .max_brightness = 0x3C, + .max_brightness = LED_R_CURRENT, .flags = 0, }, { .name = "led_g", .brightness = LED_OFF, - .max_brightness = 0x3C, + .max_brightness = LED_G_CURRENT, .flags = 0, }, { .name = "led_b", .brightness = LED_OFF, - .max_brightness = 0x3C, + .max_brightness = LED_B_CURRENT, .flags = 0, } }; @@ -394,8 +395,20 @@ static void an30259a_set_led_blink(enum an30259a_led_enum led, struct i2c_client *client; client = b_client; + if (brightness == LED_OFF) { + leds_on(led, false, false, brightness); + return; + } + + if (brightness > LED_MAX_CURRENT) + brightness = LED_MAX_CURRENT; + + /* In user case, LED current is restricted to less than 2mA */ + brightness = (brightness * LED_R_CURRENT) / LED_MAX_CURRENT + 1; + if (delay_on_time > SLPTT_MAX_VALUE) delay_on_time = SLPTT_MAX_VALUE; + if (delay_off_time > SLPTT_MAX_VALUE) delay_off_time = SLPTT_MAX_VALUE; @@ -404,9 +417,6 @@ static void an30259a_set_led_blink(enum an30259a_led_enum led, if (brightness == LED_OFF) leds_on(led, false, false, brightness); return; - } else if (brightness == LED_OFF) { - leds_on(led, false, false, brightness); - return; } else leds_on(led, true, true, brightness); |