提交 293ca0f7 编写于 作者: G Greg Ungerer

m68knommu: merge system reset for code ColdFire 523x family

The sofwtare reset control code for the 523x ColdFire family uses the
same Reset unit hardware as the 527x and 528x ColdFire parts. So they
should all use the same code. Merge them.
Signed-off-by: NGreg Ungerer <gerg@uclinux.org>
上级 7f72b47c
...@@ -264,7 +264,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int siz ...@@ -264,7 +264,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int siz
: /* No output */ \ : /* No output */ \
: "o" (*(char *)MCF_MBAR) ); \ : "o" (*(char *)MCF_MBAR) ); \
}) })
#elif defined(CONFIG_M528x) || defined(CONFIG_M527x) #elif defined(CONFIG_M523x) || defined(CONFIG_M528x) || defined(CONFIG_M527x)
/* /*
* Most of the newer ColdFire family members have a proper RESET unit. * Most of the newer ColdFire family members have a proper RESET unit.
* Use the software reset control bit in the Reset Control Register (RCR). * 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,16 +275,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int siz
asm("move.w #0x2700, %sr"); \ asm("move.w #0x2700, %sr"); \
reset = ((volatile unsigned char *)(MCF_IPSBAR + 0x110000)); \ reset = ((volatile unsigned char *)(MCF_IPSBAR + 0x110000)); \
while (1) \ while (1) \
*reset |= (0x01 << 7); \ *reset |= 0x80; \
})
#elif defined(CONFIG_M523x)
#define HARD_RESET_NOW() ({ \
asm(" \
movew #0x2700, %sr; \
movel #0x01000000, %sp; \
moveal #0x40110000, %a0; \
moveb #0x80, (%a0); \
"); \
}) })
#elif defined(CONFIG_M520x) #elif defined(CONFIG_M520x)
/* /*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册