summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTommy Chung <tommy.chung@quanta.corp-partner.google.com>2022-08-31 17:16:28 +0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-09-02 06:05:26 +0000
commitf9b0627e091e716553283783e35d5984272ee788 (patch)
treed825a33721b3057c3ce11893949cb38696a17846
parentb8e40f89d4b55be6592f7400a2c095f9ba2de291 (diff)
downloadchrome-ec-f9b0627e091e716553283783e35d5984272ee788.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> (cherry picked from commit 9157996e3713ac5c774196151539c2925db715c7) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3870109 Commit-Queue: Ting Shen <phoenixshen@chromium.org>
-rw-r--r--board/dojo/board.c25
-rw-r--r--board/dojo/board.h2
-rw-r--r--board/dojo/gpio.inc6
3 files changed, 33 insertions, 0 deletions
diff --git a/board/dojo/board.c b/board/dojo/board.c
index fcb2db6d9b..2e11535ca3 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 ea148787a8..6ce2f3ba47 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. */