summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--driver/led/lm3509.c26
-rw-r--r--driver/led/lm3509.h16
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