From: Evgeny Voevodin Date: Wed, 20 Jun 2012 05:56:21 +0000 (+0400) Subject: arch/arm/mach-exynos/mach-tizen.c: Handle reset and power off. X-Git-Tag: 2.2.1_release^2~83^2~7^2~38 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ce5c80a4f971ef0251f12e1eb30680c1d7aeb55b;p=sdk%2Femulator%2Femulator-kernel.git arch/arm/mach-exynos/mach-tizen.c: Handle reset and power off. Signed-off-by: Evgeny Voevodin --- diff --git a/arch/arm/mach-exynos/mach-tizen.c b/arch/arm/mach-exynos/mach-tizen.c index e5d2a85b5b79..47672466e11d 100644 --- a/arch/arm/mach-exynos/mach-tizen.c +++ b/arch/arm/mach-exynos/mach-tizen.c @@ -58,6 +58,7 @@ #include #include +#include #include "common.h" @@ -1431,6 +1432,26 @@ static void __init tizen_parse_videomode(void) } } +void tizen_power_off(char mode, const char *cmd) +{ + unsigned long tmp; + + /* Setting Central Sequence Register for power down mode */ + + printk(KERN_EMERG "1\n"); + + tmp = __raw_readl(S5P_CENTRAL_SEQ_CONFIGURATION); + tmp &= ~S5P_CENTRAL_LOWPWR_CFG; + __raw_writel(tmp, S5P_CENTRAL_SEQ_CONFIGURATION); + + return 0; +} + +void tizen_restart(char mode, const char *cmd) +{ + __raw_writel(0x1, S5P_SWRESET); +} + static void __init tizen_machine_init(void) { tizen_sdhci_init(); @@ -1453,6 +1474,8 @@ static void __init tizen_machine_init(void) tizen_camera_init(); tizen_ehci_init(); + pm_power_off = tizen_power_off; + /* Last */ platform_add_devices(tizen_devices, ARRAY_SIZE(tizen_devices)); } @@ -1465,5 +1488,5 @@ MACHINE_START(TIZEN, "Tizen") .init_machine = tizen_machine_init, .timer = &exynos4_timer, .reserve = &tizen_reserve, - .restart = exynos4_restart, + .restart = tizen_restart, MACHINE_END