ARM: ux500: add restart support via prcmu
Add necessary code to restart ux500 based machines using prcmu_system_reset(). Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
Родитель
d4e4ab86bc
Коммит
bd93ec5053
|
@ -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")
|
||||||
.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")
|
||||||
.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+")
|
||||||
.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")
|
||||||
.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 @@
|
||||||
|
|
||||||
#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)")
|
||||||
.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 @@
|
||||||
#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 @@
|
||||||
#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);
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче