]> git.openfabrics.org - ~shefty/rdma-dev.git/commitdiff
ARM: 7254/1: restart: S3C24XX: move SWRST based S3C platforms to
authorHeiko Stuebner <heiko@sntech.de>
Thu, 22 Dec 2011 22:37:44 +0000 (23:37 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 5 Jan 2012 12:57:18 +0000 (12:57 +0000)
S3C2412/S3C2416/S3C2443 use a special register to signal the reset to
the processor and used therefore the s3c24xx_reset_hook mechanism in the
s3c24xx-specific arch reset.

This patch introduces restart functions for these architectures,
moves the board files to them and removes the s3c24xx_reset_hook
infrastructure, as all users are gone.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
14 files changed:
arch/arm/mach-s3c2410/include/mach/reset.h [deleted file]
arch/arm/mach-s3c2410/include/mach/system-reset.h
arch/arm/mach-s3c2410/include/mach/system.h
arch/arm/mach-s3c2412/mach-jive.c
arch/arm/mach-s3c2412/mach-smdk2413.c
arch/arm/mach-s3c2412/mach-vstms.c
arch/arm/mach-s3c2412/s3c2412.c
arch/arm/mach-s3c2416/mach-smdk2416.c
arch/arm/mach-s3c2416/s3c2416.c
arch/arm/mach-s3c2443/mach-smdk2443.c
arch/arm/mach-s3c2443/s3c2443.c
arch/arm/plat-samsung/include/plat/s3c2412.h
arch/arm/plat-samsung/include/plat/s3c2416.h
arch/arm/plat-samsung/include/plat/s3c2443.h

diff --git a/arch/arm/mach-s3c2410/include/mach/reset.h b/arch/arm/mach-s3c2410/include/mach/reset.h
deleted file mode 100644 (file)
index f8c9387..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/* arch/arm/mach-s3c2410/include/mach/reset.h
- *
- * Copyright (c) 2007 Simtec Electronics
- *     Ben Dooks <ben@simtec.co.uk>
- *     http://armlinux.simtec.co.uk/
- *
- * 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.
- *
- * S3C2410 CPU reset controls
-*/
-
-#ifndef __ASM_ARCH_RESET_H
-#define __ASM_ARCH_RESET_H __FILE__
-
-/* This allows the over-ride of the default reset code
-*/
-
-extern void (*s3c24xx_reset_hook)(void);
-
-#endif /* __ASM_ARCH_RESET_H */
index 913893d446502981e6e268b4dc5ac3e9536b3109..1e495f35ddd2bdb19806cd679345ebfdcf7e6e8c 100644 (file)
@@ -13,8 +13,6 @@
 #include <mach/hardware.h>
 #include <plat/watchdog-reset.h>
 
-extern void (*s3c24xx_reset_hook)(void);
-
 static void
 arch_reset(char mode, const char *cmd)
 {
@@ -22,9 +20,6 @@ arch_reset(char mode, const char *cmd)
                soft_restart(0);
        }
 
-       if (s3c24xx_reset_hook)
-               s3c24xx_reset_hook();
-
        arch_wdt_reset();
 
        /* we'll take a jump through zero as a poor second */
index a8cbca6701e54faf00e940b5db0c1ed1fbc8fd21..eef8f24628e3c418af84e1a5be9914f800dda593 100644 (file)
 
 #include <mach/map.h>
 #include <mach/idle.h>
-#include <mach/reset.h>
 
 #include <mach/regs-clock.h>
 
 void (*s3c24xx_idle)(void);
-void (*s3c24xx_reset_hook)(void);
 
 void s3c24xx_default_idle(void)
 {
index 286ef1738c619214ac2c98e7be0740ba805018e0..ae73ba34ecc6df1b72e92c36c96df6eb6eafdad9 100644 (file)
@@ -48,6 +48,7 @@
 #include <linux/mtd/nand_ecc.h>
 #include <linux/mtd/partitions.h>
 
+#include <plat/s3c2412.h>
 #include <plat/gpio-cfg.h>
 #include <plat/clock.h>
 #include <plat/devs.h>
@@ -661,4 +662,5 @@ MACHINE_START(JIVE, "JIVE")
        .map_io         = jive_map_io,
        .init_machine   = jive_machine_init,
        .timer          = &s3c24xx_timer,
+       .restart        = s3c2412_restart,
 MACHINE_END
index f1eec1b54932cefc330729c6f047432282bb764f..b11451b853d88969b9f0382fa11cf91d197aa6df 100644 (file)
@@ -134,6 +134,7 @@ MACHINE_START(S3C2413, "S3C2413")
        .map_io         = smdk2413_map_io,
        .init_machine   = smdk2413_machine_init,
        .timer          = &s3c24xx_timer,
+       .restart        = s3c2412_restart,
 MACHINE_END
 
 MACHINE_START(SMDK2412, "SMDK2412")
@@ -145,6 +146,7 @@ MACHINE_START(SMDK2412, "SMDK2412")
        .map_io         = smdk2413_map_io,
        .init_machine   = smdk2413_machine_init,
        .timer          = &s3c24xx_timer,
+       .restart        = s3c2412_restart,
 MACHINE_END
 
 MACHINE_START(SMDK2413, "SMDK2413")
@@ -156,4 +158,5 @@ MACHINE_START(SMDK2413, "SMDK2413")
        .map_io         = smdk2413_map_io,
        .init_machine   = smdk2413_machine_init,
        .timer          = &s3c24xx_timer,
+       .restart        = s3c2412_restart,
 MACHINE_END
index 1bbb1ef5f4fffe241d0822fa30e876233524ba2f..94bfaa1fb148c6995e9937c27fb280c8d4b712f1 100644 (file)
@@ -162,4 +162,5 @@ MACHINE_START(VSTMS, "VSTMS")
        .init_machine   = vstms_init,
        .map_io         = vstms_map_io,
        .timer          = &s3c24xx_timer,
+       .restart        = s3c2412_restart,
 MACHINE_END
index 57a1e01e4e504df85896d275b244782c7e6644e3..867ce2e269f692bc1b86a116a9ebcccce283dd76 100644 (file)
@@ -32,7 +32,6 @@
 #include <asm/proc-fns.h>
 #include <asm/irq.h>
 
-#include <mach/reset.h>
 #include <mach/idle.h>
 
 #include <plat/cpu-freq.h>
@@ -131,8 +130,11 @@ static void s3c2412_idle(void)
        cpu_do_idle();
 }
 
-static void s3c2412_hard_reset(void)
+void s3c2412_restart(char mode, const char *cmd)
 {
+       if (mode == 's')
+               soft_restart(0);
+
        /* errata "Watch-dog/Software Reset Problem" specifies that
         * this reset must be done with the SYSCLK sourced from
         * EXTCLK instead of FOUT to avoid a glitch in the reset
@@ -164,10 +166,6 @@ void __init s3c2412_map_io(void)
 
        s3c24xx_idle = s3c2412_idle;
 
-       /* set custom reset hook */
-
-       s3c24xx_reset_hook = s3c2412_hard_reset;
-
        /* register our io-tables */
 
        iotable_init(s3c2412_iodesc, ARRAY_SIZE(s3c2412_iodesc));
index a9eee531ca76520d2c1cd6ce59ae82bf0dc8aa8d..66b71736609c6860009fa5185c983853f5f1a5ef 100644 (file)
@@ -251,4 +251,5 @@ MACHINE_START(SMDK2416, "SMDK2416")
        .map_io         = smdk2416_map_io,
        .init_machine   = smdk2416_machine_init,
        .timer          = &s3c24xx_timer,
+       .restart        = s3c2416_restart,
 MACHINE_END
index ee214bc83c8352a0e520401a5013dd01fe13a04f..46062232bbc784484382b50f3187317b6ef85e79 100644 (file)
@@ -44,7 +44,6 @@
 #include <asm/proc-fns.h>
 #include <asm/irq.h>
 
-#include <mach/reset.h>
 #include <mach/idle.h>
 #include <mach/regs-s3c2443-clock.h>
 
@@ -76,8 +75,11 @@ static struct sys_device s3c2416_sysdev = {
        .cls            = &s3c2416_sysclass,
 };
 
-static void s3c2416_hard_reset(void)
+void s3c2416_restart(char mode, const char *cmd)
 {
+       if (mode == 's')
+               soft_restart(0);
+
        __raw_writel(S3C2443_SWRST_RESET, S3C2443_SWRST);
 }
 
@@ -85,7 +87,6 @@ int __init s3c2416_init(void)
 {
        printk(KERN_INFO "S3C2416: Initializing architecture\n");
 
-       s3c24xx_reset_hook = s3c2416_hard_reset;
        /* s3c24xx_idle = s3c2416_idle; */
 
        /* change WDT IRQ number */
index bec107e00441085102dbd5698657189fc38d82da..20923695622208b80ebde70561d76a894034a154 100644 (file)
@@ -145,4 +145,5 @@ MACHINE_START(SMDK2443, "SMDK2443")
        .map_io         = smdk2443_map_io,
        .init_machine   = smdk2443_machine_init,
        .timer          = &s3c24xx_timer,
+       .restart        = s3c2443_restart,
 MACHINE_END
index a22b771b0f36c4c05ab9429fab4aea4ad14f4729..4568ded338d0a67f76328e7dde1aa0752893e385 100644 (file)
@@ -31,7 +31,6 @@
 #include <asm/irq.h>
 
 #include <mach/regs-s3c2443-clock.h>
-#include <mach/reset.h>
 
 #include <plat/gpio-core.h>
 #include <plat/gpio-cfg.h>
@@ -57,8 +56,11 @@ static struct sys_device s3c2443_sysdev = {
        .cls            = &s3c2443_sysclass,
 };
 
-static void s3c2443_hard_reset(void)
+void s3c2443_restart(char mode, const char *cmd)
 {
+       if (mode == 's')
+               soft_restart(0);
+
        __raw_writel(S3C2443_SWRST_RESET, S3C2443_SWRST);
 }
 
@@ -66,8 +68,6 @@ int __init s3c2443_init(void)
 {
        printk("S3C2443: Initialising architecture\n");
 
-       s3c24xx_reset_hook = s3c2443_hard_reset;
-
        s3c_nand_setname("s3c2412-nand");
        s3c_fb_setname("s3c2443-fb");
 
index 5bcfd143ba16465fe478d24246d292da09c4302d..cbae50ddacc8ebc73c030a1daf34f6b648df15ab 100644 (file)
@@ -21,9 +21,12 @@ extern void s3c2412_init_uarts(struct s3c2410_uartcfg *cfg, int no);
 extern void s3c2412_init_clocks(int xtal);
 
 extern  int s3c2412_baseclk_add(void);
+
+extern void s3c2412_restart(char mode, const char *cmd);
 #else
 #define s3c2412_init_clocks NULL
 #define s3c2412_init_uarts NULL
 #define s3c2412_map_io NULL
 #define s3c2412_init NULL
+#define s3c2412_restart NULL
 #endif
index a764f8503f52ccbdc59d5a5d32769a2116cf77ca..de2b5bdc5ebd860a3e65020c6c63dfc75fb97dbb 100644 (file)
@@ -23,9 +23,11 @@ extern void s3c2416_init_clocks(int xtal);
 
 extern  int s3c2416_baseclk_add(void);
 
+extern void s3c2416_restart(char mode, const char *cmd);
 #else
 #define s3c2416_init_clocks NULL
 #define s3c2416_init_uarts NULL
 #define s3c2416_map_io NULL
 #define s3c2416_init NULL
+#define s3c2416_restart NULL
 #endif
index 7fae1a050694b98e12f2c809359c7989c33149f0..dce05b43d51c4e89c542aa2475167e14d915a814 100644 (file)
@@ -24,11 +24,13 @@ extern void s3c2443_init_clocks(int xtal);
 
 extern  int s3c2443_baseclk_add(void);
 
+extern void s3c2443_restart(char mode, const char *cmd);
 #else
 #define s3c2443_init_clocks NULL
 #define s3c2443_init_uarts NULL
 #define s3c2443_map_io NULL
 #define s3c2443_init NULL
+#define s3c2443_restart NULL
 #endif
 
 /* common code used by s3c2443 and others.