The 8 GPIOs (34-41) highlighted by @coastalbrandon are routed inside the WP8548 module to the ULPM MCU. I extracted the information in the table below from the wp8548 product technical specification document.
WP GPIO | WP Pin Num | ULPM Wakeup | Possibly Unavailable in Future Modules |
---|---|---|---|
34 | 100 | ||
35 | 101 | ||
36 | 102 | ✓ | |
37 | 103 | ||
38 | 92 | ✓ | |
39 | 93 | ✓ | |
40 | 94 | ✓ | |
41 | 95 | ✓ |
Based on looking at the gpio_map
definition in drivers/mfd/swimcu-gpio.c
in the kernel source, I believe that in addition to being usable as ULPM wakeup, GPIOs 36, 38 and 39 can also have interrupts attached to them that are useful while Linux is running. In @nick post on the Legato forum he mentions that GPIO38 is working while the others are not. Can you confirm that GPIOs 36 and 39 are not working, but 38 is? It seems like 34, 35, 37, 40, 41 won’t be usable as interrupts. I don’t know if there is a hardware reason why the ULPM mcu can’t catch interrupts on these pins or if it’s just a matter of configuring the MCU firmware differently. The MCU firmware is closed source, so you can’t change its behavior yourself.