diff options
-rw-r--r-- | arch/m68k/include/asm/system_no.h | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/arch/m68k/include/asm/system_no.h b/arch/m68k/include/asm/system_no.h index 4496c0aa8379..5fbc96d933ce 100644 --- a/arch/m68k/include/asm/system_no.h +++ b/arch/m68k/include/asm/system_no.h | |||
@@ -264,18 +264,18 @@ static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int siz | |||
264 | : /* No output */ \ | 264 | : /* No output */ \ |
265 | : "o" (*(char *)MCF_MBAR) ); \ | 265 | : "o" (*(char *)MCF_MBAR) ); \ |
266 | }) | 266 | }) |
267 | #elif defined(CONFIG_M528x) | 267 | #elif defined(CONFIG_M528x) || defined(CONFIG_M527x) |
268 | /* | 268 | /* |
269 | * The MCF528x has a bit (SOFTRST) in memory (Reset Control Register RCR), | 269 | * Most of the newer ColdFire family members have a proper RESET unit. |
270 | * that when set, resets the MCF528x. | 270 | * Use the software reset control bit in the Reset Control Register (RCR). |
271 | */ | 271 | */ |
272 | #define HARD_RESET_NOW() \ | 272 | #define HARD_RESET_NOW() \ |
273 | ({ \ | 273 | ({ \ |
274 | unsigned char volatile *reset; \ | 274 | unsigned char volatile *reset; \ |
275 | asm("move.w #0x2700, %sr"); \ | 275 | asm("move.w #0x2700, %sr"); \ |
276 | reset = ((volatile unsigned char *)(MCF_IPSBAR + 0x110000)); \ | 276 | reset = ((volatile unsigned char *)(MCF_IPSBAR + 0x110000)); \ |
277 | while(1) \ | 277 | while (1) \ |
278 | *reset |= (0x01 << 7);\ | 278 | *reset |= (0x01 << 7); \ |
279 | }) | 279 | }) |
280 | #elif defined(CONFIG_M523x) | 280 | #elif defined(CONFIG_M523x) |
281 | #define HARD_RESET_NOW() ({ \ | 281 | #define HARD_RESET_NOW() ({ \ |