diff options
-rw-r--r-- | arch/arm/mach-tegra/board-cardhu-pinmux.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-cardhu.c | 14 |
2 files changed, 20 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/board-cardhu-pinmux.c b/arch/arm/mach-tegra/board-cardhu-pinmux.c index 3ecb649f7be4..68a6ac367e76 100644 --- a/arch/arm/mach-tegra/board-cardhu-pinmux.c +++ b/arch/arm/mach-tegra/board-cardhu-pinmux.c @@ -442,6 +442,10 @@ static __initdata struct tegra_pingroup_config cardhu_pinmux_cardhu_a03[] = { DEFAULT_PINMUX(PEX_L1_PRSNT_N, RSVD3, PULL_UP, TRISTATE, INPUT), }; +static __initdata struct tegra_pingroup_config cardhu_pinmux_e1291_a04[] = { + DEFAULT_PINMUX(GMI_AD15, NAND, PULL_DOWN, NORMAL, OUTPUT), +}; + static __initdata struct tegra_pingroup_config cardhu_pinmux_e1198[] = { /* SPI2 */ DEFAULT_PINMUX(SPI2_SCK, SPI2, PULL_UP, NORMAL, INPUT), @@ -533,6 +537,9 @@ int __init cardhu_pinmux_init(void) tegra_pinmux_config_table(cardhu_pinmux_cardhu_a03, ARRAY_SIZE(cardhu_pinmux_cardhu_a03)); } + if (board_info.fab >= BOARD_FAB_A04) + tegra_pinmux_config_table(cardhu_pinmux_e1291_a04, + ARRAY_SIZE(cardhu_pinmux_e1291_a04)); break; case BOARD_PM269: 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( |