diff options
author | ChromeOS Developer <dparker@chromium.org> | 2014-03-24 14:41:35 -0700 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2014-03-25 00:43:23 +0000 |
commit | b0b57a581e8ed3e818a195f7d6f9695ed90287ee (patch) | |
tree | abe063f525d94e6e53705dc807ee3fdfb917ff68 | |
parent | e6eb3f2773bfaff40a2b817c681cbd87043fb947 (diff) | |
download | chrome-ec-b0b57a581e8ed3e818a195f7d6f9695ed90287ee.tar.gz |
Glimmer: Use HOOK_INIT to disable battery cuttoff
Previously the battery cutoff disable code was
relying on an extra AC change event that was sent
at power-on.
BUG=None
BRANCH=None
TEST=Enable ship mode with "ectool batterycutoff"
or "battcutoff" on the EC console. Disconnect
AC power (if connected) to turn off. Pluc AC
power back in for 1 second and unplug again.
System should stay powered.
Change-Id: Icb566fb0fecb350f3fc5d4ebcad134d2cc488925
Signed-off-by: Dave Parker <dparker@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/191297
Reviewed-by: Randall Spangler <rspangler@chromium.org>
-rw-r--r-- | board/glimmer/battery.c | 14 | ||||
-rw-r--r-- | board/glimmer/board.h | 3 |
2 files changed, 15 insertions, 2 deletions
diff --git a/board/glimmer/battery.c b/board/glimmer/battery.c index e679e75a42..1c5562af8f 100644 --- a/board/glimmer/battery.c +++ b/board/glimmer/battery.c @@ -43,7 +43,7 @@ const struct battery_info *battery_get_info(void) return &info; } -static void wakeup(void) +static void wakeup_deferred(void) { int d; @@ -54,7 +54,17 @@ static void wakeup(void) sb_write(SB_FET_OFF, SB_FETON_DATA2); } } -DECLARE_HOOK(HOOK_AC_CHANGE, wakeup, HOOK_PRIO_DEFAULT); +DECLARE_DEFERRED(wakeup_deferred); + +static void wakeup(void) +{ + /* + * The deferred call ensures that wakeup_deferred is called from a + * task. This is required to talk to the battery over I2C. + */ + hook_call_deferred(wakeup_deferred, 0); +} +DECLARE_HOOK(HOOK_INIT, wakeup, HOOK_PRIO_DEFAULT); static int cutoff(void) { diff --git a/board/glimmer/board.h b/board/glimmer/board.h index ddd69615f2..0354674518 100644 --- a/board/glimmer/board.h +++ b/board/glimmer/board.h @@ -52,6 +52,9 @@ #define CONFIG_WIRELESS_SUSPEND \ (EC_WIRELESS_SWITCH_WLAN | EC_WIRELESS_SWITCH_WLAN_POWER) +#undef DEFERRABLE_MAX_COUNT +#define DEFERRABLE_MAX_COUNT 9 + #ifndef __ASSEMBLER__ /* I2C ports */ |