xref: /openbmc/u-boot/board/sandbox/sandbox.c (revision 06fbf102)
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 #ifdef CONFIG_BOARD_LATE_INIT
57 int board_late_init(void)
58 {
59 	if (cros_ec_get_error()) {
60 		/* Force console on */
61 		gd->flags &= ~GD_FLG_SILENT;
62 
63 		printf("cros-ec communications failure %d\n",
64 		       cros_ec_get_error());
65 		puts("\nPlease reset with Power+Refresh\n\n");
66 		panic("Cannot init cros-ec device");
67 		return -1;
68 	}
69 	return 0;
70 }
71 #endif
72