Hi,
I am using nRF54L15 with Zephyr RTOS in nRF Connect SDK v3.0.2.
After performing a FOTA update, the device reboots. I need to retain the state of a GPIO pin across this reboot.
The GPIO I am trying to retain is P1.06. I attempted to configure it with retention using the following code:
#define PIN_P1_06 38
#define P1_INDEX 6
void configure_retained_gpio(void) {
// Configure the pin as output with retention enabled
nrf_gpio_cfg_output(PIN_P1_06);
NRF_P1->PIN_CNF[P1_INDEX] &= ~GPIO_PIN_CNF_CTRLSEL_Msk;
NRF_P1->PIN_CNF[P1_INDEX] |= (GPIO_PIN_CNF_CTRLSEL_GPIO << GPIO_PIN_CNF_CTRLSEL_Pos);
}
However, after the OTA update and subsequent reboot, the GPIO state is cleared and does not retain the previous value.
My questions:
-
Is there any additional configuration required in nRF54L15 to retain GPIO states across a reboot after FOTA?
-
Is GPIO retention supported across MCU reset triggered by FOTA, or is it only supported for specific low-power modes?
Any guidance or recommended approach to preserve the GPIO state across OTA reboot would be greatly appreciated.
Thanks.