diff options
author | Simon Glass <sjg@chromium.org> | 2016-03-11 22:06:50 -0700 |
---|---|---|
committer | Bin Meng <bmeng.cn@gmail.com> | 2016-03-17 10:27:24 +0800 |
commit | 8226a3e99f1c1e7ded648721d1e16118453761e5 (patch) | |
tree | 77984f8d487e193b35b8a9f4947439f4dbe4de1a | |
parent | 532f2435cfe94e54e01ba68572daa853d7752afa (diff) | |
download | u-boot-imx-8226a3e99f1c1e7ded648721d1e16118453761e5.zip u-boot-imx-8226a3e99f1c1e7ded648721d1e16118453761e5.tar.gz u-boot-imx-8226a3e99f1c1e7ded648721d1e16118453761e5.tar.bz2 |
input: i8042: Make sure the keyboard is enabled
Add one more step into the init sequence. This fixes the keyboard on samus,
which otherwise does not work.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
-rw-r--r-- | drivers/input/i8042.c | 4 | ||||
-rw-r--r-- | include/i8042.h | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/drivers/input/i8042.c b/drivers/input/i8042.c index 661d7fd..03d4840 100644 --- a/drivers/input/i8042.c +++ b/drivers/input/i8042.c @@ -134,6 +134,10 @@ static int kbd_reset(int quirk) kbd_read(I8042_DATA_REG) != KBD_POR) goto err; + if (kbd_write(I8042_DATA_REG, CMD_DRAIN_OUTPUT) || + kbd_read(I8042_DATA_REG) != KBD_ACK) + goto err; + /* set AT translation and disable irq */ config = kbd_cmd_read(CMD_RD_CONFIG); if (config == -1) diff --git a/include/i8042.h b/include/i8042.h index 9723b6a..0766488 100644 --- a/include/i8042.h +++ b/include/i8042.h @@ -35,6 +35,7 @@ #define CMD_KBD_DIS 0xad /* keyboard disable */ #define CMD_KBD_EN 0xae /* keyboard enable */ #define CMD_SET_KBD_LED 0xed /* set keyboard led */ +#define CMD_DRAIN_OUTPUT 0xf4 /* drain output buffer */ #define CMD_RESET_KBD 0xff /* reset keyboard */ /* i8042 command result */ |