diff options
author | Leo Zhou <zhoubo@huaqin.corp-partner.google.com> | 2019-10-22 13:52:19 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-10-26 09:48:12 +0000 |
commit | 93c0fac6c1ffdf58e29f3c0a7876a79d5a2bd2f0 (patch) | |
tree | 4209683ad065c43cb5990000a81869c843514c13 /board/kukui/led.c | |
parent | 0f6d238844a75756e660959a0c2051f397682ae6 (diff) | |
download | chrome-ec-93c0fac6c1ffdf58e29f3c0a7876a79d5a2bd2f0.tar.gz |
krane: Modify the charge indicator
Based on the OD, the charge indicator should be red under
low battery
BUG=b:142835019
BRANCH=kukui
TEST=1. Charge DUT to battery SOC > 20%, then plug out charger
2. Wait for battery SOC <= 10%, notice the charge indicator
Change-Id: I2013bc6182067ddf64bb790f5cbf4bc0621b7899
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1871502
Reviewed-by: Eric Yilun Lin <yllin@chromium.org>
Tested-by: Leo Zhou <zhoubo@huaqin.corp-partner.google.com>
Commit-Queue: Hung-Te Lin <hungte@chromium.org>
Diffstat (limited to 'board/kukui/led.c')
-rw-r--r-- | board/kukui/led.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/board/kukui/led.c b/board/kukui/led.c index a6c7476d00..527568b83d 100644 --- a/board/kukui/led.c +++ b/board/kukui/led.c @@ -30,11 +30,13 @@ static enum charge_state prv_chstate = PWR_STATE_INIT; static void kukui_led_set_battery(void) { enum charge_state chstate; + static uint8_t prv_r, prv_g, prv_b; uint8_t br[EC_LED_COLOR_COUNT] = { 0 }; chstate = charge_get_state(); - if (prv_chstate == chstate) + if (prv_chstate == chstate && + chstate != PWR_STATE_DISCHARGE) return; prv_chstate = chstate; @@ -47,7 +49,8 @@ static void kukui_led_set_battery(void) br[EC_LED_COLOR_RED] = 1; break; case PWR_STATE_DISCHARGE: - if (charge_get_percent() <= 10) + /* display SoC 10% = real battery SoC 13%*/ + if (charge_get_percent() <= 13) br[EC_LED_COLOR_RED] = 1; break; case PWR_STATE_ERROR: @@ -58,6 +61,14 @@ static void kukui_led_set_battery(void) return; } + if (prv_r == br[EC_LED_COLOR_RED] && + prv_g == br[EC_LED_COLOR_GREEN] && + prv_b == br[EC_LED_COLOR_BLUE]) + return; + + prv_r = br[EC_LED_COLOR_RED]; + prv_g = br[EC_LED_COLOR_GREEN]; + prv_b = br[EC_LED_COLOR_BLUE]; led_set_brightness(EC_LED_ID_BATTERY_LED, br); } |