From 314beee45091e63a457b1b03915cb3dc1c655d63 Mon Sep 17 00:00:00 2001 From: Vic Yang Date: Wed, 25 Jul 2012 21:05:31 +0800 Subject: stm32: Add kbpress command This command is needed by keyboard test. BUG=chrome-os-partner:11747 TEST=Keyboard test passed. Change-Id: I752f8a8f672f4ef2214ff60c8946a1a74745c586 Reviewed-on: https://gerrit.chromium.org/gerrit/28387 Commit-Ready: Vic Yang Reviewed-by: Vic Yang Tested-by: Vic Yang --- chip/stm32/keyboard_scan.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/chip/stm32/keyboard_scan.c b/chip/stm32/keyboard_scan.c index da5df3b3af..b7cad467c4 100644 --- a/chip/stm32/keyboard_scan.c +++ b/chip/stm32/keyboard_scan.c @@ -475,3 +475,40 @@ void keyboard_enable_scanning(int enable) select_column(COL_TRI_STATE_ALL); } } + +static int command_keyboard_press(int argc, char **argv) +{ + int r, c, p; + char *e; + + if (argc != 4) + return EC_ERROR_PARAM_COUNT; + + c = strtoi(argv[1], &e, 0); + if (*e || c < 0 || c >= KB_OUTPUTS) + return EC_ERROR_PARAM1; + + r = strtoi(argv[2], &e, 0); + if (*e || r < 0 || r >= 8) + return EC_ERROR_PARAM2; + + p = strtoi(argv[3], &e, 0); + if (*e || p < 0 || p > 1) + return EC_ERROR_PARAM3; + + if (p) + raw_state[c] |= (1 << r); + else + raw_state[c] &= ~(1 << r); + + if (kb_fifo_add(raw_state) == EC_SUCCESS) + board_interrupt_host(1); + else + ccprintf("dropped keystroke\n"); + + return EC_SUCCESS; +} +DECLARE_CONSOLE_COMMAND(kbpress, command_keyboard_press, + "[col] [row] [0 | 1]", + "Simulate keypress", + NULL); -- cgit v1.2.1