1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3  * (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH
4  */
5 
6 #include <common.h>
7 #include <debug_uart.h>
8 #include <dm.h>
9 #include <dm/pinctrl.h>
10 #include <ram.h>
11 #include <spl.h>
12 #include <asm/io.h>
13 #include <asm/arch/cru_rk3368.h>
14 #include <asm/arch/grf_rk3368.h>
15 #include <asm/arch/hardware.h>
16 #include <asm/arch/periph.h>
17 #include <asm/arch/timer.h>
18 
19 void board_debug_uart_init(void)
20 {
21 }
22 
23 void board_init_f(ulong dummy)
24 {
25 	struct udevice *pinctrl;
26 	struct udevice *dev;
27 	int ret;
28 
29 	ret = spl_early_init();
30 	if (ret) {
31 		debug("spl_early_init() failed: %d\n", ret);
32 		hang();
33 	}
34 
35 	/* Set up our preloader console */
36 	ret = uclass_get_device(UCLASS_PINCTRL, 0, &pinctrl);
37 	if (ret) {
38 		pr_err("%s: pinctrl init failed: %d\n", __func__, ret);
39 		hang();
40 	}
41 
42 	ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_UART0);
43 	if (ret) {
44 		pr_err("%s: failed to set up console UART\n", __func__);
45 		hang();
46 	}
47 
48 	preloader_console_init();
49 
50 	ret = uclass_get_device(UCLASS_RAM, 0, &dev);
51 	if (ret) {
52 		debug("DRAM init failed: %d\n", ret);
53 		return;
54 	}
55 }
56 
57 u32 spl_boot_device(void)
58 {
59 	return BOOT_DEVICE_MMC1;
60 }
61 
62 #ifdef CONFIG_SPL_LOAD_FIT
63 int board_fit_config_name_match(const char *name)
64 {
65 	/* Just empty function now - can't decide what to choose */
66 	debug("%s: %s\n", __func__, name);
67 
68 	return 0;
69 }
70 #endif
71