I posted this question over on the Legato forums several weeks ago to no avail - see link at bottom.
Perhaps someone on the more hardware-oriented mangOH forum is able to assist me?
Basically, I need the modem to react (by resuming from suspend mode) on an edge-triggered GPIO interrupt on GPIO21. This should be possible according to my interpretation the WP8548 Product Technical Specification. However, this only works if the system hasn’t already suspended. My system must remain suspended for power conservation but also maintain registration on a cellular network.
I have verified that the system resumes from suspend mode on logic level transitions on pin UIM1_DET and UIM2_DET. Presumably the modem’s firmware is handling this.
Besides configuring the GPIO edge sense and providing a change event callback handler, do I need to do anything else to get this working?
Is someone from the mangOH or SWI team able to comment on this please?
When the module is suspended with the USB cable disconnected, I gather this is not USB-SS Mode? If so, how do we make the system respond to GPIO change events in this state?
Currently, I’ve resorted to running a polling timer to periodically wake the system up and check the GPIO state which is unfortunate because it means that either:
The reaction time is very slow - long polling interval needed to save power.
Fast reaction time but the system essentially never suspends, thus no power saving at all.
As mentioned in my previous post, ULPM is not being used because maintaining registration on a cellular network is essential. Furthermore, if the wake-up from ULPM interval is frequent enough, the benefits gained from entering ULPM are almost outweighed by the power consumed during system boot-up (70mA-90mA) and restricted by the system boot-up time (approx. 40 seconds).
Does your module goto SS mode?
Have you tried to wake up the modules from the wakeable GPIOs as shown in the PTS? Y
:4.9 Wakeup Interrupt (USB-SS Mode)
The following pins can be used to wake the device when it is in USB-SS mode (lowpower
active state):
• GPIO2
• GPIO21
• GPIO36
• GPIO38
• GPIO39
• GPIO42
• UIM1_DET
• UIM2_DET
Yes, the module does enter USB-SS mode. The enable_autosleep.sh script runs at boot, I don’t have devMode installed, and I can see a message on the UART2 console output when the USB cable is unplugged.
I have tried several of the wakeable GPIOs as per the PTS; GPIO21 and GPIO42. These work provided the module hasn’t entered a “deep-sleep” or “suspended” state, eg. USB cable unplugged. I measure ~2mA when the module is in this state which seems to match the current consumption values in the PTS.
I can’t use GPIO36, GPIO38 nor GPIO39 for anything but wakeup events from ULPM since they are accessible via sysfs/Legato only (as per the PTS). I can confirm that the module does wake up from ULPM from GPIO36.
Additionally, I have verified that the system resumes from suspend mode on logic level transitions on pin UIM1_DET and UIM2_DET.
Hi Ashish,
It seems I have the same issuse as Raf described but on WP7502
I tried GPIO38 a GPIO36. It works correctly when USB is connected.
It there a solution?
Hi Ashish,
according to QTI9X06-167 in WP77xx Release 11.
The GPIO36 and GPIO38 still do not work properly, but the workaround exists.
How to “explicitly re-enable the interrupt”?