summaryrefslogtreecommitdiff
path: root/board/yorp
diff options
context:
space:
mode:
authorDivya Sasidharan <divya.s.sasidharan@intel.com>2018-03-28 09:50:09 -0700
committerchrome-bot <chrome-bot@chromium.org>2018-04-04 20:55:34 -0700
commitd1d5dc162a8ddd6db0b71a3e95ede90b2d5e6ae6 (patch)
tree7fdbaa9007d541c93124f7733af61ac0a66368f9 /board/yorp
parent039c4a95eb226241c492c8aca83d22f900e4a1b3 (diff)
downloadchrome-ec-d1d5dc162a8ddd6db0b71a3e95ede90b2d5e6ae6.tar.gz
yorp: Enable keyboard support
BUG=b:77487719 BRANCH=None TEST=make buildall -j; on yorp test keyboard Change-Id: Ieb3da871cfa6e2274a3e54274497846787edb796 Signed-off-by: Divya Sasidharan <divya.s.sasidharan@intel.com> Reviewed-on: https://chromium-review.googlesource.com/984385 Commit-Ready: Divya S Sasidharan <divya.s.sasidharan@intel.com> Tested-by: Divya S Sasidharan <divya.s.sasidharan@intel.com> Reviewed-by: Jett Rink <jettrink@chromium.org>
Diffstat (limited to 'board/yorp')
-rw-r--r--board/yorp/board.c20
-rw-r--r--board/yorp/board.h6
-rw-r--r--board/yorp/ec.tasklist2
-rw-r--r--board/yorp/gpio.inc8
4 files changed, 36 insertions, 0 deletions
diff --git a/board/yorp/board.c b/board/yorp/board.c
index 055708e460..72cb26a15a 100644
--- a/board/yorp/board.c
+++ b/board/yorp/board.c
@@ -341,6 +341,26 @@ error:
return version;
}
+/* Keyboard scan setting */
+struct keyboard_scan_config keyscan_config = {
+ /*
+ * F3 key scan cycle completed but scan input is not
+ * charging to logic high when EC start scan next
+ * column for "T" key, so we set .output_settle_us
+ * to 80us from 50us.
+ */
+ .output_settle_us = 80,
+ .debounce_down_us = 9 * MSEC,
+ .debounce_up_us = 30 * MSEC,
+ .scan_period_us = 3 * MSEC,
+ .min_post_scan_delay_us = 1000,
+ .poll_timeout_us = 100 * MSEC,
+ .actual_key_mask = {
+ 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff,
+ 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */
+ },
+};
+
/* Motion sensors */
/* Mutexes */
static struct mutex g_lid_mutex;
diff --git a/board/yorp/board.h b/board/yorp/board.h
index d0bb7ddc11..e5d6e4299a 100644
--- a/board/yorp/board.h
+++ b/board/yorp/board.h
@@ -32,6 +32,12 @@
#define CONFIG_VSTORE_SLOT_COUNT 1
#define CONFIG_BOARD_VERSION
#define CONFIG_BOARD_SPECIFIC_VERSION
+/* Keyboard */
+#define CONFIG_CMD_KEYBOARD
+#define CONFIG_KEYBOARD_BOARD_CONFIG
+#define CONFIG_KEYBOARD_PROTOCOL_8042
+#define CONFIG_KEYBOARD_COL2_INVERTED
+#define CONFIG_KEYBOARD_PWRBTN_ASSERTS_KSI2
/* EC console commands */
#define CONFIG_CMD_ACCELS
diff --git a/board/yorp/ec.tasklist b/board/yorp/ec.tasklist
index 33d7e596b1..dc260ef0fe 100644
--- a/board/yorp/ec.tasklist
+++ b/board/yorp/ec.tasklist
@@ -27,9 +27,11 @@
TASK_ALWAYS(CHARGER, charger_task, NULL, LARGER_TASK_STACK_SIZE) \
TASK_ALWAYS(MOTIONSENSE, motion_sense_task, NULL, VENTI_TASK_STACK_SIZE) \
TASK_NOTEST(CHIPSET, chipset_task, NULL, LARGER_TASK_STACK_SIZE) \
+ TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \
TASK_NOTEST(PDCMD, pd_command_task, NULL, TASK_STACK_SIZE) \
TASK_ALWAYS(HOSTCMD, host_command_task, NULL, LARGER_TASK_STACK_SIZE) \
TASK_ALWAYS(CONSOLE, console_task, NULL, VENTI_TASK_STACK_SIZE) \
TASK_ALWAYS(POWERBTN, power_button_task, NULL, LARGER_TASK_STACK_SIZE) \
+ TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) \
TASK_ALWAYS(PD_C0, pd_task, NULL, LARGER_TASK_STACK_SIZE) \
TASK_ALWAYS(PD_C1, pd_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/yorp/gpio.inc b/board/yorp/gpio.inc
index 18661472ca..4b202228a2 100644
--- a/board/yorp/gpio.inc
+++ b/board/yorp/gpio.inc
@@ -109,6 +109,14 @@ GPIO(BAT_LED_BLUE_L, PIN(C, 4), GPIO_OUT_HIGH) /* LED_2_L */
/* Board IDs */
GPIO(EC_BRD_ID_EN, PIN(9, 6), GPIO_OUT_LOW)
+/* Keyboard pins */
+ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
+ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
+ALTERNATE(PIN_MASK(2, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_00-01 */
+ALTERNATE(PIN_MASK(1, 0x7F), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_03-09 */
+ALTERNATE(PIN_MASK(0, 0xE0), 0, MODULE_KEYBOARD_SCAN, GPIO_ODR_HIGH) /* KSO_10-12 */
+GPIO(KBD_KSO2, PIN(1, 7), GPIO_OUT_LOW) /* KSO_02 inverted */
+
/* Alternate functions GPIO definitions */
/* Cr50 requires no pull-ups on UART pins. */
ALTERNATE(PIN_MASK(6, 0x30), 0, MODULE_UART, 0) /* UART from EC to Servo */