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