+// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright (c) 2011 The Chromium OS Authors.
- * SPDX-License-Identifier: GPL-2.0+
*/
#include <common.h>
#include <cros_ec.h>
#include <dm.h>
+#include <led.h>
#include <os.h>
+#include <asm/test.h>
#include <asm/u-boot-sandbox.h>
/*
{
}
-unsigned long timer_read_counter(void)
-{
- return os_get_nsec() / 1000;
-}
+#ifndef CONFIG_TIMER
+/* system timer offset in ms */
+static unsigned long sandbox_timer_offset;
-int dram_init(void)
+void sandbox_timer_add_offset(unsigned long offset)
{
- gd->ram_size = CONFIG_SYS_SDRAM_SIZE;
- return 0;
+ sandbox_timer_offset += offset;
}
-#ifdef CONFIG_BOARD_EARLY_INIT_F
-int board_early_init_f(void)
+unsigned long timer_read_counter(void)
{
-#ifdef CONFIG_VIDEO_SANDBOX_SDL
- int ret;
-
- ret = sandbox_lcd_sdl_early_init();
- if (ret) {
- puts("Could not init sandbox LCD emulation\n");
- return ret;
- }
+ return os_get_nsec() / 1000 + sandbox_timer_offset * 1000;
+}
#endif
+int dram_init(void)
+{
+ gd->ram_size = CONFIG_SYS_SDRAM_SIZE;
return 0;
}
-#endif
-int arch_early_init_r(void)
+int board_init(void)
{
-#ifdef CONFIG_CROS_EC
- if (cros_ec_board_init()) {
- printf("%s: Failed to init EC\n", __func__);
- return 0;
- }
-#endif
+ if (IS_ENABLED(CONFIG_LED))
+ led_default_state();
return 0;
}
#ifdef CONFIG_BOARD_LATE_INIT
int board_late_init(void)
{
- if (cros_ec_get_error()) {
+ struct udevice *dev;
+ int ret;
+
+ ret = uclass_first_device_err(UCLASS_CROS_EC, &dev);
+ if (ret && ret != -ENODEV) {
/* Force console on */
gd->flags &= ~GD_FLG_SILENT;
- printf("cros-ec communications failure %d\n",
- cros_ec_get_error());
+ printf("cros-ec communications failure %d\n", ret);
puts("\nPlease reset with Power+Refresh\n\n");
panic("Cannot init cros-ec device");
return -1;