diff options
author | Sue Chen <sue.chen@quanta.corp-partner.google.com> | 2019-05-08 13:21:13 +0800 |
---|---|---|
committer | Justin TerAvest <teravest@chromium.org> | 2019-05-10 04:48:48 +0000 |
commit | 73312c0f227d0b21d5ffa788caa4579c82c78731 (patch) | |
tree | e842eadfd645d7c0c2583f655c1f9bd8cd9f111f /board/bobba/board.c | |
parent | 2d38e7cd712834d763ff59704cd04af2a95b8367 (diff) | |
download | chrome-ec-73312c0f227d0b21d5ffa788caa4579c82c78731.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.
BUG=b:131095327
BRANCH=octopus
TEST=make buildall
Change-Id: I33ea85ec3966b4bba64b2a5aa11f186b5b92c52b
Signed-off-by: Sue Chen <sue.chen@quanta.corp-partner.google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1600944
Reviewed-by: Marco Chen <marcochen@chromium.org>
Reviewed-by: Diana Z <dzigterman@chromium.org>
Diffstat (limited to 'board/bobba/board.c')
-rw-r--r-- | board/bobba/board.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/board/bobba/board.c b/board/bobba/board.c index eca68e19ca..9e53014fb5 100644 --- a/board/bobba/board.c +++ b/board/bobba/board.c @@ -26,6 +26,7 @@ #include "gpio.h" #include "hooks.h" #include "i2c.h" +#include "keyboard_raw.h" #include "keyboard_scan.h" #include "lid_switch.h" #include "motion_sense.h" @@ -278,6 +279,25 @@ 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()) { + /* 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; + } +} + /* Read CBI from i2c eeprom and initialize variables for board variants */ static void cbi_init(void) { @@ -289,6 +309,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); |