aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorGreg Ungerer <gerg@uclinux.org>2009-04-30 03:03:09 -0400
committerGreg Ungerer <gerg@uclinux.org>2009-06-10 23:09:09 -0400
commitc18e52c7696e39c7cb23cd083bbda5652c338b79 (patch)
tree58cbda9a39ee6fbdbef62c5bb780d8ec2f7f97de /arch
parent293ca0f75415dd8373c716bf9755569daca7ba5d (diff)
m68knommu: add CPU reset code for the 5307 ColdFire
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/m68knommu/platform/5307/config.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/arch/m68knommu/platform/5307/config.c b/arch/m68knommu/platform/5307/config.c
index 44803bf70a6e..39da9e9ff674 100644
--- a/arch/m68knommu/platform/5307/config.c
+++ b/arch/m68knommu/platform/5307/config.c
@@ -12,7 +12,6 @@
12#include <linux/kernel.h> 12#include <linux/kernel.h>
13#include <linux/param.h> 13#include <linux/param.h>
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/interrupt.h>
16#include <linux/io.h> 15#include <linux/io.h>
17#include <asm/machdep.h> 16#include <asm/machdep.h>
18#include <asm/coldfire.h> 17#include <asm/coldfire.h>
@@ -22,8 +21,6 @@
22 21
23/***************************************************************************/ 22/***************************************************************************/
24 23
25void coldfire_reset(void);
26
27extern unsigned int mcf_timervector; 24extern unsigned int mcf_timervector;
28extern unsigned int mcf_profilevector; 25extern unsigned int mcf_profilevector;
29extern unsigned int mcf_timerlevel; 26extern unsigned int mcf_timerlevel;
@@ -119,6 +116,17 @@ void mcf_settimericr(unsigned int timer, unsigned int level)
119 116
120/***************************************************************************/ 117/***************************************************************************/
121 118
119void m5307_cpu_reset(void)
120{
121 local_irq_disable();
122 /* Set watchdog to soft reset, and enabled */
123 __raw_writeb(0xc0, MCF_MBAR + MCFSIM_SYPCR);
124 for (;;)
125 /* wait for watchdog to timeout */;
126}
127
128/***************************************************************************/
129
122void __init config_BSP(char *commandp, int size) 130void __init config_BSP(char *commandp, int size)
123{ 131{
124 mcf_setimr(MCFSIM_IMR_MASKALL); 132 mcf_setimr(MCFSIM_IMR_MASKALL);
@@ -134,7 +142,7 @@ void __init config_BSP(char *commandp, int size)
134 mcf_timerlevel = 6; 142 mcf_timerlevel = 6;
135#endif 143#endif
136 144
137 mach_reset = coldfire_reset; 145 mach_reset = m5307_cpu_reset;
138 146
139#ifdef CONFIG_BDM_DISABLE 147#ifdef CONFIG_BDM_DISABLE
140 /* 148 /*