sandbox: Plumb in Chrome OS EC emulation
authorSimon Glass <sjg@chromium.org>
Thu, 27 Feb 2014 20:26:13 +0000 (13:26 -0700)
committerSimon Glass <sjg@chromium.org>
Tue, 18 Mar 2014 02:05:48 +0000 (20:05 -0600)
Add board code to set up the Chrome OS EC on startup.

Signed-off-by: Simon Glass <sjg@chromium.org>
board/sandbox/sandbox/sandbox.c

index 2f90df52b4620443002e824b382c7c96f2e4ee10..402afea8110ac1a6bb39c7a96734dd2a89b1dde8 100644 (file)
@@ -4,6 +4,7 @@
  */
 
 #include <common.h>
+#include <cros_ec.h>
 #include <dm.h>
 #include <os.h>
 
@@ -33,3 +34,32 @@ int dram_init(void)
        gd->ram_size = CONFIG_SYS_SDRAM_SIZE;
        return 0;
 }
+
+int arch_early_init_r(void)
+{
+#ifdef CONFIG_CROS_EC
+       if (cros_ec_board_init()) {
+               printf("%s: Failed to init EC\n", __func__);
+               return 0;
+       }
+#endif
+
+       return 0;
+}
+
+#ifdef CONFIG_BOARD_LATE_INIT
+int board_late_init(void)
+{
+       if (cros_ec_get_error()) {
+               /* Force console on */
+               gd->flags &= ~GD_FLG_SILENT;
+
+               printf("cros-ec communications failure %d\n",
+                      cros_ec_get_error());
+               puts("\nPlease reset with Power+Refresh\n\n");
+               panic("Cannot init cros-ec device");
+               return -1;
+       }
+       return 0;
+}
+#endif