mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
dlkm: led_aw2033: don't enable led and CHGDIS when boot
dlkm: - don't enable led if brightness and blink is zero - don't enable CHGDIS when boot, set reset reg can enable CHGDIS, so change reset function. Change-Id: I2c86386a2f1e0714793871dc72ac2ad553d67aaf Signed-off-by: wangyq13 <[email protected]> Reviewed-on: https://gerrit.mot.com/2309617 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: <[email protected]> Reviewed-by: Yuecai Liu <[email protected]> Reviewed-by: Huosheng Liao <[email protected]> Submit-Approved: Jira Key
This commit is contained in:
parent
4d4e63a83c
commit
33cf825022
1 changed files with 16 additions and 5 deletions
|
|
@ -59,6 +59,7 @@
|
|||
#define AW2033_LED_MANUAL_PWM_MASK 0xFF
|
||||
#define AW2033_LED_FADEIN_MODE_MASK 0x20
|
||||
#define AW2033_LED_FADEOUT_MODE_MASK 0x40
|
||||
#define AW2033_CLEAR_MASK 0x00
|
||||
|
||||
#define MAX_RISE_TIME_MS 15
|
||||
#define MAX_HOLD_TIME_MS 15
|
||||
|
|
@ -137,8 +138,17 @@ static int aw2033_read(struct aw2033_led *led, u8 reg, u8 *val)
|
|||
|
||||
static void aw2033_soft_reset(struct aw2033_led *led)
|
||||
{
|
||||
aw2033_write(led, AW2033_REG_RESET, AW2033_RESET_MASK);
|
||||
msleep(5);
|
||||
int reg;
|
||||
|
||||
/* don't use reset reg, it cause CHGDIS enable */
|
||||
/* aw2033_write(led, AW2033_REG_RESET, AW2033_RESET_MASK); */
|
||||
aw2033_write(led, AW2033_REG_GCR1, AW2033_CHARGE_DISABLE_MASK);
|
||||
aw2033_write(led, AW2033_REG_GCR2, AW2033_CLEAR_MASK);
|
||||
|
||||
for (reg = AW2033_REG_LEDEN; reg <= AW2033_REG_LED2T2; reg++)
|
||||
aw2033_write(led, reg, AW2033_CLEAR_MASK);
|
||||
|
||||
/* msleep(5); */ /* don't need delay anymore*/
|
||||
}
|
||||
|
||||
static void aw2033_brightness_work(struct work_struct *work)
|
||||
|
|
@ -149,10 +159,10 @@ static void aw2033_brightness_work(struct work_struct *work)
|
|||
|
||||
mutex_lock(&led->pdata->led->lock);
|
||||
|
||||
|
||||
/* enable aw2033 if disabled */
|
||||
aw2033_read(led, AW2033_REG_GCR1, &val);
|
||||
if (!(val&AW2033_CHIP_ENABLE_MASK)) {
|
||||
/*only enable when brightness is bigger than 0, avoid blink when boot */
|
||||
if ((led->cdev.brightness > 0) && !(val&AW2033_CHIP_ENABLE_MASK)) {
|
||||
aw2033_write(led, AW2033_REG_GCR1,
|
||||
AW2033_CHARGE_DISABLE_MASK | AW2033_CHIP_ENABLE_MASK);
|
||||
msleep(2);
|
||||
|
|
@ -194,7 +204,8 @@ static void aw2033_led_blink_set(struct aw2033_led *led, unsigned long blinking)
|
|||
|
||||
/* enable aw2033 if disabled */
|
||||
aw2033_read(led, AW2033_REG_GCR1, &val);
|
||||
if (!(val&AW2033_CHIP_ENABLE_MASK)) {
|
||||
/*only enable when blinking is bigger than 0, avoid blink when boot */
|
||||
if ((blinking > 0) && !(val&AW2033_CHIP_ENABLE_MASK)) {
|
||||
aw2033_write(led, AW2033_REG_GCR1,
|
||||
AW2033_CHARGE_DISABLE_MASK | AW2033_CHIP_ENABLE_MASK);
|
||||
msleep(2);
|
||||
|
|
|
|||
Loading…
Reference in a new issue