summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVic Yang <victoryang@chromium.org>2012-07-25 21:05:31 +0800
committerGerrit <chrome-bot@google.com>2012-07-26 19:38:40 -0700
commit314beee45091e63a457b1b03915cb3dc1c655d63 (patch)
tree4bb10f4aeb5f6327b4990d778b87bc21a4a8fe46
parent435bec37e262596a0eec8ee1c9bf1badce61cfdd (diff)
downloadchrome-ec-314beee45091e63a457b1b03915cb3dc1c655d63.tar.gz
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 <victoryang@chromium.org> Reviewed-by: Vic Yang <victoryang@chromium.org> Tested-by: Vic Yang <victoryang@chromium.org>
-rw-r--r--chip/stm32/keyboard_scan.c37
1 files changed, 37 insertions, 0 deletions
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);