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>
This commit is contained in:
Sue Chen 2019-05-08 13:21:13 +08:00 committed by chrome-bot
parent b3b26123ef
commit 9a21e92fbc
3 changed files with 32 additions and 0 deletions

View File

@ -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
},
};

View File

@ -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);

View File

@ -58,6 +58,9 @@
#define CONFIG_PWM
#define CONFIG_PWM_KBLIGHT
/* keypad */
#define CONFIG_KEYBOARD_KEYPAD
#ifndef __ASSEMBLER__
/* support factory keyboard test */