summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-cardhu.c
diff options
context:
space:
mode:
authorLaxman Dewangan <ldewangan@nvidia.com>2011-07-14 14:38:02 +0530
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:48:30 -0800
commitc245eea38509ef54e802ab9ef4ff429bbf69ce03 (patch)
tree6b2cf669575e8cc5d6c640139e9f7b55a6e74e77 /arch/arm/mach-tegra/board-cardhu.c
parent66874fbae7627227800424c2a426e0f7287156d7 (diff)
arm: tegra: cardhu: Reset Modem during init
Resetting the modem during the kernel boot for E1291-A04. bug 817238 Original-Change-Id: Id0862d39306b87a04a28abd205455d97dd05109e Reviewed-on: http://git-master/r/38693 Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com> Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com> Rebase-Id: Rf42e80598a66f46cd0ef0e2bfacca3917eb86c45
Diffstat (limited to 'arch/arm/mach-tegra/board-cardhu.c')
-rw-r--r--arch/arm/mach-tegra/board-cardhu.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/board-cardhu.c b/arch/arm/mach-tegra/board-cardhu.c
index ea8cab8a6d10..295303a6efe9 100644
--- a/arch/arm/mach-tegra/board-cardhu.c
+++ b/arch/arm/mach-tegra/board-cardhu.c
@@ -739,7 +739,7 @@ static void cardhu_modem_init(void)
tegra_get_board_info(&board_info);
switch (board_info.board_id) {
case BOARD_E1291:
- if (board_info.fab < 0x3) {
+ if (board_info.fab < BOARD_FAB_A03) {
w_disable_gpio = TEGRA_GPIO_PH5;
} else {
w_disable_gpio = TEGRA_GPIO_PDD5;
@@ -751,6 +751,18 @@ static void cardhu_modem_init(void)
__func__, w_disable_gpio);
else
gpio_direction_input(w_disable_gpio);
+
+ /* E1291-A04: Set PERST signal to low */
+ if (board_info.fab >= BOARD_FAB_A04) {
+ ret = gpio_request(TEGRA_GPIO_PH7, "modem_perst");
+ if (ret < 0) {
+ pr_err("%d(): Error in allocating gpio "
+ "TEGRA_GPIO_PH7\n", __func__);
+ break;
+ }
+ gpio_direction_output(TEGRA_GPIO_PH7, 0);
+ tegra_gpio_enable(TEGRA_GPIO_PH7);
+ }
break;
case BOARD_E1186:
tegra_gpio_enable(