summaryrefslogtreecommitdiffstats
path: root/include/asm-arm/arch-versatile/system.h
diff options
context:
space:
mode:
authorDave Jones <davej@redhat.com>2006-06-29 22:01:54 +0200
committerDave Jones <davej@redhat.com>2006-06-29 22:01:54 +0200
commit55b4d6a52195a8f277ffddf755ddaff359878f41 (patch)
tree06a3183a562f8da4688f65023f7a18dcad702956 /include/asm-arm/arch-versatile/system.h
parent[AGPGART] Make AGP depend on PCI (diff)
parent[PATCH] KConfig: Spellchecking 'similarity' and 'independent' (diff)
downloadlinux-55b4d6a52195a8f277ffddf755ddaff359878f41.tar.xz
linux-55b4d6a52195a8f277ffddf755ddaff359878f41.zip
Merge ../linus
Conflicts: drivers/char/agp/Kconfig
Diffstat (limited to 'include/asm-arm/arch-versatile/system.h')
-rw-r--r--include/asm-arm/arch-versatile/system.h16
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)
static inline void arch_reset(char mode)
{
- unsigned int hdr_ctrl = (IO_ADDRESS(VERSATILE_SYS_BASE) + VERSATILE_SYS_RESETCTL_OFFSET);
- unsigned int val;
+ u32 val;
- /*
- * To reset, we hit the on-board reset register
- * in the system FPGA
- */
- val = __raw_readl(hdr_ctrl);
- val |= VERSATILE_SYS_CTRL_RESET_CONFIGCLR;
- __raw_writel(val, hdr_ctrl);
+ val = __raw_readl(IO_ADDRESS(VERSATILE_SYS_RESETCTL)) & ~0x7;
+ val |= 0x105;
+
+ __raw_writel(0xa05f, IO_ADDRESS(VERSATILE_SYS_LOCK));
+ __raw_writel(val, IO_ADDRESS(VERSATILE_SYS_RESETCTL));
+ __raw_writel(0, IO_ADDRESS(VERSATILE_SYS_LOCK));
}
#endif