blob: 16f38559afff430d6135419890d1c09b20d0e176 [file] [log] [blame]
Heiko Stübnerdf9041e2017-02-18 19:46:38 +01001/*
2 * (C) Copyright 2015 Google, Inc
3 *
4 * SPDX-License-Identifier: GPL-2.0+
5 */
6
7#include <common.h>
8#include <clk.h>
9#include <dm.h>
10#include <ram.h>
11#include <syscon.h>
12#include <asm/io.h>
13#include <asm/arch/clock.h>
14#include <asm/arch/periph.h>
15#include <asm/arch/pmu_rk3288.h>
16#include <asm/arch/boot_mode.h>
17#include <asm/gpio.h>
18#include <dm/pinctrl.h>
19
20DECLARE_GLOBAL_DATA_PTR;
21
22int board_init(void)
23{
24#if defined(CONFIG_ROCKCHIP_SPL_BACK_TO_BROM)
25 struct udevice *pinctrl;
26 int ret;
27
28 /*
29 * We need to implement sdcard iomux here for the further
30 * initialization, otherwise, it'll hit sdcard command sending
31 * timeout exception.
32 */
33 ret = uclass_get_device(UCLASS_PINCTRL, 0, &pinctrl);
34 if (ret) {
35 debug("%s: Cannot find pinctrl device\n", __func__);
36 goto err;
37 }
38 ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_SDCARD);
39 if (ret) {
40 debug("%s: Failed to set up SD card\n", __func__);
41 goto err;
42 }
43
44 return 0;
45err:
46 printf("board_init: Error %d\n", ret);
47
48 /* No way to report error here */
49 hang();
50
51 return -1;
52#else
53 return 0;
54#endif
55}
56
57int dram_init(void)
58{
59 /* FIXME: read back ram size from sys_reg2 */
60 gd->ram_size = 0x40000000;
61
62 return 0;
63}
64
65#ifndef CONFIG_SYS_DCACHE_OFF
66void enable_caches(void)
67{
68 /* Enable D-cache. I-cache is already enabled in start.S */
69 dcache_enable();
70}
71#endif