summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-realview/realview_pbx.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2010-01-18 20:47:37 +0900
committerPaul Mundt <lethal@linux-sh.org>2010-01-18 20:47:37 +0900
commit0c54de146ef4303ed3c5879b043894c8db637507 (patch)
treea4ff5bf27ffd2c4b71271b42014a0040490c7271 /arch/arm/mach-realview/realview_pbx.c
parent8faba6121566248330e738d25a2c43d7500fb9f0 (diff)
parent7dc9c484a71525794ca05cf7a47f283f1b54cd12 (diff)
downloadop-kernel-dev-0c54de146ef4303ed3c5879b043894c8db637507.zip
op-kernel-dev-0c54de146ef4303ed3c5879b043894c8db637507.tar.gz
Merge branch 'sh/stable-updates'
Diffstat (limited to 'arch/arm/mach-realview/realview_pbx.c')
-rw-r--r--arch/arm/mach-realview/realview_pbx.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/arm/mach-realview/realview_pbx.c b/arch/arm/mach-realview/realview_pbx.c
index ec39488..a21a4b3 100644
--- a/arch/arm/mach-realview/realview_pbx.c
+++ b/arch/arm/mach-realview/realview_pbx.c
@@ -324,6 +324,20 @@ static void realview_pbx_fixup(struct machine_desc *mdesc, struct tag *tags,
#endif
}
+static void realview_pbx_reset(char mode)
+{
+ void __iomem *reset_ctrl = __io_address(REALVIEW_SYS_RESETCTL);
+ void __iomem *lock_ctrl = __io_address(REALVIEW_SYS_LOCK);
+
+ /*
+ * To reset, we hit the on-board reset register
+ * in the system FPGA
+ */
+ __raw_writel(REALVIEW_SYS_LOCK_VAL, lock_ctrl);
+ __raw_writel(0x0000, reset_ctrl);
+ __raw_writel(0x0004, reset_ctrl);
+}
+
static void __init realview_pbx_init(void)
{
int i;
@@ -358,6 +372,7 @@ static void __init realview_pbx_init(void)
#ifdef CONFIG_LEDS
leds_event = realview_leds_event;
#endif
+ realview_reset = realview_pbx_reset;
}
MACHINE_START(REALVIEW_PBX, "ARM-RealView PBX")
OpenPOWER on IntegriCloud