From 9f71aaf67ff5c7414d3bbe38c259ae8d59f723ff Mon Sep 17 00:00:00 2001 From: Laxman Dewangan Date: Thu, 14 Jul 2011 14:38:02 +0530 Subject: arm: tegra: cardhu: Reset Modem during init Resetting the modem during the kernel boot for E1291-A04. bug 817238 Change-Id: Id0862d39306b87a04a28abd205455d97dd05109e Reviewed-on: http://git-master/r/38693 Reviewed-by: Rohan Somvanshi Tested-by: Rohan Somvanshi --- arch/arm/mach-tegra/board-cardhu.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'arch/arm/mach-tegra/board-cardhu.c') diff --git a/arch/arm/mach-tegra/board-cardhu.c b/arch/arm/mach-tegra/board-cardhu.c index 0afb30967992..0c53d0e378a8 100644 --- a/arch/arm/mach-tegra/board-cardhu.c +++ b/arch/arm/mach-tegra/board-cardhu.c @@ -938,7 +938,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; @@ -950,6 +950,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( -- cgit v1.2.3