ARM: 7265/1: restart: S3C24XX: use new restart hook

Hook these platforms restart code into the new restart hook rather
than using arch_reset().
And adds local header file, common.h in arch/arm/mach-s3c2410/ and
arch/arm/mach-s3c2440/ directories.

Cc: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
Kukjin Kim 2012-01-03 14:02:03 +01:00 committed by Russell King
parent 5753897591
commit b27b072791
23 changed files with 113 additions and 17 deletions

View File

@ -0,0 +1,17 @@
/*
* Copyright (c) 2011 Samsung Electronics Co., Ltd.
* http://www.samsung.com
*
* Common Header for S3C2410 machines
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __ARCH_ARM_MACH_S3C2410_COMMON_H
#define __ARCH_ARM_MACH_S3C2410_COMMON_H
void s3c2410_restart(char mode, const char *cmd);
#endif /* __ARCH_ARM_MACH_S3C2410_COMMON_H */

View File

@ -10,18 +10,6 @@
* published by the Free Software Foundation. * published by the Free Software Foundation.
*/ */
#include <mach/hardware.h> static void arch_reset(char mode, const char *cmd)
#include <plat/watchdog-reset.h>
static void
arch_reset(char mode, const char *cmd)
{ {
if (mode == 's') {
soft_restart(0);
}
arch_wdt_reset();
/* we'll take a jump through zero as a poor second */
soft_restart(0);
} }

View File

