summaryrefslogtreecommitdiff
path: root/payloads/libpayload/drivers/i8042/keyboard.c
diff options
context:
space:
mode:
Diffstat (limited to 'payloads/libpayload/drivers/i8042/keyboard.c')
-rw-r--r--payloads/libpayload/drivers/i8042/keyboard.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/payloads/libpayload/drivers/i8042/keyboard.c b/payloads/libpayload/drivers/i8042/keyboard.c
index cded638380..fea9e718dd 100644
--- a/payloads/libpayload/drivers/i8042/keyboard.c
+++ b/payloads/libpayload/drivers/i8042/keyboard.c
@@ -317,6 +317,13 @@ void keyboard_init(void)
/* Enable first PS/2 port */
i8042_cmd(I8042_CMD_EN_KB);
+ /* Reset keyboard and self test (keyboard side) */
+ ret = keyboard_cmd(I8042_KBCMD_RESET);
+ if (ret != I8042_KBCMD_ACK) {
+ printf("ERROR: Keyboard reset failed ACK: 0x%x\n", ret);
+ return;
+ }
+
/* Set scancode set 1 */
ret = keyboard_cmd(I8042_KBCMD_SET_SCANCODE);
if (!ret && !CONFIG(LP_PC_KEYBOARD_IGNORE_INIT_FAILURE))