diff --git a/samples/boards/nrf/system_off/src/main.c b/samples/boards/nrf/system_off/src/main.c old mode 100644 new mode 100755 index 5f99e51de0..d02fc08571 --- a/samples/boards/nrf/system_off/src/main.c +++ b/samples/boards/nrf/system_off/src/main.c @@ -35,6 +35,19 @@ static int disable_ds_1(const struct device *dev) SYS_INIT(disable_ds_1, PRE_KERNEL_2, 0); +static void print_wakeup_source(void) +{ + if (nrf_gpio_pin_latch_get(NRF_DT_GPIOS_TO_PSEL(DT_ALIAS(sw0), gpios))) { + printk("BUTTON1 woke me up!\n"); + nrf_gpio_pin_latch_clear(NRF_DT_GPIOS_TO_PSEL(DT_ALIAS(sw0), gpios)); + } + + if (nrf_gpio_pin_latch_get(NRF_DT_GPIOS_TO_PSEL(DT_ALIAS(sw1), gpios))) { + printk("BUTTON2 woke me up!\n"); + nrf_gpio_pin_latch_clear(NRF_DT_GPIOS_TO_PSEL(DT_ALIAS(sw1), gpios)); + } +} + void main(void) { int rc; @@ -47,6 +60,8 @@ void main(void) printk("\n%s system off demo\n", CONFIG_BOARD); + print_wakeup_source(); + if (IS_ENABLED(CONFIG_APP_RETENTION)) { bool retained_ok = retained_validate(); @@ -62,11 +77,15 @@ void main(void) printk("Retained data not supported\n"); } - /* Configure to generate PORT event (wakeup) on button 1 press. */ + /* Configure to generate PORT event (wakeup) on button 1 or 2 press. */ nrf_gpio_cfg_input(NRF_DT_GPIOS_TO_PSEL(DT_ALIAS(sw0), gpios), NRF_GPIO_PIN_PULLUP); nrf_gpio_cfg_sense_set(NRF_DT_GPIOS_TO_PSEL(DT_ALIAS(sw0), gpios), NRF_GPIO_PIN_SENSE_LOW); + nrf_gpio_cfg_input(NRF_DT_GPIOS_TO_PSEL(DT_ALIAS(sw1), gpios), + NRF_GPIO_PIN_PULLUP); + nrf_gpio_cfg_sense_set(NRF_DT_GPIOS_TO_PSEL(DT_ALIAS(sw1), gpios), + NRF_GPIO_PIN_SENSE_LOW); printk("Busy-wait %u s\n", BUSY_WAIT_S); k_busy_wait(BUSY_WAIT_S * USEC_PER_SEC); @@ -84,7 +103,7 @@ void main(void) k_sleep(K_SECONDS(SLEEP_S)); rc = pm_device_action_run(cons, PM_DEVICE_ACTION_RESUME); - printk("Entering system off; press BUTTON1 to restart\n"); + printk("Entering system off; press BUTTON1 or BUTTON2 to restart\n"); if (IS_ENABLED(CONFIG_APP_RETENTION)) { /* Update the retained state */