Commit bd93ec50 authored by Fabio Baltieri's avatar Fabio Baltieri Committed by Linus Walleij

ARM: ux500: add restart support via prcmu

Add necessary code to restart ux500 based machines using
prcmu_system_reset().
Signed-off-by: default avatarFabio Baltieri <fabio.baltieri@linaro.org>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent d4e4ab86
...@@ -42,7 +42,6 @@ ...@@ -42,7 +42,6 @@
#include <linux/platform_data/dma-ste-dma40.h> #include <linux/platform_data/dma-ste-dma40.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include "setup.h" #include "setup.h"
#include "devices.h" #include "devices.h"
...@@ -686,6 +685,7 @@ MACHINE_START(U8500, "ST-Ericsson MOP500 platform") ...@@ -686,6 +685,7 @@ MACHINE_START(U8500, "ST-Ericsson MOP500 platform")
.init_time = ux500_timer_init, .init_time = ux500_timer_init,
.init_machine = mop500_init_machine, .init_machine = mop500_init_machine,
.init_late = ux500_init_late, .init_late = ux500_init_late,
.restart = ux500_restart,
MACHINE_END MACHINE_END
MACHINE_START(U8520, "ST-Ericsson U8520 Platform HREFP520") MACHINE_START(U8520, "ST-Ericsson U8520 Platform HREFP520")
...@@ -695,6 +695,7 @@ MACHINE_START(U8520, "ST-Ericsson U8520 Platform HREFP520") ...@@ -695,6 +695,7 @@ MACHINE_START(U8520, "ST-Ericsson U8520 Platform HREFP520")
.init_time = ux500_timer_init, .init_time = ux500_timer_init,
.init_machine = mop500_init_machine, .init_machine = mop500_init_machine,
.init_late = ux500_init_late, .init_late = ux500_init_late,
.restart = ux500_restart,
MACHINE_END MACHINE_END
MACHINE_START(HREFV60, "ST-Ericsson U8500 Platform HREFv60+") MACHINE_START(HREFV60, "ST-Ericsson U8500 Platform HREFv60+")
...@@ -705,6 +706,7 @@ MACHINE_START(HREFV60, "ST-Ericsson U8500 Platform HREFv60+") ...@@ -705,6 +706,7 @@ MACHINE_START(HREFV60, "ST-Ericsson U8500 Platform HREFv60+")
.init_time = ux500_timer_init, .init_time = ux500_timer_init,
.init_machine = hrefv60_init_machine, .init_machine = hrefv60_init_machine,
.init_late = ux500_init_late, .init_late = ux500_init_late,
.restart = ux500_restart,
MACHINE_END MACHINE_END
MACHINE_START(SNOWBALL, "Calao Systems Snowball platform") MACHINE_START(SNOWBALL, "Calao Systems Snowball platform")
...@@ -716,4 +718,5 @@ MACHINE_START(SNOWBALL, "Calao Systems Snowball platform") ...@@ -716,4 +718,5 @@ MACHINE_START(SNOWBALL, "Calao Systems Snowball platform")
.init_time = ux500_timer_init, .init_time = ux500_timer_init,
.init_machine = snowball_init_machine, .init_machine = snowball_init_machine,
.init_late = NULL, .init_late = NULL,
.restart = ux500_restart,
MACHINE_END MACHINE_END
...@@ -26,7 +26,6 @@ ...@@ -26,7 +26,6 @@
#include <asm/pmu.h> #include <asm/pmu.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/mach/arch.h>
#include "setup.h" #include "setup.h"
#include "devices.h" #include "devices.h"
...@@ -325,6 +324,7 @@ DT_MACHINE_START(U8500_DT, "ST-Ericsson Ux5x0 platform (Device Tree Support)") ...@@ -325,6 +324,7 @@ DT_MACHINE_START(U8500_DT, "ST-Ericsson Ux5x0 platform (Device Tree Support)")
.init_machine = u8500_init_machine, .init_machine = u8500_init_machine,
.init_late = NULL, .init_late = NULL,
.dt_compat = stericsson_dt_platform_compat, .dt_compat = stericsson_dt_platform_compat,
.restart = ux500_restart,
MACHINE_END MACHINE_END
#endif #endif
...@@ -31,6 +31,14 @@ ...@@ -31,6 +31,14 @@
#include "db8500-regs.h" #include "db8500-regs.h"
#include "id.h" #include "id.h"
void ux500_restart(enum reboot_mode mode, const char *cmd)
{
local_irq_disable();
local_fiq_disable();
prcmu_system_reset(0);
}
/* /*
* FIXME: Should we set up the GPIO domain here? * FIXME: Should we set up the GPIO domain here?
* *
......
...@@ -11,10 +11,13 @@ ...@@ -11,10 +11,13 @@
#ifndef __ASM_ARCH_SETUP_H #ifndef __ASM_ARCH_SETUP_H
#define __ASM_ARCH_SETUP_H #define __ASM_ARCH_SETUP_H
#include <asm/mach/arch.h>
#include <asm/mach/time.h> #include <asm/mach/time.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/mfd/abx500/ab8500.h> #include <linux/mfd/abx500/ab8500.h>
void ux500_restart(enum reboot_mode mode, const char *cmd);
void __init ux500_map_io(void); void __init ux500_map_io(void);
extern void __init u8500_map_io(void); extern void __init u8500_map_io(void);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment