summaryrefslogtreecommitdiff
path: root/arch/arm/mach-exynos4/cpu.c
diff options
context:
space:
mode:
authorKyungmin Park <kyungmin.park@samsung.com>2011-08-19 20:25:05 +0900
committerKukjin Kim <kgene.kim@samsung.com>2011-08-19 21:21:08 +0900
commitd2edddf2b25863ec0893635662b0832f9965b543 (patch)
tree17b18e4614b22dc4a478b2d64cbd8c977f67b2cd /arch/arm/mach-exynos4/cpu.c
parent2b431ff74a850db3d5b804be3ac466b6ed7f516d (diff)
ARM: EXYNOS4: Add restart hook for proper reboot
This is required to use SWRESET. Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'arch/arm/mach-exynos4/cpu.c')
-rw-r--r--arch/arm/mach-exynos4/cpu.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/mach-exynos4/cpu.c b/arch/arm/mach-exynos4/cpu.c
index 84032d3aecd..746d6fc6d39 100644
--- a/arch/arm/mach-exynos4/cpu.c
+++ b/arch/arm/mach-exynos4/cpu.c
@@ -27,8 +27,10 @@
#include <plat/fb-core.h>
#include <plat/fimc-core.h>
#include <plat/iic-core.h>
+#include <plat/reset.h>
#include <mach/regs-irq.h>
+#include <mach/regs-pmu.h>
extern int combiner_init(unsigned int combiner_nr, void __iomem *base,
unsigned int irq_start);
@@ -127,6 +129,11 @@ static void exynos4_idle(void)
local_irq_enable();
}
+static void exynos4_sw_reset(void)
+{
+ __raw_writel(0x1, S5P_SWRESET);
+}
+
/*
* exynos4_map_io
*
@@ -240,5 +247,8 @@ int __init exynos4_init(void)
/* set idle function */
pm_idle = exynos4_idle;
+ /* set sw_reset function */
+ s5p_reset_hook = exynos4_sw_reset;
+
return sysdev_register(&exynos4_sysdev);
}