diff options
author | guoyin.chen <guoyin.chen@freescale.com> | 2012-05-11 17:02:12 +0800 |
---|---|---|
committer | guoyin.chen <guoyin.chen@freescale.com> | 2012-05-14 09:09:01 +0800 |
commit | 3eae8e8a9854293d6e92756f0eeb928ef14770a6 (patch) | |
tree | 73440b26baf2bddde74a15f5332215b9ae9ada7d /arch | |
parent | 49d10ee5e19f5b327691b83f069f4b5186e551de (diff) |
ENGR00182786 Add 3g modem reset function
board's reset will not reset the modem power on gpio
reset the 3g modem at kernel boot up to make sure
3g modem at reset state in system up
Signed-off-by: guoyin.chen <guoyin.chen@freescale.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-mx6/board-mx6q_sabresd.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/arm/mach-mx6/board-mx6q_sabresd.c b/arch/arm/mach-mx6/board-mx6q_sabresd.c index c808fe705ef9..a50fcaf5517a 100644 --- a/arch/arm/mach-mx6/board-mx6q_sabresd.c +++ b/arch/arm/mach-mx6/board-mx6q_sabresd.c @@ -1368,6 +1368,20 @@ static void pcie_3v3_power(bool on) } +static void pcie_3v3_reset() +{ + /* reset miniPCIe */ + gpio_request(SABRESD_PCIE_RST_B_REVB, "pcie_reset_rebB"); + gpio_direction_output(SABRESD_PCIE_RST_B_REVB, 1); + + gpio_set_value(SABRESD_PCIE_RST_B_REVB, 0); + /* The PCI Express Mini CEM specification states that PREST# is + deasserted minimum 1ms after 3.3vVaux has been applied and stable*/ + msleep(1); + gpio_set_value(SABRESD_PCIE_RST_B_REVB, 1); +} + + static void gps_power_on(bool on) { /* Enable/disable aux_3v15 */ @@ -1749,7 +1763,12 @@ static void __init mx6_sabresd_board_init(void) gpio_direction_output(SABRESD_AUX_5V_EN, 1); gpio_set_value(SABRESD_AUX_5V_EN, 1); + pcie_3v3_power(false); + msleep(10); pcie_3v3_power(true); + msleep(10); + pcie_3v3_reset(); + gps_power_on(true); /* Register charger chips */ |