diff options
author | Dorian Snyder <dastin1015@gmail.com> | 2013-06-12 02:24:45 -0700 |
---|---|---|
committer | Dorian Snyder <dastin1015@gmail.com> | 2013-06-20 00:06:04 -0700 |
commit | 4b2308ce699b9c599dd6e6acf57ac11f483381d9 (patch) | |
tree | 4c31179b06d094887b1c8ca70264cf8f184a5981 /arch/arm/mach-exynos/sec-reboot.c | |
parent | 855d6a6c1f7c54ef073caac3f6c5f9b1ed72eb4d (diff) | |
download | kernel_samsung_smdk4412-4b2308ce699b9c599dd6e6acf57ac11f483381d9.zip kernel_samsung_smdk4412-4b2308ce699b9c599dd6e6acf57ac11f483381d9.tar.gz kernel_samsung_smdk4412-4b2308ce699b9c599dd6e6acf57ac11f483381d9.tar.bz2 |
d710: initial support for the Epic 4G Touch (SPH-D710)
Change-Id: Iafbd9fb45253b02d539ac0ba114f57b3bf9eeed4
Diffstat (limited to 'arch/arm/mach-exynos/sec-reboot.c')
-rw-r--r-- | arch/arm/mach-exynos/sec-reboot.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/arch/arm/mach-exynos/sec-reboot.c b/arch/arm/mach-exynos/sec-reboot.c index 593624b..b3c0b0a 100644 --- a/arch/arm/mach-exynos/sec-reboot.c +++ b/arch/arm/mach-exynos/sec-reboot.c @@ -8,6 +8,9 @@ /* charger cable state */ extern bool is_cable_attached; +#ifdef CONFIG_MACH_U1_NA_SPR +static void cdma_wimax_chk_modem_pwroff(void); +#endif static void sec_power_off(void) { int poweroff_try = 0; @@ -17,6 +20,9 @@ static void sec_power_off(void) pr_emerg("%s : cable state=%d\n", __func__, is_cable_attached); while (1) { +#ifdef CONFIG_MACH_U1_NA_SPR + cdma_wimax_chk_modem_pwroff(); +#endif /* Check reboot charging */ if (is_cable_attached || (poweroff_try >= 5)) { pr_emerg @@ -70,6 +76,34 @@ static void sec_power_off(void) #define REBOOT_SET_SWSEL 0x000e0000 #define REBOOT_SET_SUD 0x000f0000 +#ifdef CONFIG_MACH_U1_NA_SPR +static void cdma_wimax_chk_modem_pwroff(void) +{ + int phone_wait_cnt = 0; + + pr_emerg("%s\n", __func__); + + /* phone power off */ + gpio_direction_output(GPIO_QSC_PHONE_ON, GPIO_LEVEL_LOW); + + /* confirm phone off */ + while (1) { + if (gpio_get_value(GPIO_QSC_PHONE_ACTIVE)) { + printk(KERN_ALERT"Try to Turn Phone Off by CP_RST\n"); + gpio_set_value(GPIO_QSC_PHONE_RST, 0); + if (phone_wait_cnt > 10) { + pr_emerg("%s: PHONE OFF Failed\n", __func__); + break; + } + phone_wait_cnt++; + mdelay(100); + } else { + pr_emerg("%s: PHONE OFF Success\n", __func__); + break; + } + } +} +#endif static void sec_reboot(char str, const char *cmd) { local_irq_disable(); |