diff options
author | Wolfgang Denk <wd@denx.de> | 2010-09-09 21:39:46 +0200 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2010-09-09 21:39:46 +0200 |
commit | 8fea51a4acb0c7da6fb375c9a708c50c0a1b66ad (patch) | |
tree | f6a3d36e35f8f4d1009c367417e918c210b0baf0 /arch/arm/cpu/arm926ejs/at91/reset.c | |
parent | 40e74c852b76accfe27d832f23ea3020352bc120 (diff) | |
parent | ec99d983418897b120409f71712d41c01a21bf7c (diff) |
Merge branch 'master' of git://git.denx.de/u-boot-arm
Diffstat (limited to 'arch/arm/cpu/arm926ejs/at91/reset.c')
-rw-r--r-- | arch/arm/cpu/arm926ejs/at91/reset.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/arch/arm/cpu/arm926ejs/at91/reset.c b/arch/arm/cpu/arm926ejs/at91/reset.c index 1b67e77887..d2569d8bae 100644 --- a/arch/arm/cpu/arm926ejs/at91/reset.c +++ b/arch/arm/cpu/arm926ejs/at91/reset.c @@ -27,18 +27,19 @@ #include <asm/arch/at91_rstc.h> #include <asm/arch/io.h> -/* - * Reset the cpu by setting up the watchdog timer and let him time out. - */ +/* Reset the cpu by telling the reset controller to do so */ void reset_cpu(ulong ignored) { at91_rstc_t *rstc = (at91_rstc_t *) AT91_RSTC_BASE; - /* this is the way Linux does it */ - - writel(AT91_RSTC_KEY | AT91_RSTC_CR_PROCRST | AT91_RSTC_CR_PERRST, - &rstc->cr); - - while (1); - /* Never reached */ + writel(AT91_RSTC_KEY + | AT91_RSTC_CR_PROCRST /* Processor Reset */ + | AT91_RSTC_CR_PERRST /* Peripheral Reset */ +#ifdef CONFIG_AT91RESET_EXTRST + | AT91_RSTC_CR_EXTRST /* External Reset (assert nRST pin) */ +#endif + , &rstc->cr); + /* never reached */ + while (1) + ; } |