summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chip/lm4/keyboard_scan.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/chip/lm4/keyboard_scan.c b/chip/lm4/keyboard_scan.c
index 9a1f45e2e1..826b1f8d3e 100644
--- a/chip/lm4/keyboard_scan.c
+++ b/chip/lm4/keyboard_scan.c
@@ -68,6 +68,8 @@ static const uint8_t actual_key_masks[4][KB_COLS] = {
#define MASK_VALUE_LEFT_ALT 0x40
#define MASK_INDEX_KEY_R 3
#define MASK_VALUE_KEY_R 0x80
+#define MASK_INDEX_KEY_H 6
+#define MASK_VALUE_KEY_H 0x02
static void wait_for_interrupt(void)
{
@@ -163,6 +165,10 @@ static void check_runtime_keys(void)
/* R = reboot */
CPRINTF("[%T KB warm reboot]\n");
x86_power_reset(0);
+ } else if (raw_state[MASK_INDEX_KEY_H] == MASK_VALUE_KEY_H) {
+ /* H = hibernate */
+ CPRINTF("[%T KB hibernate]\n");
+ system_hibernate(0, 0);
}
}