| From fe9ed1790a79dbcd2f84b06cb90543ddbf1ea9cd Mon Sep 17 00:00:00 2001 |
| From: Jean-Jacques Hiblot <jjhiblot@ti.com> |
| Date: Mon, 23 Sep 2019 12:02:50 +0200 |
| Subject: [PATCH] leds: tlc591xx: update the maximum brightness |
| |
| commit a2cafdfd8cf5ad8adda6c0ce44a59f46431edf02 upstream. |
| |
| 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> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/leds/leds-tlc591xx.c b/drivers/leds/leds-tlc591xx.c |
| index 59ff088c7d75..9feaec3c8329 100644 |
| --- a/drivers/leds/leds-tlc591xx.c |
| +++ b/drivers/leds/leds-tlc591xx.c |
| @@ -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: |
| @@ -157,7 +158,7 @@ tlc591xx_configure(struct device *dev, |
| led->priv = priv; |
| led->led_no = i; |
| led->ldev.brightness_set_blocking = tlc591xx_brightness_set; |
| - led->ldev.max_brightness = LED_FULL; |
| + led->ldev.max_brightness = TLC591XX_MAX_BRIGHTNESS; |
| err = led_classdev_register(dev, &led->ldev); |
| if (err < 0) { |
| dev_err(dev, "couldn't register LED %s\n", |
| -- |
| 2.7.4 |
| |