diff options
author | Seongho Joo <sjoo@nvidia.com> | 2012-02-25 12:28:14 +0900 |
---|---|---|
committer | Simone Willett <swillett@nvidia.com> | 2012-04-16 14:16:56 -0700 |
commit | ebfeba91c85ee4d6559a8549d8ce7f41dc2e72d2 (patch) | |
tree | 3cfed02d6c494a6713ee22c2b33bc233fb71d081 /arch/arm/mach-tegra/baseband-xmm-power.c | |
parent | 13a7e5e3e7fc0e64c2f5b38767049f9864474b67 (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.c | 12 |
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); } |