]> git.neil.brown.name Git - plato.git/commitdiff
gsmd: fix power on/off for modem.
authorNeilBrown <neilb@suse.de>
Fri, 5 Dec 2014 00:02:25 +0000 (11:02 +1100)
committerNeilBrown <neilb@suse.de>
Fri, 5 Dec 2014 00:02:25 +0000 (11:02 +1100)
I had the sequence all wrong.

Signed-off-by: NeilBrown <neil@brown.name>
gsm/gsmd2.py

index 4dd16a8ccb369e1f40484b6bb34b112754a0c143..ef93af7c645d9d802d6a797ade10cce628ef66f5 100644 (file)
@@ -360,9 +360,12 @@ class modem(Engine,AtChannel):
             self.queue = []
             self.async_pending = None
             self.pending_command = None
-            gpio_set(186, 0)
-            self.atcmd("$QCPWRDN")
             self.close()
+            gpio_set(186, 0)
+            time.sleep(0.1)
+            gpio_set(186,1)
+            time.sleep(0.5)
+            gpio_set(186,0)
             time.sleep(2);
             Popen("rmmod ehci_hcd", shell=True).wait();
 
@@ -391,7 +394,7 @@ class modem(Engine,AtChannel):
     def open(self):
         sleep_time=0.4
         self.block()
-        gpio_set(186, 1)
+        gpio_set(186, 0)
         self.close()
         self.timedout()
         while not self.connected:
@@ -405,10 +408,11 @@ class modem(Engine,AtChannel):
                 print "will now reboot"
                 sys.stdout.flush()
                 Popen("/sbin/reboot -f", shell=True).wait()
-            gpio_set(186, 0)
             Popen('rmmod ehci_omap; rmmod ehci-hcd; modprobe ehci-hcd; modprobe ehci_omap', shell=True).wait()
             time.sleep(1)
             gpio_set(186, 1)
+            time.sleep(0.5)
+            gpio_set(186, 0)
             time.sleep(1)
         l = self.wait_line(100)
         while l != None: