aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-arm
diff options
context:
space:
mode:
authorAndrew Victor <andrew@sanpeople.com>2006-11-30 04:01:47 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-11-30 17:51:36 -0500
commit1f4fd0a0d28fabf965815755f1a74ef91dfb5ca6 (patch)
tree09562e8467136cf545b5631a257a0e9d53a31a89 /include/asm-arm
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/asm-arm')
-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 8a2ff472e4cf..1d54185e036d 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)
39 cpu_do_idle(); 39 cpu_do_idle();
40} 40}
41 41
42void (*at91_arch_reset)(void);
43
42static inline void arch_reset(char mode) 44static inline void arch_reset(char mode)
43{ 45{
44 /* 46 /* call the CPU-specific reset function */
45 * Perform a hardware reset with the use of the Watchdog timer. 47 if (at91_arch_reset)
46 */ 48 (at91_arch_reset)();
47 at91_sys_write(AT91_ST_WDMR, AT91_ST_RSTEN | AT91_ST_EXTEN | 1); 49
48 at91_sys_write(AT91_ST_CR, AT91_ST_WDRST); 50 for (;;) {} /* wait fovever */
49} 51}
50 52
51#define ARCH_ID_AT91RM9200 0x09200080 53#define ARCH_ID_AT91RM9200 0x09200080