aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Ungerer <gerg@uclinux.org>2009-04-30 09:15:56 -0400
committerGreg Ungerer <gerg@uclinux.org>2009-06-10 23:09:10 -0400
commitdd65b1de553ddfd85e8fea9d3aa9db7479ccf2aa (patch)
treeaf2bf7239b3801601c3bf9e92346d8c9bfc5c25c
parent4c0b008d49e728735f54419e60446480017bfe1b (diff)
m68knommu: move CPU reset code for the 528x ColdFire into its platform code
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
-rw-r--r--arch/m68k/include/asm/m528xsim.h8
-rw-r--r--arch/m68knommu/platform/528x/config.c13
2 files changed, 17 insertions, 4 deletions
diff --git a/arch/m68k/include/asm/m528xsim.h b/arch/m68k/include/asm/m528xsim.h
index 28bf783a5d6..d79c49f8134 100644
--- a/arch/m68k/include/asm/m528xsim.h
+++ b/arch/m68k/include/asm/m528xsim.h
@@ -56,6 +56,14 @@
56#define MCF5282_INTC0_ICR17 (volatile u8 *) (MCF_IPSBAR + 0x0C51) 56#define MCF5282_INTC0_ICR17 (volatile u8 *) (MCF_IPSBAR + 0x0C51)
57 57
58 58
59/*
60 * Reset Control Unit (relative to IPSBAR).
61 */
62#define MCF_RCR 0x110000
63#define MCF_RSR 0x110001
64
65#define MCF_RCR_SWRESET 0x80 /* Software reset bit */
66#define MCF_RCR_FRCSTOUT 0x40 /* Force external reset */
59 67
60/********************************************************************* 68/*********************************************************************
61* 69*
diff --git a/arch/m68knommu/platform/528x/config.c b/arch/m68knommu/platform/528x/config.c
index bee526f4d1a..a1d1a61c4fe 100644
--- a/arch/m68knommu/platform/528x/config.c
+++ b/arch/m68knommu/platform/528x/config.c
@@ -31,10 +31,6 @@
31 31
32/***************************************************************************/ 32/***************************************************************************/
33 33
34void coldfire_reset(void);
35
36/***************************************************************************/
37
38static struct mcf_platform_uart m528x_uart_platform[] = { 34static struct mcf_platform_uart m528x_uart_platform[] = {
39 { 35 {
40 .mapbase = MCF_MBAR + MCFUART_BASE1, 36 .mapbase = MCF_MBAR + MCFUART_BASE1,
@@ -171,6 +167,14 @@ void mcf_autovector(unsigned int vec)
171 167
172/***************************************************************************/ 168/***************************************************************************/
173 169
170static void m528x_cpu_reset(void)
171{
172 local_irq_disable();
173 __raw_writeb(MCF_RCR_SWRESET, MCF_IPSBAR + MCF_RCR);
174}
175
176/***************************************************************************/
177
174#ifdef CONFIG_WILDFIRE 178#ifdef CONFIG_WILDFIRE
175void wildfire_halt(void) 179void wildfire_halt(void)
176{ 180{
@@ -214,6 +218,7 @@ void __init config_BSP(char *commandp, int size)
214 218
215static int __init init_BSP(void) 219static int __init init_BSP(void)
216{ 220{
221 mach_reset = m528x_cpu_reset;
217 m528x_uarts_init(); 222 m528x_uarts_init();
218 m528x_fec_init(); 223 m528x_fec_init();
219 platform_add_devices(m528x_devices, ARRAY_SIZE(m528x_devices)); 224 platform_add_devices(m528x_devices, ARRAY_SIZE(m528x_devices));