]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
leds: tlc591xx: update the maximum brightness
authorJean-Jacques Hiblot <jjhiblot@ti.com>
Mon, 23 Sep 2019 10:02:50 +0000 (12:02 +0200)
committerPavel <pavel@ucw.cz>
Sun, 3 Nov 2019 16:38:09 +0000 (17:38 +0100)
The TLC chips actually offer 257 levels:
- 0: led OFF
- 1-255: Led dimmed is using a PWM. The duty cycle range from 0.4% to 99.6%
- 256: led fully ON

Fixes: e370d010a5fe ("leds: tlc591xx: Driver for the TI 8/16 Channel i2c LED driver")
Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Signed-off-by: Pavel Machek <pavel@ucw.cz>
drivers/leds/leds-tlc591xx.c

index 8eadb673dc2e4965680745b2e9e35f24e8e5ce7f..a8911ebd30e51984f2e2cce857bd437c135d5db5 100644 (file)
@@ -13,6 +13,7 @@
 #include <linux/slab.h>
 
 #define TLC591XX_MAX_LEDS      16
+#define TLC591XX_MAX_BRIGHTNESS        256
 
 #define TLC591XX_REG_MODE1     0x00
 #define MODE1_RESPON_ADDR_MASK 0xF0
@@ -112,11 +113,11 @@ tlc591xx_brightness_set(struct led_classdev *led_cdev,
        struct tlc591xx_priv *priv = led->priv;
        int err;
 
-       switch (brightness) {
+       switch ((int)brightness) {
        case 0:
                err = tlc591xx_set_ledout(priv, led, LEDOUT_OFF);
                break;
-       case LED_FULL:
+       case TLC591XX_MAX_BRIGHTNESS:
                err = tlc591xx_set_ledout(priv, led, LEDOUT_ON);
                break;
        default:
@@ -209,7 +210,7 @@ tlc591xx_probe(struct i2c_client *client,
                led->priv = priv;
                led->led_no = reg;
                led->ldev.brightness_set_blocking = tlc591xx_brightness_set;
-               led->ldev.max_brightness = LED_FULL;
+               led->ldev.max_brightness = TLC591XX_MAX_BRIGHTNESS;
                err = devm_led_classdev_register_ext(dev, &led->ldev,
                                                     &init_data);
                if (err < 0) {