summaryrefslogtreecommitdiff
path: root/arch/arm/mach-ux500/cpu.c
diff options
context:
space:
mode:
authorPhilippe Langlais <philippe.langlais@linaro.org>2011-04-12 12:53:13 +0200
committerUlf Hansson <ulf.hansson@stericsson.com>2011-09-19 15:14:49 +0200
commit8a95c3f51896af123cd160880e70be4cda30d1bc (patch)
tree3648d40bcb512e1eb0fd68be71189b27a9529467 /arch/arm/mach-ux500/cpu.c
parent49c66739db0adfe3e424b4baf50e2a166c2950f1 (diff)
mach-ux500: full alignment with 2.6.35
Diffstat (limited to 'arch/arm/mach-ux500/cpu.c')
-rw-r--r--arch/arm/mach-ux500/cpu.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/arch/arm/mach-ux500/cpu.c b/arch/arm/mach-ux500/cpu.c
index a1467757fb1..d8a62845791 100644
--- a/arch/arm/mach-ux500/cpu.c
+++ b/arch/arm/mach-ux500/cpu.c
@@ -10,6 +10,7 @@
#include <linux/clk.h>
#include <linux/mfd/db8500-prcmu.h>
#include <linux/mfd/db5500-prcmu.h>
+#include <linux/delay.h>
#include <asm/cacheflush.h>
#include <asm/hardware/cache-l2x0.h>
@@ -32,6 +33,15 @@ void __iomem *_PRCMU_BASE;
static void __iomem *l2x0_base;
#endif
+static void ux500_restart(char mode, const char *cmd)
+{
+ prcmu_system_reset();
+
+ mdelay(1000);
+ printk("Reboot via PRCMU failed -- System halted\n");
+ while (1);
+}
+
void __init ux500_init_irq(void)
{
void __iomem *dist_base;
@@ -54,8 +64,11 @@ void __init ux500_init_irq(void)
*/
if (cpu_is_u5500())
db5500_prcmu_early_init();
- if (cpu_is_u8500())
+ if (cpu_is_u8500()) {
prcmu_early_init();
+ arm_pm_restart = ux500_restart;
+ }
+
clk_init();
}