diff options
author | Zick Wei <zick.wei@quanta.corp-partner.google.com> | 2018-08-21 15:07:12 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-08-29 06:27:18 -0700 |
commit | 53f16e6ea71a19b82d72c459307002dc1e48ce07 (patch) | |
tree | 049c1c3e79672fb5a0ebd3e17b6fd8bc669d90ca | |
parent | e10e1af4d5cc2796b02cfe9e56c8d7eb7b822028 (diff) | |
download | chrome-ec-53f16e6ea71a19b82d72c459307002dc1e48ce07.tar.gz |
meep: Add charge LED behavior
Add charge LED behavior to meet spec:
AC attached: solid on White.
Charging: solid on Amber.
Discharging(S0/S3/S5): Both(White/Amber) Off.
Battery Error: Blinking White (0.5 sec on, 0.5 sec off)
Fuel <10%: Blinking White (1 sec on, 1 sec off)
Force idle for factory: Blinking Amber (1 sec on, 1 sec off)
BUG=b:112825269
BRANCH=None
TEST=manual
Check charge Led off when battery is discharging.
Check charge Amber Led on when battery is charging.
Check charge White Led on when battery is full
and AC is attached.
Check charge White led blink(0.5 sec on, 0.5 sec off)
when battery error.
Check charge White led blink(1 sec on, 1 sec off)
when battery fuel less than 10%.
Check charge Amber led blink(1 sec on, 1 sec off)
when factory test.
Signed-off-by: Zick Wei <zick.wei@quanta.corp-partner.google.com>
Change-Id: I2cc2f9d710a6b94fa48f6d2fb78ac7996a7615f5
Reviewed-on: https://chromium-review.googlesource.com/1184941
Commit-Ready: Devin Lu <Devin.Lu@quantatw.com>
Reviewed-by: Diana Z <dzigterman@chromium.org>
-rw-r--r-- | baseboard/octopus/led_states.c | 11 | ||||
-rw-r--r-- | baseboard/octopus/led_states.h | 1 | ||||
-rw-r--r-- | board/meep/board.h | 2 | ||||
-rw-r--r-- | board/meep/led.c | 15 |
4 files changed, 21 insertions, 8 deletions
diff --git a/baseboard/octopus/led_states.c b/baseboard/octopus/led_states.c index 1687061097..8df4758d31 100644 --- a/baseboard/octopus/led_states.c +++ b/baseboard/octopus/led_states.c @@ -41,8 +41,15 @@ static enum led_states led_get_state(void) } /* Intentional fall-through */ case PWR_STATE_DISCHARGE /* and PWR_STATE_DISCHARGE_FULL */: - if (chipset_in_state(CHIPSET_STATE_ON)) - new_state = STATE_DISCHARGE_S0; + if (chipset_in_state(CHIPSET_STATE_ON)) { +#ifdef OCTOPUS_BATT_FUEL_LOW_LED + if (charge_get_percent() < + OCTOPUS_BATT_FUEL_LOW_LED) + new_state = STATE_DISCHARGE_S0_BAT_LOW; + else +#endif + new_state = STATE_DISCHARGE_S0; + } else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND)) new_state = STATE_DISCHARGE_S3; else diff --git a/baseboard/octopus/led_states.h b/baseboard/octopus/led_states.h index a484566e3a..f664034760 100644 --- a/baseboard/octopus/led_states.h +++ b/baseboard/octopus/led_states.h @@ -34,6 +34,7 @@ enum led_states { STATE_CHARGING_LVL_2, STATE_CHARGING_FULL_CHARGE, STATE_DISCHARGE_S0, + STATE_DISCHARGE_S0_BAT_LOW, STATE_DISCHARGE_S3, STATE_DISCHARGE_S5, STATE_BATTERY_ERROR, diff --git a/board/meep/board.h b/board/meep/board.h index 5dc38a8a95..578e71e297 100644 --- a/board/meep/board.h +++ b/board/meep/board.h @@ -64,6 +64,8 @@ #define CONFIG_MKBP_EVENT #define CONFIG_MKBP_USE_HOST_EVENT +#define OCTOPUS_BATT_FUEL_LOW_LED 10 + #define CONFIG_ACCEL_LSM6DSM_INT_EVENT TASK_EVENT_CUSTOM(4) #ifndef __ASSEMBLER__ diff --git a/board/meep/led.c b/board/meep/led.c index f78293a032..1b2f58c7bd 100644 --- a/board/meep/led.c +++ b/board/meep/led.c @@ -23,12 +23,15 @@ const struct led_descriptor [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} }, [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} }, [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} }, - [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} }, - [STATE_DISCHARGE_S3] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC}, - {LED_OFF, 3 * LED_ONE_SEC} }, - [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} }, - [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_WHITE, 2 * LED_ONE_SEC}, - {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} }, + [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} }, + [STATE_DISCHARGE_S0_BAT_LOW] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC}, + {LED_OFF, 1 * LED_ONE_SEC} }, + [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} }, + [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} }, + [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_WHITE, 0.5 * LED_ONE_SEC}, + {LED_OFF, 0.5 * LED_ONE_SEC} }, + [STATE_FACTORY_TEST] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC}, + {LED_OFF, 1 * LED_ONE_SEC} }, }; const enum ec_led_id supported_led_ids[] = { EC_LED_ID_BATTERY_LED }; |