diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2018-10-10 11:47:39 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-10-23 13:01:57 -0700 |
commit | 75f7dca3c3d03527e23e9414d0dff85d63c6ea26 (patch) | |
tree | 0fee18db6dc60c00555a756bfafd513910b351cb | |
parent | 8b51318ae8eeb10c494f007969b1e1e3548e616f (diff) | |
download | chrome-ec-75f7dca3c3d03527e23e9414d0dff85d63c6ea26.tar.gz |
Keyboard: Add keypad support
This patch adds keypad support. Keypad layout is:
page_up page_dwn home end
delete / * -
7 8 9 +
4 5 6
1 2 3 enter
0 .
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
BUG=b:117126568
BRANCH=none
TEST=buildall
Change-Id: Ic53eda12f7348ff09494aa8d2c2f45080e17bae7
Reviewed-on: https://chromium-review.googlesource.com/1285293
Commit-Ready: Daisuke Nojiri <dnojiri@chromium.org>
Tested-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
-rw-r--r-- | common/keyboard_8042_sharedlib.c | 14 | ||||
-rw-r--r-- | include/config.h | 5 | ||||
-rw-r--r-- | include/keyboard_config.h | 11 |
3 files changed, 28 insertions, 2 deletions
diff --git a/common/keyboard_8042_sharedlib.c b/common/keyboard_8042_sharedlib.c index a189d17744..429400ef28 100644 --- a/common/keyboard_8042_sharedlib.c +++ b/common/keyboard_8042_sharedlib.c @@ -28,8 +28,15 @@ uint16_t scancode_set2[KEYBOARD_COLS_MAX][KEYBOARD_ROWS] = { {0x0055, 0x0052, 0x0054, 0x004e, 0x004c, 0x004a, 0x0045, 0x004d}, {0x0000, 0x0001, 0x000a, 0x002f, 0x004b, 0x0049, 0x0046, 0x0044}, {0xe011, 0x0000, 0x006a, 0x0000, 0x005d, 0x0000, 0x0011, 0x0000}, +#ifndef CONFIG_KEYBOARD_KEYPAD {0x0000, 0x0066, 0x0000, 0x005d, 0x005a, 0x0029, 0xe072, 0xe075}, {0x0000, 0x0064, 0x0000, 0x0067, 0x0000, 0x0000, 0xe074, 0xe06b}, +#else + {0x0000, 0x0066, 0xe071, 0x005d, 0x005a, 0x0029, 0xe072, 0xe075}, + {0xe06c, 0x0064, 0xe07d, 0x0067, 0xe069, 0xe07a, 0xe074, 0xe06b}, + {0xe04a, 0x007c, 0x007b, 0x0074, 0x0071, 0x0073, 0x006b, 0x0070}, + {0x006c, 0x0075, 0x007d, 0x0079, 0x007a, 0x0072, 0x0069, 0xe05a}, +#endif } #ifndef CONFIG_KEYBOARD_SCANCODE_MUTABLE ) @@ -106,6 +113,13 @@ char keycap_label[KEYBOARD_COLS_MAX][KEYBOARD_ROWS] = { KLLI_ENTER, KLLI_SPACE, KLLI_DOWN, KLLI_UP}, {KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO, KLLI_RIGHT, KLLI_LEFT}, +#ifdef CONFIG_KEYBOARD_KEYPAD + /* TODO: Populate these */ + {KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO, + KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO}, + {KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO, + KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO, KLLI_UNKNO}, +#endif } #ifndef CONFIG_KEYBOARD_SCANCODE_MUTABLE ) diff --git a/include/config.h b/include/config.h index 6d6d92fb68..53be906a07 100644 --- a/include/config.h +++ b/include/config.h @@ -2167,6 +2167,11 @@ * Add support for keyboards with language ID pins */ #undef CONFIG_KEYBOARD_LANGUAGE_ID + +/* + * Enable keypad (a palm-sized keyboard section usually placed on the far right) + */ +#undef CONFIG_KEYBOARD_KEYPAD /*****************************************************************************/ /* Support common LED interface */ diff --git a/include/keyboard_config.h b/include/keyboard_config.h index 81174eb850..2d6398c548 100644 --- a/include/keyboard_config.h +++ b/include/keyboard_config.h @@ -15,13 +15,20 @@ #define KEYBOARD_IDS 2 #endif -/* Keyboard matrix is 13 output columns x 8 input rows */ +/* Keyboard matrix is 13 (or 15 with keypad) output columns x 8 input rows */ +#define KEYBOARD_COLS_WITH_KEYPAD 15 +#define KEYBOARD_COLS_NO_KEYPAD 13 + /* * KEYBOARD_COLS_MAX has the build time column size. It's used to allocate * exact spaces for arrays. Actual keyboard scanning is done using * keyboard_cols, which holds a runtime column size. */ -#define KEYBOARD_COLS_MAX 13 +#ifdef CONFIG_KEYBOARD_KEYPAD +#define KEYBOARD_COLS_MAX KEYBOARD_COLS_WITH_KEYPAD +#else +#define KEYBOARD_COLS_MAX KEYBOARD_COLS_NO_KEYPAD +#endif #define KEYBOARD_ROWS 8 extern uint8_t keyboard_cols; |