aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAndrew Victor <andrew@sanpeople.com>2006-11-30 10:01:47 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-11-30 22:51:36 +0000
commit1f4fd0a0d28fabf965815755f1a74ef91dfb5ca6 (patch)
tree09562e8467136cf545b5631a257a0e9d53a31a89 /include
parent20127f6863990e1313178debe8c9cfe32d43b1dc (diff)
[ARM] 3946/1: AT91: at91_arch_reset and at91_extern_irq
The external interrupt sources are different on the various AT91 processors. This patch introduces the global 'at91_extern_irq' variable that contains a bitset of the available external interrupt sources. The processor reset mechanism also differs on the various AT91 processors. This patch also adds a global 'at91_arch_reset' callback (from system.h) into the processor-specific code to perform the reset. Signed-off-by: Andrew Victor <andrew@sanpeople.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'include')
-rw-r--r--include/asm-arm/arch-at91rm9200/system.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/include/asm-arm/arch-at91rm9200/system.h b/include/asm-arm/arch-at91rm9200/system.h
index 8a2ff472e4c..1d54185e036 100644
--- a/include/asm-arm/arch-at91rm9200/system.h
+++ b/include/asm-arm/arch-at91rm9200/system.h
@@ -39,13 +39,15 @@ static inline void arch_idle(void)
cpu_do_idle();
}
+void (*at91_arch_reset)(void);
+
static inline void arch_reset(char mode)
{
- /*
- * Perform a hardware reset with the use of the Watchdog timer.
- */
- at91_sys_write(AT91_ST_WDMR, AT91_ST_RSTEN | AT91_ST_EXTEN | 1);
- at91_sys_write(AT91_ST_CR, AT91_ST_WDRST);
+ /* call the CPU-specific reset function */
+ if (at91_arch_reset)
+ (at91_arch_reset)();
+
+ for (;;) {} /* wait fovever */
}
#define ARCH_ID_AT91RM9200 0x09200080