|
@@ -26,6 +26,7 @@
|
|
|
/* includes */
|
|
|
|
|
|
#include <common.h>
|
|
|
+#include <linux/compiler.h>
|
|
|
|
|
|
#ifdef CONFIG_USE_CPCIDVI
|
|
|
extern u8 gt_cpcidvi_in8(u32 offset);
|
|
@@ -320,6 +321,16 @@ static int kbd_controller_present(void)
|
|
|
return in8(I8042_STATUS_REG) != 0xff;
|
|
|
}
|
|
|
|
|
|
+/*
|
|
|
+ * Implement a weak default function for boards that optionally
|
|
|
+ * need to skip the i8042 initialization.
|
|
|
+ */
|
|
|
+int __weak board_i8042_skip(void)
|
|
|
+{
|
|
|
+ /* As default, don't skip */
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
/*******************************************************************************
|
|
|
*
|
|
|
* i8042_kbd_init - reset keyboard and init state flags
|
|
@@ -329,7 +340,7 @@ int i8042_kbd_init(void)
|
|
|
int keymap, try;
|
|
|
char *penv;
|
|
|
|
|
|
- if (!kbd_controller_present())
|
|
|
+ if (!kbd_controller_present() || board_i8042_skip())
|
|
|
return -1;
|
|
|
|
|
|
#ifdef CONFIG_USE_CPCIDVI
|