diff options
author | Tommy Chung <tommy.chung@quanta.corp-partner.google.com> | 2022-08-31 17:16:28 +0800 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-09-02 03:54:04 +0000 |
commit | 9157996e3713ac5c774196151539c2925db715c7 (patch) | |
tree | df4a583bdff1327562566554c5c5df9df3d902b4 | |
parent | 6b0c8278f293d4eb6d2bedec3ccdc04d805c9e77 (diff) | |
download | chrome-ec-9157996e3713ac5c774196151539c2925db715c7.tar.gz |
dojo: Add keyboard factory test
BUG=none
BRANCH=cherry
TEST=make sure that `ectool kbfactory test` works.
Signed-off-by: Tommy Chung <tommy.chung@quanta.corp-partner.google.com>
Change-Id: I7189a240e3e21cbaed04ce3cfbfe36192e643bf3
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3865212
Reviewed-by: Ting Shen <phoenixshen@chromium.org>
Reviewed-by: Devin Lu <devin.lu@quantatw.com>
-rw-r--r-- | board/dojo/board.c | 25 | ||||
-rw-r--r-- | board/dojo/board.h | 2 | ||||
-rw-r--r-- | board/dojo/gpio.inc | 6 |
3 files changed, 33 insertions, 0 deletions
diff --git a/board/dojo/board.c b/board/dojo/board.c index 5d2aa78f2b..a53c2af881 100644 --- a/board/dojo/board.c +++ b/board/dojo/board.c @@ -50,6 +50,31 @@ __override struct keyboard_scan_config keyscan_config = { }, }; +/* Support keyboard factory test */ +#ifdef CONFIG_KEYBOARD_FACTORY_TEST +/* + * Map keyboard connector pins to EC GPIO pins for factory test. + * Pins mapped to {-1, -1} are skipped. + * The connector has 30 pins total, and there is no pin 0. + */ +const int keyboard_factory_scan_pins[][2] = { + { -1, -1 }, { GPIO_KSO_H, 4 }, { GPIO_KSO_H, 0 }, + { GPIO_KSO_H, 1 }, { GPIO_KSO_H, 3 }, { GPIO_KSO_H, 2 }, + { -1, -1 }, { -1, -1 }, { GPIO_KSO_L, 5 }, + { GPIO_KSO_L, 6 }, { -1, -1 }, { GPIO_KSO_L, 3 }, + { GPIO_KSO_L, 2 }, { GPIO_KSI, 0 }, { GPIO_KSO_L, 1 }, + { GPIO_KSO_L, 4 }, { GPIO_KSI, 3 }, { GPIO_KSI, 2 }, + { GPIO_KSO_L, 0 }, { GPIO_KSI, 5 }, { GPIO_KSI, 4 }, + { GPIO_KSO_L, 7 }, { GPIO_KSI, 6 }, { GPIO_KSI, 7 }, + { GPIO_KSI, 1 }, { -1, -1 }, { GPIO_KSO_H, 5 }, + { -1, -1 }, { GPIO_KSO_H, 6 }, { -1, -1 }, + { -1, -1 }, +}; + +const int keyboard_factory_scan_pins_used = + ARRAY_SIZE(keyboard_factory_scan_pins); +#endif + /* Vol-up key matrix at T13 */ const struct vol_up_key vol_up_key_matrix_T13 = { .row = 3, diff --git a/board/dojo/board.h b/board/dojo/board.h index 7c09649759..160d98d3ff 100644 --- a/board/dojo/board.h +++ b/board/dojo/board.h @@ -53,6 +53,8 @@ /* Keyboard */ #define CONFIG_KEYBOARD_REFRESH_ROW3 +#define CONFIG_KEYBOARD_FACTORY_TEST +#define GPIO_KBD_KSO2 GPIO_EC_KSO_02_INV /* Sensor */ #define CONFIG_GMR_TABLET_MODE diff --git a/board/dojo/gpio.inc b/board/dojo/gpio.inc index c215d3f5d4..01cf57258d 100644 --- a/board/dojo/gpio.inc +++ b/board/dojo/gpio.inc @@ -118,6 +118,12 @@ ALTERNATE(PIN_MASK(I, 0b11001001), 0, MODULE_ADC, 0) /* ADC 0,3,6,7 */ /* SPI */ ALTERNATE(PIN_MASK(M, 0x33), 0, MODULE_SPI, 0) /* SPI */ +/* KEYBOARD */ +ALTERNATE(PIN_MASK(KSI, 0xFF), 0, MODULE_KEYBOARD_SCAN, 0) /* KSI0-7 */ +ALTERNATE(PIN_MASK(KSO_H, 0xFF), 0, MODULE_KEYBOARD_SCAN, 0) /* KSO8-15 */ +ALTERNATE(PIN_MASK(KSO_L, 0xFB), 0, MODULE_KEYBOARD_SCAN, 0) /* KSO0-1, 3-7 */ +GPIO(EC_KSO_02_INV, PIN(KSO_L, 2), GPIO_OUT_HIGH) /* KSO2 inverted */ + /* Unimplemented Pins */ GPIO(PG_PP5000_S5_OD, PIN(D, 2), GPIO_INPUT) /* *_ODL pin has external pullup so don't pull it down. */ |