diff options
author | Todd Broch <tbroch@chromium.org> | 2013-03-11 11:30:40 -0700 |
---|---|---|
committer | ChromeBot <chrome-bot@google.com> | 2013-03-13 11:14:55 -0700 |
commit | eefc0ac8c5e3b167d902997e28324e5f57e0a932 (patch) | |
tree | 2c1d6bde44058cbafe35b7d9a75be79f8adabf67 /chip | |
parent | cb03fa5c63546f7a77ffe737ce053bb50c6a3906 (diff) | |
download | chrome-ec-eefc0ac8c5e3b167d902997e28324e5f57e0a932.tar.gz |
spring: stm32: Generate battery key when charging status changes.
In order to update charger status we have added a virtual keystroke to
signal change to the kernel via the MKBP interface.
CL creates the virtual key press and calls it from within the
USB charging code.
Signed-off-by: Todd Broch <tbroch@chromium.org>
BUG=chrome-os-partner:17927
BRANCH=spring
TEST=manual
1. Compile for daisy,snow,spring.
2. Test on spring.
Change-Id: I0afa0fc82c96fa3fd8119523a113b5028c8f64a3
Reviewed-on: https://gerrit.chromium.org/gerrit/45126
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Todd Broch <tbroch@chromium.org>
Commit-Queue: Todd Broch <tbroch@chromium.org>
Diffstat (limited to 'chip')
-rw-r--r-- | chip/stm32/keyboard_scan.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/chip/stm32/keyboard_scan.c b/chip/stm32/keyboard_scan.c index 8fc92edfb8..d1e46628ea 100644 --- a/chip/stm32/keyboard_scan.c +++ b/chip/stm32/keyboard_scan.c @@ -674,6 +674,24 @@ void keyboard_enable_scanning(int enable) } } +/* Changes to col,row here need to also be reflected in kernel. + * drivers/input/mkbp.c ... see KEY_BATTERY. + */ +#define BATTERY_KEY_COL 0 +#define BATTERY_KEY_ROW 7 +#define BATTERY_KEY_ROW_MASK (1 << BATTERY_KEY_ROW) + +void keyboard_send_battery_key() +{ + mutex_lock(&scanning_enabled); + debounced_state[BATTERY_KEY_COL] ^= BATTERY_KEY_ROW_MASK; + if (kb_fifo_add(debounced_state) == EC_SUCCESS) + board_interrupt_host(1); + else + CPRINTF("dropped battery keystroke\n"); + mutex_unlock(&scanning_enabled); +} + static int command_keyboard_press(int argc, char **argv) { int r, c, p; |