From 04c593b8175b7b73204b6ce800573d769d83cd7a Mon Sep 17 00:00:00 2001 From: Namyoon Woo Date: Fri, 7 Sep 2018 16:39:26 -0700 Subject: keyboard: display keycap label in key status debug messages The current debug message in keyboard_8042.c displays a tuple of row, column, and press status. Additionally, this CL displays a keycap label for better readability. For keycap label mapping table can be adjustable under "CONFIG_KEYBOARD_SCANCODE_MUTABLE" condition as scancode_set2[] is. For coral board, Enabling CONFIG_KEYBOARD_DEBUG (w/o this CL) occupies 652 bytes in flash, and this CL occupies another 312 bytes. BUG=b:111060830 TEST=manually tested by pressing keyboards and check the EC console screen. BRANCH=kblog Signed-off-by: Namyoon Woo Changes to be committed: modified: board/eve/board.c modified: common/keyboard_8042.c modified: common/keyboard_8042_sharedlib.c modified: include/keyboard_8042_sharedlib.h Change-Id: Idd71a5475b1ee313f99e087be9143dcfb6f81550 Reviewed-on: https://chromium-review.googlesource.com/1214543 Commit-Ready: ChromeOS CL Exonerator Bot Tested-by: Namyoon Woo Reviewed-by: Hung-Te Lin --- common/keyboard_8042.c | 10 +++++++- common/keyboard_8042_sharedlib.c | 49 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) (limited to 'common') diff --git a/common/keyboard_8042.c b/common/keyboard_8042.c index 7e906a1c04..e561762843 100644 --- a/common/keyboard_8042.c +++ b/common/keyboard_8042.c @@ -384,7 +384,15 @@ void keyboard_state_changed(int row, int col, int is_pressed) int32_t len = 0; enum ec_error_list ret; - CPRINTS5("KB (%d,%d)=%d", row, col, is_pressed); +#ifdef CONFIG_KEYBOARD_DEBUG + char mylabel = keycap_label[row][col]; + + if (mylabel & KEYCAP_LONG_LABEL_BIT) + CPRINTS("KB (%d,%d)=%d %s", row, col, is_pressed, + keycap_long_label[mylabel & KEYCAP_LONG_LABEL_INDEX_BITMASK]); + else + CPRINTS("KB (%d,%d)=%d %c", row, col, is_pressed, mylabel); +#endif ret = matrix_callback(row, col, is_pressed, scancode_set, scan_code, &len); diff --git a/common/keyboard_8042_sharedlib.c b/common/keyboard_8042_sharedlib.c index 513a27913d..214eaafb5a 100644 --- a/common/keyboard_8042_sharedlib.c +++ b/common/keyboard_8042_sharedlib.c @@ -65,6 +65,55 @@ SHAREDLIB(const uint8_t scancode_translate_table[128] = { 0x57, 0x4e, 0x51, 0x4a, 0x37, 0x49, 0x46, 0x54, }); + +#ifdef CONFIG_KEYBOARD_DEBUG +SHAREDLIB(const +char * const keycap_long_label[KLLI_MAX & KEYCAP_LONG_LABEL_INDEX_BITMASK] = { + "UNKNOWN", "F1", "F2", "F3", + "F4", "F5", "F6", "F7", + "F8", "F9", "F10", "F11", + "F12", "F13", "RSVD", "RSVD", + "L-ALT", "R-ALT", "L-CTR", "R-CTR", + "L-SHT", "R-SHT", "ENTER", "SPACE", + "B-SPC", "TAB", "SEARC", "LEFT", + "RIGHT", "DOWN", "UP", "ESC", +}); + +#ifndef CONFIG_KEYBOARD_SCANCODE_MUTABLE +SHAREDLIB(const +#endif +char keycap_label[KEYBOARD_ROWS][KEYBOARD_COLS] = { + {KLLI_UNKNO, KLLI_SEARC, KLLI_F1, 'b', KLLI_F10, + KLLI_UNKNO, 'n', KLLI_UNKNO, '=', KLLI_UNKNO, + KLLI_R_ALT, KLLI_UNKNO, KLLI_UNKNO}, + {KLLI_UNKNO, KLLI_ESC, KLLI_F4, 'g', KLLI_F7, + KLLI_UNKNO, 'h', KLLI_UNKNO, '\'', KLLI_F9, + KLLI_UNKNO, KLLI_B_SPC, KLLI_UNKNO}, + {KLLI_L_CTR, KLLI_TAB, KLLI_F3, 't', KLLI_F6, + ']', 'y', KLLI_UNKNO, '[', KLLI_F8, + KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO}, + {KLLI_UNKNO, '~', KLLI_F2, '5', KLLI_F5, + KLLI_UNKNO, '6', KLLI_UNKNO, '-', KLLI_UNKNO, + KLLI_UNKNO, '\\', KLLI_UNKNO}, + {KLLI_R_CTR, 'a', 'd', 'f', 's', + 'k', 'j', KLLI_UNKNO, ';', '|', + KLLI_UNKNO, KLLI_ENTER, KLLI_UNKNO}, + {KLLI_UNKNO, 'z', 'c', 'v', 'x', + ',', 'm', KLLI_L_SHT, '/', '.', + KLLI_UNKNO, KLLI_SPACE, KLLI_UNKNO}, + {KLLI_UNKNO, '1', '3', '4', '2', + '8', '7', KLLI_UNKNO, '0', '9', + KLLI_L_ALT, KLLI_DOWN, KLLI_RIGHT}, + {KLLI_UNKNO, 'q', 'e', 'r', 'w', + 'i', 'u', KLLI_R_SHT, 'p', 'o', + KLLI_UNKNO, KLLI_UP, KLLI_LEFT}, +} +#ifndef CONFIG_KEYBOARD_SCANCODE_MUTABLE +) +#endif +; +#endif + uint8_t scancode_translate_set2_to_1(uint8_t code) { if (code & 0x80) { -- cgit v1.2.1