diff options
author | Vinayak Pane <vpane@nvidia.com> | 2012-06-29 13:08:36 -0700 |
---|---|---|
committer | Rohan Somvanshi <rsomvanshi@nvidia.com> | 2012-07-17 11:16:33 -0700 |
commit | 21aba41cb87afea59e1ee9aa9e1ef5ce7fd66ee8 (patch) | |
tree | ccca07795f5c51102f001a5e1d94a9ace449c3ec /arch | |
parent | 2a498649ecd1743756a42ff393cbe40795ac5180 (diff) |
arm: tegra: xmm: flashed modem start with hsic_active low
Flashed modem should start with hsic_active signal as low.
The hsic register is done at falling edge of ap_wake.
Bug 1006183
Signed-off-by: Vinayak Pane <vpane@nvidia.com>
Reviewed-on: http://git-master/r/112781
(cherry picked from commit 6437d1453d2a7694c2efa183cff135297f9f45e3)
Change-Id: I7bf355088096788b030fd861ef257a9f635c66e7
Reviewed-on: http://git-master/r/115610
Tested-by: Vinayak Pane <vpane@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Steve Lin <stlin@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-tegra/baseband-xmm-power.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/arch/arm/mach-tegra/baseband-xmm-power.c b/arch/arm/mach-tegra/baseband-xmm-power.c index 36f5fc6611f9..9482bbecc77d 100644 --- a/arch/arm/mach-tegra/baseband-xmm-power.c +++ b/arch/arm/mach-tegra/baseband-xmm-power.c @@ -1,7 +1,7 @@ /* * arch/arm/mach-tegra/baseband-xmm-power.c * - * Copyright (C) 2011 NVIDIA Corporation + * Copyright (c) 2012, NVIDIA CORPORATION. All rights reserved. * * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and @@ -78,7 +78,7 @@ static struct gpio tegra_baseband_gpios[] = { { -1, GPIOF_OUT_INIT_LOW, "BB_ON" }, { -1, GPIOF_OUT_INIT_LOW, "IPC_BB_WAKE" }, { -1, GPIOF_IN, "IPC_AP_WAKE" }, - { -1, GPIOF_OUT_INIT_HIGH, "IPC_HSIC_ACTIVE" }, + { -1, GPIOF_OUT_INIT_LOW, "IPC_HSIC_ACTIVE" }, { -1, GPIOF_IN, "IPC_HSIC_SUS_REQ" }, }; @@ -559,15 +559,14 @@ irqreturn_t xmm_power_ipc_ap_wake_irq(int irq, void *dev_id) return IRQ_HANDLED; } else if (ipc_ap_wake_state == IPC_AP_WAKE_INIT1) { if (!value) { - pr_debug("%s - IPC_AP_WAKE_INIT2" - " - wait for rising edge\n", __func__); - } else { - pr_debug("%s - IPC_AP_WAKE_INIT2" - " - got rising edge\n", __func__); + pr_debug("%s - got falling edge at INIT1\n", __func__); /* go to IPC_AP_WAKE_INIT2 state */ ipc_ap_wake_state = IPC_AP_WAKE_INIT2; queue_work(workqueue, &init2_work); - } + + } else + pr_debug("%s - IPC_AP_WAKE_INIT1" + " - got rising edge\n", __func__); return IRQ_HANDLED; } @@ -774,12 +773,11 @@ static void xmm_power_work_func(struct work_struct *work) case BBXMM_WORK_INIT_FLASH_PM_STEP1: pr_debug("BBXMM_WORK_INIT_FLASH_PM_STEP1\n"); pr_debug("%s: ipc_hsic_active -> 0\n", __func__); - gpio_set_value(pdata->modem.xmm.ipc_hsic_active, 1); + gpio_set_value(pdata->modem.xmm.ipc_hsic_active, 0); /* reset / power on sequence */ xmm_power_reset_on(pdata); /* set power status as on */ power_onoff = 1; - gpio_set_value(pdata->modem.xmm.ipc_hsic_active, 0); /* expecting init2 performs register hsic to enumerate modem * software directly. |