rk30: reboot use the second global software reset
author黄涛 <huangtao@rock-chips.com>
Wed, 28 Mar 2012 01:53:21 +0000 (09:53 +0800)
committer黄涛 <huangtao@rock-chips.com>
Wed, 28 Mar 2012 01:53:50 +0000 (09:53 +0800)
arch/arm/mach-rk30/reset.c

index 4b677d04e97195dc15891966d36b18e8aa038606..b826ad78917a72efe0349f2dabff2c0fac16ef60 100644 (file)
@@ -1,7 +1,16 @@
+#include <linux/io.h>\r
+#include <linux/kernel.h>\r
 #include <mach/system.h>\r
+#include <mach/cru.h>\r
+#include <mach/iomux.h>\r
 \r
 static void rk30_arch_reset(char mode, const char *cmd)\r
 {\r
+       /* disable remap */\r
+       writel_relaxed(1 << (12 + 16), RK30_GRF_BASE + GRF_SOC_CON0);\r
+       dsb();\r
+       writel_relaxed(0xeca8, RK30_CRU_BASE + CRU_GLB_SRST_SND);\r
+       dsb();\r
 }\r
 \r
 void (*arch_reset)(char, const char *) = rk30_arch_reset;\r