@ -63,6 +63,8 @@
#include <linux/mtd/map.h> #include <linux/mtd/map.h>
#include <linux/mtd/physmap.h> #include <linux/mtd/physmap.h>
#include "common.h"
static struct resource amlm5900_nor_resource = { static struct resource amlm5900_nor_resource = {
.start = 0x00000000, .start = 0x00000000,
.end = 0x01000000 - 1, .end = 0x01000000 - 1,
@ -241,4 +243,5 @@ MACHINE_START(AML_M5900, "AML_M5900")
.init_irq = s3c24xx_init_irq, .init_irq = s3c24xx_init_irq,
.init_machine = amlm5900_init, .init_machine = amlm5900_init,
.timer = &s3c24xx_timer, .timer = &s3c24xx_timer,
.restart = s3c2410_restart,
MACHINE_END MACHINE_END

View File

@ -66,6 +66,7 @@
#include "usb-simtec.h" #include "usb-simtec.h"
#include "nor-simtec.h" #include "nor-simtec.h"
#include "common.h"
#define COPYRIGHT ", Copyright 2004-2008 Simtec Electronics" #define COPYRIGHT ", Copyright 2004-2008 Simtec Electronics"
@ -662,4 +663,5 @@ MACHINE_START(BAST, "Simtec-BAST")
.init_irq = s3c24xx_init_irq, .init_irq = s3c24xx_init_irq,
.init_machine = bast_init, .init_machine = bast_init,
.timer = &s3c24xx_timer, .timer = &s3c24xx_timer,
.restart = s3c2410_restart,
MACHINE_END MACHINE_END

View File

@ -70,6 +70,8 @@
#include <sound/uda1380.h> #include <sound/uda1380.h>
#include "common.h"
#define H1940_LATCH ((void __force __iomem *)0xF8000000) #define H1940_LATCH ((void __force __iomem *)0xF8000000)
#define H1940_PA_LATCH S3C2410_CS2 #define H1940_PA_LATCH S3C2410_CS2
@ -751,4 +753,5 @@ MACHINE_START(H1940, "IPAQ-H1940")
.init_irq = h1940_init_irq, .init_irq = h1940_init_irq,
.init_machine = h1940_init, .init_machine = h1940_init,
.timer = &s3c24xx_timer, .timer = &s3c24xx_timer,
.restart = s3c2410_restart,
MACHINE_END MACHINE_END

View File

@ -51,6 +51,8 @@
#include <plat/s3c2410.h> #include <plat/s3c2410.h>
#include <plat/udc.h> #include <plat/udc.h>
#include "common.h"
static struct map_desc n30_iodesc[] __initdata = { static struct map_desc n30_iodesc[] __initdata = {
/* nothing here yet */ /* nothing here yet */
}; };
@ -591,6 +593,7 @@ MACHINE_START(N30, "Acer-N30")
.init_machine = n30_init, .init_machine = n30_init,
.init_irq = s3c24xx_init_irq, .init_irq = s3c24xx_init_irq,
.map_io = n30_map_io, .map_io = n30_map_io,
.restart = s3c2410_restart,
MACHINE_END MACHINE_END
MACHINE_START(N35, "Acer-N35") MACHINE_START(N35, "Acer-N35")
@ -601,4 +604,5 @@ MACHINE_START(N35, "Acer-N35")
.init_machine = n30_init, .init_machine = n30_init,
.init_irq = s3c24xx_init_irq, .init_irq = s3c24xx_init_irq,
.map_io = n30_map_io, .map_io = n30_map_io,
.restart = s3c2410_restart,
MACHINE_END MACHINE_END

View File

@ -38,6 +38,8 @@
#include <plat/iic.h> #include <plat/iic.h>
#include <plat/cpu.h> #include <plat/cpu.h>
#include "common.h"
static struct map_desc otom11_iodesc[] __initdata = { static struct map_desc otom11_iodesc[] __initdata = {
/* Device area */ /* Device area */
{ (u32)OTOM_VA_CS8900A_BASE, OTOM_PA_CS8900A_BASE, SZ_16M, MT_DEVICE }, { (u32)OTOM_VA_CS8900A_BASE, OTOM_PA_CS8900A_BASE, SZ_16M, MT_DEVICE },
@ -121,4 +123,5 @@ MACHINE_START(OTOM, "Nex Vision - Otom 1.1")
.init_machine = otom11_init, .init_machine = otom11_init,
.init_irq = s3c24xx_init_irq, .init_irq = s3c24xx_init_irq,
.timer = &s3c24xx_timer, .timer = &s3c24xx_timer,
.restart = s3c2410_restart,
MACHINE_END MACHINE_END

View File

@ -62,6 +62,8 @@
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/pm.h> #include <plat/pm.h>
#include "common.h"
static struct map_desc qt2410_iodesc[] __initdata = { static struct map_desc qt2410_iodesc[] __initdata = {
{ 0xe0000000, __phys_to_pfn(S3C2410_CS3+0x01000000), SZ_1M, MT_DEVICE } { 0xe0000000, __phys_to_pfn(S3C2410_CS3+0x01000000), SZ_1M, MT_DEVICE }
}; };
@ -350,6 +352,5 @@ MACHINE_START(QT2410, "QT2410")
.init_irq = s3c24xx_init_irq, .init_irq = s3c24xx_init_irq,
.init_machine = qt2410_machine_init, .init_machine = qt2410_machine_init,
.timer = &s3c24xx_timer, .timer = &s3c24xx_timer,
.restart = s3c2410_restart,
MACHINE_END MACHINE_END

View File

@ -54,6 +54,8 @@
#include <plat/common-smdk.h> #include <plat/common-smdk.h>
#include "common.h"
static struct map_desc smdk2410_iodesc[] __initdata = { static struct map_desc smdk2410_iodesc[] __initdata = {
/* nothing here yet */ /* nothing here yet */
}; };
@ -116,6 +118,5 @@ MACHINE_START(SMDK2410, "SMDK2410") /* @TODO: request a new identifier and switc
.init_irq = s3c24xx_init_irq, .init_irq = s3c24xx_init_irq,
.init_machine = smdk2410_init, .init_machine = smdk2410_init,
.timer = &s3c24xx_timer, .timer = &s3c24xx_timer,
.restart = s3c2410_restart,
MACHINE_END MACHINE_END

View File

@ -54,6 +54,8 @@
#include <linux/mtd/map.h> #include <linux/mtd/map.h>
#include <linux/mtd/physmap.h> #include <linux/mtd/physmap.h>
#include "common.h"
static struct resource tct_hammer_nor_resource = { static struct resource tct_hammer_nor_resource = {
.start = 0x00000000, .start = 0x00000000,
.end = 0x01000000 - 1, .end = 0x01000000 - 1,
@ -151,4 +153,5 @@ MACHINE_START(TCT_HAMMER, "TCT_HAMMER")
.init_irq = s3c24xx_init_irq, .init_irq = s3c24xx_init_irq,
.init_machine = tct_hammer_init, .init_machine = tct_hammer_init,
.timer = &s3c24xx_timer, .timer = &s3c24xx_timer,
.restart = s3c2410_restart,
MACHINE_END MACHINE_END

View File

@ -53,6 +53,7 @@
#include "usb-simtec.h" #include "usb-simtec.h"
#include "nor-simtec.h" #include "nor-simtec.h"
#include "common.h"
/* macros for virtual address mods for the io space entries */ /* macros for virtual address mods for the io space entries */
#define VA_C5(item) ((unsigned long)(item) + BAST_VAM_CS5) #define VA_C5(item) ((unsigned long)(item) + BAST_VAM_CS5)
@ -405,4 +406,5 @@ MACHINE_START(VR1000, "Thorcom-VR1000")
.init_machine = vr1000_init, .init_machine = vr1000_init,
.init_irq = s3c24xx_init_irq, .init_irq = s3c24xx_init_irq,
.timer = &s3c24xx_timer, .timer = &s3c24xx_timer,
.restart = s3c2410_restart,
MACHINE_END MACHINE_END

View File

@ -42,6 +42,7 @@
#include <plat/clock.h> #include <plat/clock.h>
#include <plat/pll.h> #include <plat/pll.h>
#include <plat/pm.h> #include <plat/pm.h>
#include <plat/watchdog-reset.h>
#include <plat/gpio-core.h> #include <plat/gpio-core.h>
#include <plat/gpio-cfg.h> #include <plat/gpio-cfg.h>
@ -183,3 +184,15 @@ int __init s3c2410a_init(void)
s3c2410_sysdev.cls = &s3c2410a_sysclass; s3c2410_sysdev.cls = &s3c2410a_sysclass;
return s3c2410_init(); return s3c2410_init();
} }
void s3c2410_restart(char mode, const char *cmd)
{
if (mode == 's') {
soft_restart(0);
}
arch_wdt_reset();
/* we'll take a jump through zero as a poor second */
soft_restart(0);
}

View File

@ -0,0 +1,17 @@
/*
* Copyright (c) 2011 Samsung Electronics Co., Ltd.
* http://www.samsung.com
*
* Common Header for S3C2440 machines
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __ARCH_ARM_MACH_S3C2440_COMMON_H
#define __ARCH_ARM_MACH_S3C2440_COMMON_H
void s3c2440_restart(char mode, const char *cmd);
#endif /* __ARCH_ARM_MACH_S3C2440_COMMON_H */

View File

@ -55,6 +55,8 @@
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/audio-simtec.h> #include <plat/audio-simtec.h>
#include "common.h"
#define COPYRIGHT ", Copyright 2005-2009 Simtec Electronics" #define COPYRIGHT ", Copyright 2005-2009 Simtec Electronics"
static struct map_desc anubis_iodesc[] __initdata = { static struct map_desc anubis_iodesc[] __initdata = {
@ -503,4 +505,5 @@ MACHINE_START(ANUBIS, "Simtec-Anubis")
.init_machine = anubis_init, .init_machine = anubis_init,
.init_irq = s3c24xx_init_irq, .init_irq = s3c24xx_init_irq,
.timer = &s3c24xx_timer, .timer = &s3c24xx_timer,
.restart = s3c2440_restart,
MACHINE_END MACHINE_END

View File

@ -49,6 +49,8 @@
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/mci.h> #include <plat/mci.h>
#include "common.h"
static struct map_desc at2440evb_iodesc[] __initdata = { static struct map_desc at2440evb_iodesc[] __initdata = {
/* Nothing here */ /* Nothing here */
}; };
@ -238,4 +240,5 @@ MACHINE_START(AT2440EVB, "AT2440EVB")
.init_machine = at2440evb_init, .init_machine = at2440evb_init,
.init_irq = s3c24xx_init_irq, .init_irq = s3c24xx_init_irq,
.timer = &s3c24xx_timer, .timer = &s3c24xx_timer,
.restart = s3c2440_restart,
MACHINE_END MACHINE_END

View File

@ -90,6 +90,7 @@
#include <plat/iic.h> #include <plat/iic.h>
#include <plat/ts.h> #include <plat/ts.h>
#include "common.h"
static struct pcf50633 *gta02_pcf; static struct pcf50633 *gta02_pcf;
@ -600,4 +601,5 @@ MACHINE_START(NEO1973_GTA02, "GTA02")
.init_irq = s3c24xx_init_irq, .init_irq = s3c24xx_init_irq,
.init_machine = gta02_machine_init, .init_machine = gta02_machine_init,
.timer = &s3c24xx_timer, .timer = &s3c24xx_timer,
.restart = s3c2440_restart,
MACHINE_END MACHINE_END

View File

@ -60,6 +60,8 @@
#include <sound/s3c24xx_uda134x.h> #include <sound/s3c24xx_uda134x.h>
#include "common.h"
#define MACH_MINI2440_DM9K_BASE (S3C2410_CS4 + 0x300) #define MACH_MINI2440_DM9K_BASE (S3C2410_CS4 + 0x300)
static struct map_desc mini2440_iodesc[] __initdata = { static struct map_desc mini2440_iodesc[] __initdata = {
@ -681,4 +683,5 @@ MACHINE_START(MINI2440, "MINI2440")
.init_machine = mini2440_init, .init_machine = mini2440_init,
.init_irq = s3c24xx_init_irq, .init_irq = s3c24xx_init_irq,
.timer = &s3c24xx_timer, .timer = &s3c24xx_timer,
.restart = s3c2440_restart,
MACHINE_END MACHINE_END

View File

@ -47,6 +47,8 @@
#include <plat/devs.h> #include <plat/devs.h>
#include <plat/cpu.h> #include <plat/cpu.h>
#include "common.h"
static struct map_desc nexcoder_iodesc[] __initdata = { static struct map_desc nexcoder_iodesc[] __initdata = {
/* nothing here yet */ /* nothing here yet */
}; };
@ -156,4 +158,5 @@ MACHINE_START(NEXCODER_2440, "NexVision - Nexcoder 2440")
.init_machine = nexcoder_init, .init_machine = nexcoder_init,
.init_irq = s3c24xx_init_irq, .init_irq = s3c24xx_init_irq,
.timer = &s3c24xx_timer, .timer = &s3c24xx_timer,
.restart = s3c2440_restart,
MACHINE_END MACHINE_END

View File

@ -54,6 +54,8 @@
#include <plat/devs.h> #include <plat/devs.h>
#include <plat/cpu.h> #include <plat/cpu.h>
#include "common.h"
/* onboard perihperal map */ /* onboard perihperal map */
static struct map_desc osiris_iodesc[] __initdata = { static struct map_desc osiris_iodesc[] __initdata = {
@ -452,4 +454,5 @@ MACHINE_START(OSIRIS, "Simtec-OSIRIS")
.init_irq = s3c24xx_init_irq, .init_irq = s3c24xx_init_irq,
.init_machine = osiris_init, .init_machine = osiris_init,
.timer = &s3c24xx_timer, .timer = &s3c24xx_timer,
.restart = s3c2440_restart,
MACHINE_END MACHINE_END

View File

@ -62,6 +62,8 @@
#include <sound/uda1380.h> #include <sound/uda1380.h>
#include "common.h"
#define LCD_PWM_PERIOD 192960 #define LCD_PWM_PERIOD 192960
#define LCD_PWM_DUTY 127353 #define LCD_PWM_DUTY 127353
@ -832,4 +834,5 @@ MACHINE_START(RX1950, "HP iPAQ RX1950")
.init_irq = s3c24xx_init_irq, .init_irq = s3c24xx_init_irq,
.init_machine = rx1950_init_machine, .init_machine = rx1950_init_machine,
.timer = &s3c24xx_timer, .timer = &s3c24xx_timer,
.restart = s3c2440_restart,
MACHINE_END MACHINE_END

View File

@ -51,6 +51,8 @@
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/pm.h> #include <plat/pm.h>
#include "common.h"
static struct map_desc rx3715_iodesc[] __initdata = { static struct map_desc rx3715_iodesc[] __initdata = {
/* dump ISA space somewhere unused */ /* dump ISA space somewhere unused */
@ -224,4 +226,5 @@ MACHINE_START(RX3715, "IPAQ-RX3715")
.init_irq = rx3715_init_irq, .init_irq = rx3715_init_irq,
.init_machine = rx3715_init_machine, .init_machine = rx3715_init_machine,
.timer = &s3c24xx_timer, .timer = &s3c24xx_timer,
.restart = s3c2440_restart,
MACHINE_END MACHINE_END

View File

@ -47,6 +47,8 @@
#include <plat/common-smdk.h> #include <plat/common-smdk.h>
#include "common.h"
static struct map_desc smdk2440_iodesc[] __initdata = { static struct map_desc smdk2440_iodesc[] __initdata = {
/* ISA IO Space map (memory space selected by A24) */ /* ISA IO Space map (memory space selected by A24) */
@ -181,4 +183,5 @@ MACHINE_START(S3C2440, "SMDK2440")
.map_io = smdk2440_map_io, .map_io = smdk2440_map_io,
.init_machine = smdk2440_machine_init, .init_machine = smdk2440_machine_init,
.timer = &s3c24xx_timer, .timer = &s3c24xx_timer,
.restart = s3c2440_restart,
MACHINE_END MACHINE_END

View File

@ -35,6 +35,7 @@
#include <plat/cpu.h> #include <plat/cpu.h>
#include <plat/s3c244x.h> #include <plat/s3c244x.h>
#include <plat/pm.h> #include <plat/pm.h>
#include <plat/watchdog-reset.h>
#include <plat/gpio-core.h> #include <plat/gpio-core.h>
#include <plat/gpio-cfg.h> #include <plat/gpio-cfg.h>
@ -73,3 +74,15 @@ void __init s3c2440_map_io(void)
s3c24xx_gpiocfg_default.set_pull = s3c24xx_gpio_setpull_1up; s3c24xx_gpiocfg_default.set_pull = s3c24xx_gpio_setpull_1up;
s3c24xx_gpiocfg_default.get_pull = s3c24xx_gpio_getpull_1up; s3c24xx_gpiocfg_default.get_pull = s3c24xx_gpio_getpull_1up;
} }
void s3c2440_restart(char mode, const char *cmd)
{
if (mode == 's') {
soft_restart(0);
}
arch_wdt_reset();
/* we'll take a jump through zero as a poor second */
soft_restart(0);
}