ARM: rockchip: rk3288: pmu reset by second global soft reset
author黄涛 <huangtao@rock-chips.com>
Tue, 29 Apr 2014 10:24:47 +0000 (18:24 +0800)
committer黄涛 <huangtao@rock-chips.com>
Tue, 29 Apr 2014 10:27:38 +0000 (18:27 +0800)
arch/arm/mach-rockchip/rk3288.c

index c74793df4cf94011457b8470a7fb41f76683217b..834b7850bd625d19f7099a71a41ceae695cbf13e 100644 (file)
@@ -124,11 +124,19 @@ extern void secondary_startup(void);
 
 static void __init rk3288_dt_map_io(void)
 {
+       u32 v;
+
+       rockchip_soc_id = ROCKCHIP_SOC_RK3288;
+
        iotable_init(rk3288_io_desc, ARRAY_SIZE(rk3288_io_desc));
        debug_ll_io_init();
        usb_uart_init();
 
-       rockchip_soc_id = ROCKCHIP_SOC_RK3288;
+       /* pmu reset by second global soft reset */
+       v = readl_relaxed(RK_CRU_VIRT + RK3288_CRU_GLB_RST_CON);
+       v &= ~(3 << 2);
+       v |= 1 << 2;
+       writel_relaxed(v, RK_CRU_VIRT + RK3288_CRU_GLB_RST_CON);
 
        /* rkpwm is used instead of old pwm */
        writel_relaxed(0x00010001, RK_GRF_VIRT + RK3288_GRF_SOC_CON2);