diff options
Diffstat (limited to 'arch/m68knommu/platform/5307/config.c')
| -rw-r--r-- | arch/m68knommu/platform/5307/config.c | 16 | 
1 files changed, 12 insertions, 4 deletions
diff --git a/arch/m68knommu/platform/5307/config.c b/arch/m68knommu/platform/5307/config.c index 44803bf70a6..39da9e9ff67 100644 --- a/arch/m68knommu/platform/5307/config.c +++ b/arch/m68knommu/platform/5307/config.c @@ -12,7 +12,6 @@  #include <linux/kernel.h>  #include <linux/param.h>  #include <linux/init.h> -#include <linux/interrupt.h>  #include <linux/io.h>  #include <asm/machdep.h>  #include <asm/coldfire.h> @@ -22,8 +21,6 @@  /***************************************************************************/ -void coldfire_reset(void); -  extern unsigned int mcf_timervector;  extern unsigned int mcf_profilevector;  extern unsigned int mcf_timerlevel; @@ -119,6 +116,17 @@ void mcf_settimericr(unsigned int timer, unsigned int level)  /***************************************************************************/ +void m5307_cpu_reset(void) +{ +	local_irq_disable(); +	/* Set watchdog to soft reset, and enabled */ +	__raw_writeb(0xc0, MCF_MBAR + MCFSIM_SYPCR); +	for (;;) +		/* wait for watchdog to timeout */; +} + +/***************************************************************************/ +  void __init config_BSP(char *commandp, int size)  {  	mcf_setimr(MCFSIM_IMR_MASKALL); @@ -134,7 +142,7 @@ void __init config_BSP(char *commandp, int size)  	mcf_timerlevel = 6;  #endif -	mach_reset = coldfire_reset; +	mach_reset = m5307_cpu_reset;  #ifdef CONFIG_BDM_DISABLE  	/*  |