summaryrefslogtreecommitdiff
path: root/include/hooks.h
diff options
context:
space:
mode:
authorRandall Spangler <rspangler@chromium.org>2013-04-23 17:02:07 -0700
committerChromeBot <chrome-bot@google.com>2013-04-25 17:03:18 -0700
commit45bc5c1a2135eaae05978d371cff17fb810b9951 (patch)
tree38d71db1f356c86e37bbadedd384d000a329dfaf /include/hooks.h
parentb4b2c6ae7026569b21749dab563114f95d4c7396 (diff)
downloadchrome-ec-45bc5c1a2135eaae05978d371cff17fb810b9951.tar.gz
Split out power button code from switch.c
The power button code is platform-independent. This change splits the code out of the LM4 switch.c module so that a subseqent change to STM32 platforms can start using it. BUG=chrome-os-partner:18945 BRANCH=none TEST=manual 1. Power+refresh+esc goes to recovery mode, 2. Press power button at recovery screen turns off. 3. With system off, power button turns system on. 4. Press power button for a second; screen locks. 5. Press power button while typing; blocks keystrokes while it's pressed. 6. Hold power button down for 8 sec; system forced to shutdown. 7. From EC console, with system on: hostevent clear hostevent -> event 0x04 is clear press power button hostevent -> event 0x04 is set 8. From EC console, with system off: powerbtn -> system turns on powerbtn 5000 -> system turns off, just like power button was held for 5 sec Change-Id: If2a9b02514a201e1d03c857d128e2ccab51a16ef Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/49217 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Diffstat (limited to 'include/hooks.h')
-rw-r--r--include/hooks.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/hooks.h b/include/hooks.h
index 084e9bb36b..59f982eaee 100644
--- a/include/hooks.h
+++ b/include/hooks.h
@@ -25,6 +25,8 @@ enum hook_priority {
HOOK_PRIO_INIT_CHIPSET = HOOK_PRIO_FIRST + 2,
/* Lid switch inits before power button */
HOOK_PRIO_INIT_LID = HOOK_PRIO_FIRST + 3,
+ /* Power button inits before chipset and switch */
+ HOOK_PRIO_INIT_POWER_BUTTON = HOOK_PRIO_FIRST + 4,
};
enum hook_type {
@@ -106,6 +108,14 @@ enum hook_type {
HOOK_LID_CHANGE,
/*
+ * Power button pressed or released. Based on debounced power button
+ * state, not raw GPIO input.
+ *
+ * Hook routines are called from the chipset task.
+ */
+ HOOK_POWER_BUTTON_CHANGE,
+
+ /*
* Periodic tick, every HOOK_TICK_INTERVAL.
*
* Hook routines will be called from the TICK task.