summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRong Chang <rongchang@chromium.org>2012-03-19 18:48:56 +0800
committerRong Chang <rongchang@chromium.org>2012-03-20 14:33:09 +0800
commit13ad11292e37926ceca8f28a17264dd906c24dea (patch)
treee684ebb6a42f081a729369e4a0120f230143de31
parenteb3920ec7a6a5e3e28529fd51a6c63cb6e7509e4 (diff)
downloadchrome-ec-13ad11292e37926ceca8f28a17264dd906c24dea.tar.gz
Set power adapter LED based on charge state
Power adapter LED: GREEN = charge done YELLOW = charging RED = error Signed-off-by: Rong Chang <rongchang@chromium.org> BUG=chrome-os-partner:8536 TEST=manual Change-Id: I5580763a4136e1de7f5eae4e3dda8e169309d902
-rw-r--r--common/charge_state.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/common/charge_state.c b/common/charge_state.c
index 1adea77969..29ea4bba9c 100644
--- a/common/charge_state.c
+++ b/common/charge_state.c
@@ -14,6 +14,7 @@
#include "gpio.h"
#include "lpc.h"
#include "lpc_commands.h"
+#include "power_led.h"
#include "smart_battery.h"
#include "timer.h"
#include "uart.h"
@@ -452,6 +453,10 @@ void charge_state_machine_task(void)
batt_flags &= ~EC_BATT_FLAG_CHARGING;
batt_flags &= ~EC_BATT_FLAG_DISCHARGING;
*ctx.memmap_batt_flags = batt_flags;
+
+ /* Charge done */
+ powerled_set(POWERLED_GREEN);
+
sleep_usec = POLL_PERIOD_LONG;
break;
case PWR_STATE_DISCHARGE:
@@ -466,8 +471,17 @@ void charge_state_machine_task(void)
batt_flags |= EC_BATT_FLAG_CHARGING;
batt_flags &= ~EC_BATT_FLAG_DISCHARGING;
*ctx.memmap_batt_flags = batt_flags;
+
+ /* Charging */
+ powerled_set(POWERLED_YELLOW);
+
sleep_usec = POLL_PERIOD_CHARGE;
break;
+ case PWR_STATE_ERROR:
+ /* Error */
+ powerled_set(POWERLED_RED);
+
+ sleep_usec = POLL_PERIOD_CHARGE;
default:
sleep_usec = POLL_PERIOD_SHORT;
}