summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 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. */