diff options
Diffstat (limited to 'board/morphius')
-rw-r--r-- | board/morphius/led.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/board/morphius/led.c b/board/morphius/led.c index fc8ea5d66b..a3b57d6546 100644 --- a/board/morphius/led.c +++ b/board/morphius/led.c @@ -147,6 +147,11 @@ DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, suspend_led_deinit, HOOK_PRIO_DEFAULT); static void led_set_battery(void) { + static int battery_ticks; + uint32_t chflags = charge_get_flags(); + + battery_ticks++; + switch (charge_get_state()) { case PWR_STATE_CHARGE: /* Always indicate when charging, even in suspend. */ @@ -159,7 +164,11 @@ static void led_set_battery(void) led_set_color_battery(LED_WHITE); break; case PWR_STATE_IDLE: /* External power connected in IDLE */ - led_set_color_battery(LED_WHITE); + if (chflags & CHARGE_FLAG_FORCE_IDLE) + led_set_color_battery( + (battery_ticks & 0x4) ? LED_AMBER : LED_OFF); + else + led_set_color_battery(LED_WHITE); break; default: /* Other states don't alter LED behavior */ |