rk30: reset: pll enter slow mode when reset
author黄涛 <huangtao@rock-chips.com>
Sun, 27 May 2012 11:11:44 +0000 (19:11 +0800)
committer黄涛 <huangtao@rock-chips.com>
Sun, 27 May 2012 11:11:44 +0000 (19:11 +0800)
slow down core periph. fix unable to boot sometime.

arch/arm/mach-rk30/reset.c

index e2a22ba3eb05476dd99830c7cfb8d20d9490ca12..d86811c21d134b074f0da2a718050a5f4452086c 100644 (file)
@@ -29,6 +29,8 @@ static void rk30_arch_reset(char mode, const char *cmd)
        dsb();
        /* disable remap */
        writel_relaxed(1 << (12 + 16), RK30_GRF_BASE + GRF_SOC_CON0);
+       /* pll enter slow mode */
+       writel_relaxed(PLL_MODE_SLOW(APLL_ID) | PLL_MODE_SLOW(CPLL_ID) | PLL_MODE_SLOW(GPLL_ID), RK30_CRU_BASE + CRU_MODE_CON);
        dsb();
        writel_relaxed(0xeca8, RK30_CRU_BASE + CRU_GLB_SRST_SND);
        dsb();