summaryrefslogtreecommitdiffstats
path: root/drivers/input
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2015-03-26 09:29:41 -0600
committerSimon Glass <sjg@chromium.org>2015-04-18 11:11:16 -0600
commitf9f788f0721350e594ce3e7978968847b057afc1 (patch)
tree745ae52b40fc4e81e9f4c3af7f10c07bb4278c79 /drivers/input
parent47cb8c654be8849db9035f3703bbcdd1af21c63e (diff)
downloadu-boot-f9f788f0721350e594ce3e7978968847b057afc1.tar.gz
u-boot-f9f788f0721350e594ce3e7978968847b057afc1.tar.xz
u-boot-f9f788f0721350e594ce3e7978968847b057afc1.zip
i8042: Add keyboard enable logic in kbd_reset()
This code appears to be missing a piece that is needed on some keyboards to enable the keyboard. Add this in. This makes the keyboard work correctly on chromebook_link. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/input')
-rw-r--r--drivers/input/i8042.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/input/i8042.c b/drivers/input/i8042.c
index ca1604c540..1769c5e80b 100644
--- a/drivers/input/i8042.c
+++ b/drivers/input/i8042.c
@@ -698,7 +698,14 @@ static int kbd_reset(void)
/* Enable Keyboard */
out8(I8042_COMMAND_REG, 0xae);
+ if (kbd_input_empty() == 0)
+ return -1;
+
+ out8(I8042_COMMAND_REG, 0x60);
+ if (kbd_input_empty() == 0)
+ return -1;
+ out8(I8042_DATA_REG, 0xf4);
if (kbd_input_empty() == 0)
return -1;