summaryrefslogtreecommitdiff
path: root/board/chromebook-x86
diff options
context:
space:
mode:
authorGabe Black <gabeblack@chromium.org>2011-10-24 23:10:17 -0700
committerGabe Black <gabeblack@chromium.org>2011-10-25 16:03:48 -0700
commit363d828671362aab1f8b6facbc1d6ad220891bf2 (patch)
tree4e11ebecf00764973ba4775ae5d364482d4a75fb /board/chromebook-x86
parent5c255380893e305bf336c301b08d43293e6d7cc2 (diff)
Implement board_i8042_skip for coreboot boards
This implementation, which overrides the default for chromeos/coreboot boards, skips initializing the i8042 controller if the skip-i8042 config parameter is non-zero in the flattened device tree. BUG=chrome-os-partner:6585 TEST=Built and booted on Stumpy. Built and booted on Alex and verified that keyboard input still works. Change-Id: I6d4c64fe3d1c007f4f3d8f0556c8c5a0528e0928 Signed-off-by: Gabe Black <gabeblack@google.com> Reviewed-on: http://gerrit.chromium.org/gerrit/10625 Commit-Ready: Gabe Black <gabeblack@chromium.org> Reviewed-by: Gabe Black <gabeblack@chromium.org> Tested-by: Gabe Black <gabeblack@chromium.org>
Diffstat (limited to 'board/chromebook-x86')
-rw-r--r--board/chromebook-x86/coreboot/coreboot.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/board/chromebook-x86/coreboot/coreboot.c b/board/chromebook-x86/coreboot/coreboot.c
index aae70a4739..9f7d6e091a 100644
--- a/board/chromebook-x86/coreboot/coreboot.c
+++ b/board/chromebook-x86/coreboot/coreboot.c
@@ -27,6 +27,7 @@
#include <asm/u-boot-x86.h>
#include <cbfs.h>
#include <flash.h>
+#include <fdt_decode.h>
#include <malloc.h>
#include <netdev.h>
#include <asm/ic/coreboot/tables.h>
@@ -34,6 +35,7 @@
#include <chromeos/power_management.h>
#include <chromeos/fdt_decode.h>
#include <chromeos/firmware_storage.h>
+#include <chromeos/cros_gpio.h>
#include <chromeos/common.h>
#include <asm/io.h>
#include <coreboot/timestamp.h>
@@ -178,6 +180,16 @@ int misc_init_r(void)
return 0;
}
+int board_i8042_skip(void)
+{
+ cros_gpio_t devsw;
+
+ cros_gpio_fetch(CROS_GPIO_DEVSW, &devsw);
+ if (devsw.value)
+ return 0;
+ return fdt_decode_get_config_int(gd->blob, "skip-i8042", 0);
+}
+
#ifdef CONFIG_HW_WATCHDOG
void hw_watchdog_reset(void)
{