How to wake up the CPU from WFI using GPIO, but not using interrupt?

We're developing a low-power application on the nRF9160 where we need the device to stay connected to the server over LTE, so we cannot enter System OFF mode. Instead, we're using PSM sleeping mode for LTE, and leave CPU in __WFI.

We want to wake the CPU from sleep using a GPIO input, but keep the sleep current minimal, ideally around 4–5 µA.

Currently, we configure the GPIO like this:

gpio_pin_interrupt_configure_dt(&button, GPIO_INT_EDGE_TO_INACTIVE);

This works for wake-up, but unfortunately it increases the sleep current to ~70 µA.

Questions:

1. Is it possible to use GPIO in interrupt mode but the current stay low in the 4–5 µA range?

2. If the above case is impossible, is it possible to use GPIO (sense or other mechanism) to wake from WFI without enabling full GPIO interrupt, and still keep the sleep current in the 4–5 µA range?

3. If the above cases is impossible, is it possible to shut off CPU completely (to be able to wake up on GPIO) but keep LTE module in PSM?

Any suggestions or example configurations are appreciated.

Thanks in advance!


Let me know if you'd like it to include your Zephyr version, board (nRF9160-DK?), or exact GPIO pin.

Related