summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/baseband-xmm-power.c
diff options
context:
space:
mode:
authorSeongho Joo <sjoo@nvidia.com>2012-02-25 12:28:14 +0900
committerSimone Willett <swillett@nvidia.com>2012-04-16 14:16:56 -0700
commitebfeba91c85ee4d6559a8549d8ce7f41dc2e72d2 (patch)
tree3cfed02d6c494a6713ee22c2b33bc233fb71d081 /arch/arm/mach-tegra/baseband-xmm-power.c
parent13a7e5e3e7fc0e64c2f5b38767049f9864474b67 (diff)
arm: tegra: xmm: modify CP power sequence
modify CP power sequence timing based on modem vendor spec information. > 20 ms : REST low and ON low > 400 us : RESET high and ON low > 60 us : RESEET high and ON high Bug 943280 Signed-off-by: Seongho Joo <sjoo@nvidia.com> Reviewed-on: http://git-master/r/85964 (cherry picked from commit 8a6e64228f11d46f502c654bd9a1b508af93a67b) Change-Id: I01f4fae493627d46707ebfcad676fc0a25b5258d Reviewed-on: http://git-master/r/96453 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/baseband-xmm-power.c')
-rw-r--r--arch/arm/mach-tegra/baseband-xmm-power.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/arch/arm/mach-tegra/baseband-xmm-power.c b/arch/arm/mach-tegra/baseband-xmm-power.c
index 1d5fc1ef7316..21f62a0849c5 100644
--- a/arch/arm/mach-tegra/baseband-xmm-power.c
+++ b/arch/arm/mach-tegra/baseband-xmm-power.c
@@ -118,15 +118,12 @@ static int baseband_modem_power_on(struct baseband_power_platform_data *data)
gpio_set_value(baseband_power_driver_data->
modem.xmm.ipc_hsic_active, 1);
- /* wait 20 ms */
- mdelay(20);
-
/* reset / power on sequence */
- mdelay(40);
+ msleep(40);
gpio_set_value(data->modem.xmm.bb_rst, 1);
mdelay(1);
gpio_set_value(data->modem.xmm.bb_on, 1);
- udelay(40);
+ udelay(70);
gpio_set_value(data->modem.xmm.bb_on, 0);
return 0;
@@ -645,11 +642,12 @@ static void baseband_xmm_power_L2_resume_work(struct work_struct *work)
static void baseband_xmm_power_reset_on(void)
{
/* reset / power on sequence */
- mdelay(40);
+ gpio_set_value(baseband_power_driver_data->modem.xmm.bb_rst, 0);
+ msleep(40);
gpio_set_value(baseband_power_driver_data->modem.xmm.bb_rst, 1);
mdelay(1);
gpio_set_value(baseband_power_driver_data->modem.xmm.bb_on, 1);
- udelay(40);
+ udelay(70);
gpio_set_value(baseband_power_driver_data->modem.xmm.bb_on, 0);
}