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