1 /* 2 * Copyright (c) 2011 The Chromium OS Authors. 3 * SPDX-License-Identifier: GPL-2.0+ 4 */ 5 6 #include <common.h> 7 #include <cros_ec.h> 8 #include <dm.h> 9 #include <os.h> 10 #include <asm/u-boot-sandbox.h> 11 12 /* 13 * Pointer to initial global data area 14 * 15 * Here we initialize it. 16 */ 17 gd_t *gd; 18 19 /* Add a simple GPIO device */ 20 U_BOOT_DEVICE(gpio_sandbox) = { 21 .name = "gpio_sandbox", 22 }; 23 24 void flush_cache(unsigned long start, unsigned long size) 25 { 26 } 27 28 unsigned long timer_read_counter(void) 29 { 30 return os_get_nsec() / 1000; 31 } 32 33 int dram_init(void) 34 { 35 gd->ram_size = CONFIG_SYS_SDRAM_SIZE; 36 return 0; 37 } 38 39 #ifdef CONFIG_BOARD_EARLY_INIT_F 40 int board_early_init_f(void) 41 { 42 #ifdef CONFIG_VIDEO_SANDBOX_SDL 43 int ret; 44 45 ret = sandbox_lcd_sdl_early_init(); 46 if (ret) { 47 puts("Could not init sandbox LCD emulation\n"); 48 return ret; 49 } 50 #endif 51 52 return 0; 53 } 54 #endif 55 56 int arch_early_init_r(void) 57 { 58 #ifdef CONFIG_CROS_EC 59 if (cros_ec_board_init()) { 60 printf("%s: Failed to init EC\n", __func__); 61 return 0; 62 } 63 #endif 64 65 return 0; 66 } 67 68 #ifdef CONFIG_BOARD_LATE_INIT 69 int board_late_init(void) 70 { 71 if (cros_ec_get_error()) { 72 /* Force console on */ 73 gd->flags &= ~GD_FLG_SILENT; 74 75 printf("cros-ec communications failure %d\n", 76 cros_ec_get_error()); 77 puts("\nPlease reset with Power+Refresh\n\n"); 78 panic("Cannot init cros-ec device"); 79 return -1; 80 } 81 return 0; 82 } 83 #endif 84