From bc8231a2d1bde91cc0695a3abd09b4054f28bfdb Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E9=99=88=E4=BA=AE?= Date: Mon, 25 Aug 2014 23:12:02 -0700 Subject: [PATCH] rk312x: pmu reset by second global soft reset MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: 陈亮 --- arch/arm/mach-rockchip/rk312x.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-rockchip/rk312x.c b/arch/arm/mach-rockchip/rk312x.c index f1b81764a03c..fd5bf182b80f 100755 --- a/arch/arm/mach-rockchip/rk312x.c +++ b/arch/arm/mach-rockchip/rk312x.c @@ -104,10 +104,18 @@ static void usb_uart_init(void) static void __init rk312x_dt_map_io(void) { + u32 v; + iotable_init(rk312x_io_desc, ARRAY_SIZE(rk312x_io_desc)); debug_ll_io_init(); usb_uart_init(); + /* pmu reset by second global soft reset */ + v = readl_relaxed(RK_CRU_VIRT + RK312X_CRU_GLB_CNT_TH); + v &= ~(3 << 12); + v |= 1 << 12; + writel_relaxed(v, RK_CRU_VIRT + RK312X_CRU_GLB_CNT_TH); + /* enable timer5 for core */ writel_relaxed(0, RK312X_TIMER5_VIRT + 0x10); dsb(); @@ -349,7 +357,7 @@ static void rk312x_restart(char mode, const char *cmd) dsb(); /* pll enter slow mode */ - writel_relaxed(0x30110000, RK_CRU_VIRT + RK312X_CRU_MODE_CON); + writel_relaxed(0x11010000, RK_CRU_VIRT + RK312X_CRU_MODE_CON); dsb(); writel_relaxed(0xeca8, RK_CRU_VIRT + RK312X_CRU_GLB_SRST_SND_VALUE); dsb(); -- 2.34.1