summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZick Wei <zick.wei@quanta.corp-partner.google.com>2018-08-21 15:07:12 +0800
committerchrome-bot <chrome-bot@chromium.org>2018-08-29 06:27:18 -0700
commit53f16e6ea71a19b82d72c459307002dc1e48ce07 (patch)
tree049c1c3e79672fb5a0ebd3e17b6fd8bc669d90ca
parente10e1af4d5cc2796b02cfe9e56c8d7eb7b822028 (diff)
downloadchrome-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.c11
-rw-r--r--baseboard/octopus/led_states.h1
-rw-r--r--board/meep/board.h2
-rw-r--r--board/meep/led.c15
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 };