summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-spear/restart.c
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2012-12-02 15:12:47 +0100
committerArnd Bergmann <arnd@arndb.de>2013-03-12 17:39:47 +0100
commita7ed099ffc8edf2a6dccd8a22469347f5cdcfa57 (patch)
treeb56901430602574233ad23008cfd7c23babd20c3 /arch/arm/mach-spear/restart.c
parent0ec05c3e4ac6548fcab4b6a74254a22ef251e1fd (diff)
downloadlinux-a7ed099ffc8edf2a6dccd8a22469347f5cdcfa57.tar.gz
linux-a7ed099ffc8edf2a6dccd8a22469347f5cdcfa57.tar.bz2
linux-a7ed099ffc8edf2a6dccd8a22469347f5cdcfa57.zip
ARM: spear: move all files to mach-spear
There are no conflicting files between the three mach-spear* directories and plat-spear any more, so we can now move all file to a common mach-spear directory. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Diffstat (limited to 'arch/arm/mach-spear/restart.c')
-rw-r--r--arch/arm/mach-spear/restart.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/arch/arm/mach-spear/restart.c b/arch/arm/mach-spear/restart.c
new file mode 100644
index 000000000000..7d4616d5df11
--- /dev/null
+++ b/arch/arm/mach-spear/restart.c
@@ -0,0 +1,33 @@
+/*
+ * arch/arm/plat-spear/restart.c
+ *
+ * SPEAr platform specific restart functions
+ *
+ * Copyright (C) 2009 ST Microelectronics
+ * Viresh Kumar <viresh.linux@gmail.com>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2. This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+#include <linux/io.h>
+#include <linux/amba/sp810.h>
+#include <asm/system_misc.h>
+#include <mach/spear.h>
+#include <mach/generic.h>
+
+#define SPEAR13XX_SYS_SW_RES (VA_MISC_BASE + 0x204)
+void spear_restart(char mode, const char *cmd)
+{
+ if (mode == 's') {
+ /* software reset, Jump into ROM at address 0 */
+ soft_restart(0);
+ } else {
+ /* hardware reset, Use on-chip reset capability */
+#ifdef CONFIG_ARCH_SPEAR13XX
+ writel_relaxed(0x01, SPEAR13XX_SYS_SW_RES);
+#else
+ sysctl_soft_reset((void __iomem *)VA_SPEAR_SYS_CTRL_BASE);
+#endif
+ }
+}