diff options
author | Greg Ungerer <gerg@uclinux.org> | 2009-04-30 09:15:56 -0400 |
---|---|---|
committer | Greg Ungerer <gerg@uclinux.org> | 2009-06-10 23:09:10 -0400 |
commit | dd65b1de553ddfd85e8fea9d3aa9db7479ccf2aa (patch) | |
tree | af2bf7239b3801601c3bf9e92346d8c9bfc5c25c /arch | |
parent | 4c0b008d49e728735f54419e60446480017bfe1b (diff) |
m68knommu: move CPU reset code for the 528x ColdFire into its platform code
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/m68k/include/asm/m528xsim.h | 8 | ||||
-rw-r--r-- | arch/m68knommu/platform/528x/config.c | 13 |
2 files changed, 17 insertions, 4 deletions
diff --git a/arch/m68k/include/asm/m528xsim.h b/arch/m68k/include/asm/m528xsim.h index 28bf783a5d6d..d79c49f8134a 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 bee526f4d1af..a1d1a61c4fe6 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 | ||
34 | void coldfire_reset(void); | ||
35 | |||
36 | /***************************************************************************/ | ||
37 | |||
38 | static struct mcf_platform_uart m528x_uart_platform[] = { | 34 | static 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 | ||
170 | static 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 |
175 | void wildfire_halt(void) | 179 | void wildfire_halt(void) |
176 | { | 180 | { |
@@ -214,6 +218,7 @@ void __init config_BSP(char *commandp, int size) | |||
214 | 218 | ||
215 | static int __init init_BSP(void) | 219 | static 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)); |