diff options
Diffstat (limited to 'io-module/mtcap.c')
-rw-r--r-- | io-module/mtcap.c | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/io-module/mtcap.c b/io-module/mtcap.c index fd278c8..7409c2f 100644 --- a/io-module/mtcap.c +++ b/io-module/mtcap.c @@ -191,7 +191,7 @@ static int radio_off_mtcap(int radio_model) // cannot be fixed definitely. Normally it will be above 15 seconds later from releasing // ON/OFF# and DTE should monitor the status of PWRMON to see the actual power off. hold_time = 2500; - if (radio_model == RADIO_LNA3) { + if (radio_model == RADIO_LNA3 || radio_model == RADIO_LEU3) { // To turn OFF the LE910 V2 the pad ON_OFF* must be tied low for at least 3 seconds and then released. // ref: Telit_LE910_V2_Hardware_User_Guide_r7.pdf @@ -199,6 +199,7 @@ static int radio_off_mtcap(int radio_model) } reset_gpio_pin(onoff_pin, hold_time, 0); + msleep(200); // Give time for pin to change state before inspection. value = 0; for (i = 0; i < 15; i++) { @@ -246,11 +247,14 @@ static int radio_on_mtcap(int radio_model) // for LEU1 (ref: Telit_LE910_Hardware_User_Guide_r6.pdf) hold_time = 1500; - if (radio_model == RADIO_LNA3) { + if (radio_model == RADIO_LNA3 || radio_model == RADIO_LEU3) { // To turn on the LE910 V2 the pad ON_OFF* must be tied low for at least 5 seconds and then released. // ref: Telit_LE910_V2_Hardware_User_Guide_r7.pdf - hold_time = 5500; + // ref:Telit_LE910_V2_Hardware_User_Guide_r9.pdf + // pg 32: When USB is connected or after firmware updating, + // delay must be equal at least to 10 seconds. + hold_time = 10500; } // drive on/off pin high for at least 1 seconoff_pin @@ -259,7 +263,7 @@ static int radio_on_mtcap(int radio_model) // ON_OFF must be tied low and then released reset_gpio_pin(onoff_pin, hold_time, 0); - + msleep(200); // Make sure modem has had time to move the status pin // check that power is high value = gpio_get_value(pwrmon_pin->pin.gpio); if(value == 0) { @@ -293,14 +297,22 @@ static int radio_reset_mtcap(int radio_model) // // Turning on radio // - log_info("turning on cell radio"); + log_info("turning on cell radio for reset"); // for LEU1 (ref: Telit_LE910_Hardware_User_Guide_r6.pdf) hold_time = 1500; - if (radio_model == RADIO_LNA3) { + if (radio_model == RADIO_LNA3 || radio_model == RADIO_LEU3) { // To turn on the LE910 V2 the pad ON_OFF* must be tied low for at least 5 seconds and then released. // ref: Telit_LE910_V2_Hardware_User_Guide_r7.pdf - hold_time = 5500; + // ref:Telit_LE910_V2_Hardware_User_Guide_r9.pdf + // pg 32: When USB is connected or after firmware updating, + // delay must be equal at least to 10 seconds. + // + // Note that a hold time of 5.5 seconds on MTCAP + // with Verizon Firmware 20.00.12 will cause a + // radio-reset to power the LE910-NA1 off until + // a reload of the mts-io driver, or a reboot. + hold_time = 10500; } // drive on/off pin high for at least 1 sec @@ -310,8 +322,10 @@ static int radio_reset_mtcap(int radio_model) // drive on/off pin low for < 2 sec // drive on/off pin high + log_info("turning off cell radio for reset"); reset_gpio_pin(onoff_pin, hold_time, 0); - + log_info("Reset is complete. Wait for power monitor pin"); + msleep(200); // Make sure modem has had time to move the status pin return 0; } |