diff options
author | Sue Chen <sue.chen@quanta.corp-partner.google.com> | 2019-05-08 13:21:13 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-05-22 23:27:39 +0000 |
commit | f56efcd433c661920b3a7ce96438b44e23e6a0f9 (patch) | |
tree | 4ea1fde40a50ca9f0257a3d4349f23149ef25660 | |
parent | ca1539bde69c849672a527fc8267839f0223b4e9 (diff) | |
download | chrome-ec-f56efcd433c661920b3a7ce96438b44e23e6a0f9.tar.gz |
octopus: Support keypad function on Bobba
1. Using CONFIG_KEYBOARD_KEYPAD to choose actual_key_mask w or w/o keypad.
2. Enable keypad function on Bobba.
3. Disable scan KSO13 & 14 and modify actual_key_mask for SKU w/o keypad on
Bobba.
4. taking care define of TEST_BUILD to prevent broke build since
keyboard_cols from keyboard_scan.c is not in test-list-y yet.
BUG=b:131095327
BRANCH=octopus
TEST=`make buildall` and `make BOARD=bobba tests` both PASS
Signed-off-by: Sue Chen <sue.chen@quanta.corp-partner.google.com>
Change-Id: I0e98a8f60bf5022503b4a86ee8a5b2bbba3b3825
Reviewed-on: https://chromium-review.googlesource.com/1610390
Commit-Ready: Marco Chen <marcochen@chromium.org>
Commit-Ready: David Huang <David.Huang@quantatw.com>
Tested-by: Sue Chen <sue.chen@quanta.corp-partner.google.com>
Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org>
Reviewed-by: Marco Chen <marcochen@chromium.org>
Reviewed-by: Sue Chen <sue.chen@quanta.corp-partner.google.com>
(cherry picked from commit 9a21e92fbc0af22ddc86a29b51d8ecf0ab5e2f76)
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1623466
Commit-Queue: Marco Chen <marcochen@chromium.org>
Tested-by: David Huang <David.Huang@quantatw.com>
-rw-r--r-- | baseboard/octopus/baseboard.c | 5 | ||||
-rw-r--r-- | board/bobba/board.c | 24 | ||||
-rw-r--r-- | board/bobba/board.h | 3 |
3 files changed, 32 insertions, 0 deletions
diff --git a/baseboard/octopus/baseboard.c b/baseboard/octopus/baseboard.c index 8aeb0a8e0b..68e52ffcf7 100644 --- a/baseboard/octopus/baseboard.c +++ b/baseboard/octopus/baseboard.c @@ -65,8 +65,13 @@ struct keyboard_scan_config keyscan_config = { .min_post_scan_delay_us = 1000, .poll_timeout_us = 100 * MSEC, .actual_key_mask = { +#ifndef CONFIG_KEYBOARD_KEYPAD 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */ +#else + 0x1c, 0xfe, 0xff, 0xff, 0xff, 0xf5, 0xff, + 0xa4, 0xff, 0xfe, 0x55, 0xfe, 0xff, 0xff, 0xff, /* full set */ +#endif }, }; diff --git a/board/bobba/board.c b/board/bobba/board.c index eca68e19ca..15cf0c3003 100644 --- a/board/bobba/board.c +++ b/board/bobba/board.c @@ -26,6 +26,8 @@ #include "gpio.h" #include "hooks.h" #include "i2c.h" +#include "keyboard_config.h" +#include "keyboard_raw.h" #include "keyboard_scan.h" #include "lid_switch.h" #include "motion_sense.h" @@ -278,6 +280,27 @@ static void board_update_sensor_config_from_sku(void) } } +static int board_has_keypad(void) +{ + return sku_id == 41 || sku_id == 42 || sku_id == 43 || sku_id == 44; +} + +static void board_update_no_keypad_config_from_sku(void) +{ + if (!board_has_keypad()) { +#ifndef TEST_BUILD + /* Disable scanning KSO13 & 14 if keypad isn't present. */ + keyboard_raw_set_cols(KEYBOARD_COLS_NO_KEYPAD); + keyscan_config.actual_key_mask[11] = 0xfa; + keyscan_config.actual_key_mask[12] = 0xca; + + /* Search key is moved back to col=1,row=0 */ + keyscan_config.actual_key_mask[0] = 0x14; + keyscan_config.actual_key_mask[1] = 0xff; +#endif + } +} + /* Read CBI from i2c eeprom and initialize variables for board variants */ static void cbi_init(void) { @@ -289,6 +312,7 @@ static void cbi_init(void) CPRINTSUSB("SKU: %d", sku_id); board_update_sensor_config_from_sku(); + board_update_no_keypad_config_from_sku(); } DECLARE_HOOK(HOOK_INIT, cbi_init, HOOK_PRIO_INIT_I2C + 1); diff --git a/board/bobba/board.h b/board/bobba/board.h index 5bc862e23a..bd5d06a594 100644 --- a/board/bobba/board.h +++ b/board/bobba/board.h @@ -55,6 +55,9 @@ #define CONFIG_PWM #define CONFIG_PWM_KBLIGHT +/* keypad */ +#define CONFIG_KEYBOARD_KEYPAD + #ifndef __ASSEMBLER__ /* support factory keyboard test */ |