2018-05-06 21:58:06 +00:00
|
|
|
// SPDX-License-Identifier: GPL-2.0+
|
2017-02-18 18:46:38 +00:00
|
|
|
/*
|
|
|
|
* (C) Copyright 2015 Google, Inc
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <common.h>
|
|
|
|
#include <clk.h>
|
|
|
|
#include <dm.h>
|
|
|
|
#include <ram.h>
|
|
|
|
#include <syscon.h>
|
2019-01-21 21:53:31 +00:00
|
|
|
#include <asm/gpio.h>
|
2017-02-18 18:46:38 +00:00
|
|
|
#include <asm/io.h>
|
2019-03-28 03:01:23 +00:00
|
|
|
#include <asm/arch-rockchip/clock.h>
|
|
|
|
#include <asm/arch-rockchip/grf_rk3188.h>
|
|
|
|
#include <asm/arch-rockchip/periph.h>
|
|
|
|
#include <asm/arch-rockchip/pmu_rk3288.h>
|
|
|
|
#include <asm/arch-rockchip/boot_mode.h>
|
2017-02-18 18:46:38 +00:00
|
|
|
|
2018-02-26 12:37:42 +00:00
|
|
|
__weak int rk_board_late_init(void)
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
2017-04-05 22:19:36 +00:00
|
|
|
int board_late_init(void)
|
|
|
|
{
|
|
|
|
struct rk3188_grf *grf;
|
|
|
|
|
2017-10-11 07:00:16 +00:00
|
|
|
setup_boot_mode();
|
2017-04-05 22:19:36 +00:00
|
|
|
grf = syscon_get_first_range(ROCKCHIP_SYSCON_GRF);
|
|
|
|
if (IS_ERR(grf)) {
|
2017-09-16 05:10:41 +00:00
|
|
|
pr_err("grf syscon returned %ld\n", PTR_ERR(grf));
|
2017-04-05 22:19:36 +00:00
|
|
|
} else {
|
|
|
|
/* enable noc remap to mimic legacy loaders */
|
|
|
|
rk_clrsetreg(&grf->soc_con0,
|
|
|
|
NOC_REMAP_MASK << NOC_REMAP_SHIFT,
|
|
|
|
NOC_REMAP_MASK << NOC_REMAP_SHIFT);
|
|
|
|
}
|
|
|
|
|
2018-02-26 12:37:42 +00:00
|
|
|
return rk_board_late_init();
|
2017-04-05 22:19:36 +00:00
|
|
|
}
|
|
|
|
|
2017-02-18 18:46:38 +00:00
|
|
|
int board_init(void)
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
2019-05-03 13:41:00 +00:00
|
|
|
#if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
|
2017-02-18 18:46:38 +00:00
|
|
|
void enable_caches(void)
|
|
|
|
{
|
|
|
|
/* Enable D-cache. I-cache is already enabled in start.S */
|
|
|
|
dcache_enable();
|
|
|
|
}
|
|
|
|
#endif
|