Files
OpenCellular/include/keyboard_scan.h
Randall Spangler 212dbaf52d Refactor runtime special key combination code
The code for warm reboot is overly specialized, and makes it hard to
add other key cominations for testing.

BUG=chrome-os-partner:13763
BRANCH=link
TEST=manual

1. boot system
2. hold down (in order) R+T+alt+VolUp.  System does not reboot.
3. let go of T (so only R+alt+volup are pressed).  System reboots.

Change-Id: I14cdb7f790e8a772712085a77eaf4299487788db
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/32439
Reviewed-by: Simon Glass <sjg@chromium.org>
2012-09-10 13:06:49 -07:00

42 lines
1.3 KiB
C

/* Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
/* Keyboard scanner module for Chrome EC */
#ifndef __CROS_EC_KEYBOARD_SCAN_H
#define __CROS_EC_KEYBOARD_SCAN_H
#include "common.h"
/* Initializes the module. */
int keyboard_scan_init(void);
/* Key held down at keyboard-controlled reset boot time. */
enum boot_key {
BOOT_KEY_NONE, /* No keys other than keyboard-controlled reset keys */
BOOT_KEY_ESC,
BOOT_KEY_DOWN_ARROW,
BOOT_KEY_OTHER = -1, /* None of the above */
};
/*
* Return the key held down at boot time in addition to the keyboard-controlled
* reset keys. Returns BOOT_KEY_OTHER if none of the keys specifically checked
* was pressed, or reset was not caused by a keyboard-controlled reset, or if
* the state has been cleared by keyboard_scan_clear_boot_key().
*/
enum boot_key keyboard_scan_get_boot_key(void);
/* Return non-zero if recovery key was pressed at boot. */
int keyboard_scan_recovery_pressed(void);
/* Clear any saved keyboard state (empty FIFO, etc) */
void keyboard_clear_state(void);
/* Enables/disables keyboard matrix scan. */
void keyboard_enable_scanning(int enable);
#endif /* __CROS_EC_KEYBOARD_SCAN_H */