summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-omap/include/mach/omap3-silicon.h3
-rw-r--r--arch/arm/mach-omap/omap3_generic.c5
2 files changed, 6 insertions, 2 deletions
diff --git a/arch/arm/mach-omap/include/mach/omap3-silicon.h b/arch/arm/mach-omap/include/mach/omap3-silicon.h
index 0e6a45f8fd..67f77476a9 100644
--- a/arch/arm/mach-omap/include/mach/omap3-silicon.h
+++ b/arch/arm/mach-omap/include/mach/omap3-silicon.h
@@ -132,5 +132,8 @@
#define OMAP_SDRC_CS0 0x80000000
#define OMAP_SDRC_CS1 0xA0000000
+/* PRM */
+#define PRM_RSTCTRL_RESET 0x04
+
#endif /* __ASM_ARCH_OMAP3_H */
diff --git a/arch/arm/mach-omap/omap3_generic.c b/arch/arm/mach-omap/omap3_generic.c
index 661a971fc0..9627a6b1e4 100644
--- a/arch/arm/mach-omap/omap3_generic.c
+++ b/arch/arm/mach-omap/omap3_generic.c
@@ -59,8 +59,9 @@
*/
void __noreturn reset_cpu(unsigned long addr)
{
- /* FIXME: Enable WDT and cause reset */
- hang();
+ writel(PRM_RSTCTRL_RESET, PRM_REG(RSTCTRL));
+
+ while (1);
}
EXPORT_SYMBOL(reset_cpu);