Hi Andy: I modified the power on/off sequence of the GSM module. I already tested and measured the signal of the "/MODEM_RST","/MODEM_ON" and "/PWR_ID"
DKAY
From: DKAY_CHEN <[email protected]> Date: Wed, 4 Feb 2009 20:12:04 +0800 [GTA03] Fix power on/off sequence of the GSM module Signed-off-by: DKAY_CHEN <[email protected]> --- arch/arm/mach-s3c6410/om-gta03-features.c | 18 ++++++++++++------ 1 files changed, 12 insertions(+), 6 deletions(-) diff --git a/arch/arm/mach-s3c6410/om-gta03-features.c b/arch/arm/mach-s3c6410/om-gta03-features.c index d3e2140..f424762 100644 --- a/arch/arm/mach-s3c6410/om-gta03-features.c +++ b/arch/arm/mach-s3c6410/om-gta03-features.c @@ -101,14 +101,19 @@ static void om_gta03_features_pwron_set_on(enum feature feature) case OM_GTA03_GSM: /* give power to GSM module */ s3c_gpio_setpull(GTA03_GPIO_N_MODEM_RESET, S3C_GPIO_PULL_NONE); + s3c_gpio_setpull(GTA03_GPIO_MODEN_ON, S3C_GPIO_PULL_NONE); s3c_gpio_cfgpin(GTA03_GPIO_N_MODEM_RESET, S3C_GPIO_SFN(1)); + s3c_gpio_cfgpin(GTA03_GPIO_MODEN_ON, S3C_GPIO_SFN(1)); + gpio_direction_output(GTA03_GPIO_MODEN_ON, 1); gpio_direction_output(GTA03_GPIO_N_MODEM_RESET, 0); - gpio_direction_output(GTA03_GPIO_MODEN_ON, 0); - s3c_gpio_setpull(GTA03_GPIO_MODEN_ON, S3C_GPIO_PULL_NONE); - s3c_gpio_cfgpin(GTA03_GPIO_MODEN_ON, S3C_GPIO_SFN(1)); - msleep(1); + msleep(150); gpio_direction_output(GTA03_GPIO_N_MODEM_RESET, 1); + msleep(10); + /* Release GPIO1 */ + s3c_gpio_cfgpin(GTA03_GPIO_N_MODEM_RESET, S3C_GPIO_SFN(0)); + msleep(300); + gpio_direction_output(GTA03_GPIO_MODEN_ON, 1); break; case OM_GTA03_USBHOST: pcf50633_gpio_set(om_gta03_pcf, PCF50633_GPO, 1); @@ -153,9 +158,10 @@ static void om_gta03_features_pwron_set_off(enum feature feature) break; case OM_GTA03_GSM: /* remove power from WLAN / BT module */ - gpio_direction_output(GTA03_GPIO_MODEN_ON, 1); - s3c_gpio_setpull(GTA03_GPIO_MODEN_ON, S3C_GPIO_PULL_NONE); s3c_gpio_cfgpin(GTA03_GPIO_MODEN_ON, S3C_GPIO_SFN(1)); + gpio_direction_output(GTA03_GPIO_MODEN_ON, 0); + msleep(1100); + gpio_direction_output(GTA03_GPIO_MODEN_ON, 1); break; case OM_GTA03_USBHOST: pcf50633_gpio_set(om_gta03_pcf, PCF50633_GPO, 0); -- 1.5.4.3
