diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/m68k/include/asm/system_no.h | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/arch/m68k/include/asm/system_no.h b/arch/m68k/include/asm/system_no.h index 5fbc96d933ce..a0a1ae8b1524 100644 --- a/arch/m68k/include/asm/system_no.h +++ b/arch/m68k/include/asm/system_no.h | |||
@@ -264,7 +264,7 @@ 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) || defined(CONFIG_M527x) | 267 | #elif defined(CONFIG_M523x) || defined(CONFIG_M528x) || defined(CONFIG_M527x) |
268 | /* | 268 | /* |
269 | * Most of the newer ColdFire family members have a proper RESET unit. | 269 | * Most of the newer ColdFire family members have a proper RESET unit. |
270 | * Use the software reset control bit in the Reset Control Register (RCR). | 270 | * Use the software reset control bit in the Reset Control Register (RCR). |
@@ -275,16 +275,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int siz | |||
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 |= 0x80; \ |
279 | }) | ||
280 | #elif defined(CONFIG_M523x) | ||
281 | #define HARD_RESET_NOW() ({ \ | ||
282 | asm(" \ | ||
283 | movew #0x2700, %sr; \ | ||
284 | movel #0x01000000, %sp; \ | ||
285 | moveal #0x40110000, %a0; \ | ||
286 | moveb #0x80, (%a0); \ | ||
287 | "); \ | ||
288 | }) | 279 | }) |
289 | #elif defined(CONFIG_M520x) | 280 | #elif defined(CONFIG_M520x) |
290 | /* | 281 | /* |