aboutsummaryrefslogtreecommitdiffstats
path: root/arch/m68k/platform/coldfire/reset.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/m68k/platform/coldfire/reset.c')
-rw-r--r--arch/m68k/platform/coldfire/reset.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/arch/m68k/platform/coldfire/reset.c b/arch/m68k/platform/coldfire/reset.c
index 5ed78d3546d2..933e54eacc69 100644
--- a/arch/m68k/platform/coldfire/reset.c
+++ b/arch/m68k/platform/coldfire/reset.c
@@ -15,7 +15,15 @@
15#include <asm/coldfire.h> 15#include <asm/coldfire.h>
16#include <asm/mcfsim.h> 16#include <asm/mcfsim.h>
17 17
18void mcf_cpu_reset(void) 18/*
19 * There are 2 common methods amongst the ColdFure parts for reseting
20 * the CPU. But there are couple of exceptions, the 5272 and the 547x
21 * have something completely special to them, and we let their specific
22 * subarch code handle them.
23 */
24
25#ifdef MCFSIM_SYPCR
26static void mcf_cpu_reset(void)
19{ 27{
20 local_irq_disable(); 28 local_irq_disable();
21 /* Set watchdog to soft reset, and enabled */ 29 /* Set watchdog to soft reset, and enabled */
@@ -23,6 +31,15 @@ void mcf_cpu_reset(void)
23 for (;;) 31 for (;;)
24 /* wait for watchdog to timeout */; 32 /* wait for watchdog to timeout */;
25} 33}
34#endif
35
36#ifdef MCF_RCR
37static void mcf_cpu_reset(void)
38{
39 local_irq_disable();
40 __raw_writeb(MCF_RCR_SWRESET, MCF_RCR);
41}
42#endif
26 43
27static int __init mcf_setup_reset(void) 44static int __init mcf_setup_reset(void)
28{ 45{