diff options
-rw-r--r-- | driver/led/lm3509.c | 26 | ||||
-rw-r--r-- | driver/led/lm3509.h | 16 |
2 files changed, 19 insertions, 23 deletions
diff --git a/driver/led/lm3509.c b/driver/led/lm3509.c index 4f5a911da4..11cacc6251 100644 --- a/driver/led/lm3509.c +++ b/driver/led/lm3509.c @@ -47,29 +47,9 @@ static int brightness_to_bmain(int percent) static int lm3509_power(int enable) { - int ret = 0; - uint8_t gp = 0, bmain = 0; - - if (enable) { - /* - * [2]= set both main and secondary current same - * both control by BMAIN. - * [1]= enable secondary current sink. - * [0]= enable main current sink. - */ - gp = 0x07; - /* - * Brightness register - * 0x00= 0% - * 0x1F= 100% - */ - bmain = ARRAY_SIZE(lm3509_brightness) - 1; - } - - ret |= lm3509_write(LM3509_REG_GP, gp); - ret |= lm3509_write(LM3509_REG_BMAIN, bmain); - - return ret; + /* Enable both MAIN and SUB in unison mode. + * Don't alter brightness here. It's not driver's business. */ + return lm3509_write(LM3509_REG_GP, enable ? 0x7 : 0); } static int lm3509_set_brightness(int percent) diff --git a/driver/led/lm3509.h b/driver/led/lm3509.h index f1fbd6b3d4..8318197a8e 100644 --- a/driver/led/lm3509.h +++ b/driver/led/lm3509.h @@ -11,7 +11,23 @@ /* 8-bit I2C address */ #define LM3509_I2C_ADDR 0x6C +/* + * General purpose register + * + * [2]= set both main and secondary current same + * both control by BMAIN. + * [1]= enable secondary current sink. + * [0]= enable main current sink. + */ #define LM3509_REG_GP 0x10 + +/* + * Brightness register + * + * 0x00: 0% + * 0x1F: 100% + * Power-on-value: 0% (0xE0) + */ #define LM3509_REG_BMAIN 0xA0 #define LM3509_REG_BSUB 0xB0 |