If U-Boot is not the first-stage bootloader we should not init the
keyboard, since it has already been done. Check for this.

Signed-off-by: Simon Glass <s...@chromium.org>
---

 drivers/input/i8042.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/drivers/input/i8042.c b/drivers/input/i8042.c
index 3563dc98838..e2189726674 100644
--- a/drivers/input/i8042.c
+++ b/drivers/input/i8042.c
@@ -6,11 +6,14 @@
 
 /* i8042.c - Intel 8042 keyboard driver routines */
 
+#define LOG_CATEGORY UCLASS_KEYBOARD
+
 #include <common.h>
 #include <dm.h>
 #include <env.h>
 #include <errno.h>
 #include <i8042.h>
+#include <init.h>
 #include <input.h>
 #include <keyboard.h>
 #include <log.h>
@@ -132,10 +135,12 @@ static int kbd_reset(int quirk)
                goto err;
 
        /* keyboard reset */
-       if (kbd_write(I8042_DATA_REG, CMD_RESET_KBD) ||
-           kbd_read(I8042_DATA_REG) != KBD_ACK ||
-           kbd_read(I8042_DATA_REG) != KBD_POR)
-               goto err;
+       if (ll_boot_init()) {
+               if (kbd_write(I8042_DATA_REG, CMD_RESET_KBD) ||
+                   kbd_read(I8042_DATA_REG) != KBD_ACK ||
+                   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)
-- 
2.39.2.637.g21b0678d19-goog

Reply via email to