diff options
author | Deepak Saxena <dsaxena@plexity.net> | 2006-06-20 16:30:44 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-06-20 16:30:44 -0400 |
commit | 4af6fee18822d012a15b4c9b8992e1f2793dfe0b (patch) | |
tree | 99223edd72ba52b0bc1ba87717e525b07d79d24b /include/asm-arm/arch-versatile/system.h | |
parent | 098a4cb7c0c9bdd86e9d99f607e9f31206a914eb (diff) |
[ARM] 3610/1: Make reboot work on Versatile
Patch from Deepak Saxena
This patch makes soft reboot work on the Versatile board. Thanks to
Catalin Marinas @ ARM for pointing out the proper way to do this.
Signed-off-by: Deepak Saxena <dsaxena@plexity.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'include/asm-arm/arch-versatile/system.h')
-rw-r--r-- | include/asm-arm/arch-versatile/system.h | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/include/asm-arm/arch-versatile/system.h b/include/asm-arm/arch-versatile/system.h index 8889a189739f..71c6254c0d9b 100644 --- a/include/asm-arm/arch-versatile/system.h +++ b/include/asm-arm/arch-versatile/system.h | |||
@@ -36,16 +36,14 @@ static inline void arch_idle(void) | |||
36 | 36 | ||
37 | static inline void arch_reset(char mode) | 37 | static inline void arch_reset(char mode) |
38 | { | 38 | { |
39 | unsigned int hdr_ctrl = (IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_RESETCTL_OFFSET); | 39 | u32 val; |
40 | unsigned int val; | ||
41 | 40 | ||
42 | /* | 41 | val = __raw_readl(IO_ADDRESS(VERSATILE_SYS_RESETCTL)) & ~0x7; |
43 | * To reset, we hit the on-board reset register | 42 | val |= 0x105; |
44 | * in the system FPGA | 43 | |
45 | */ | 44 | __raw_writel(0xa05f, IO_ADDRESS(VERSATILE_SYS_LOCK)); |
46 | val = __raw_readl(hdr_ctrl); | 45 | __raw_writel(val, IO_ADDRESS(VERSATILE_SYS_RESETCTL)); |
47 | val |= VERSATILE_SYS_CTRL_RESET_CONFIGCLR; | 46 | __raw_writel(0, IO_ADDRESS(VERSATILE_SYS_LOCK)); |
48 | __raw_writel(val, hdr_ctrl); | ||
49 | } | 47 | } |
50 | 48 | ||
51 | #endif | 49 | #endif |