samples: boards: mimxrt595_evk_cm33: system_off: use sys_poweroff
Use the new sys_poweroff() API to power off the system. Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
This commit is contained in:
parent
b5d05e9670
commit
a99a6756aa
2 changed files with 3 additions and 15 deletions
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
#
|
#
|
||||||
CONFIG_PM=y
|
CONFIG_POWEROFF=y
|
||||||
|
|
||||||
# Enable the RTC
|
# Enable the RTC
|
||||||
CONFIG_COUNTER=y
|
CONFIG_COUNTER=y
|
||||||
|
|
|
@ -9,11 +9,8 @@
|
||||||
#include <zephyr/device.h>
|
#include <zephyr/device.h>
|
||||||
#include <zephyr/drivers/gpio.h>
|
#include <zephyr/drivers/gpio.h>
|
||||||
#include <zephyr/drivers/counter.h>
|
#include <zephyr/drivers/counter.h>
|
||||||
#include <zephyr/pm/pm.h>
|
#include <zephyr/sys/poweroff.h>
|
||||||
#include <zephyr/pm/policy.h>
|
|
||||||
|
|
||||||
#define BUSY_WAIT_S 2U
|
|
||||||
#define SLEEP_S 2U
|
|
||||||
#define SOFT_OFF_S 10U
|
#define SOFT_OFF_S 10U
|
||||||
|
|
||||||
#define RTC_NODE DT_NODELABEL(rtc)
|
#define RTC_NODE DT_NODELABEL(rtc)
|
||||||
|
@ -54,16 +51,7 @@ int main(void)
|
||||||
counter_ticks_to_us(rtc_dev, alarm_cfg.ticks) / (1000ULL * 1000ULL));
|
counter_ticks_to_us(rtc_dev, alarm_cfg.ticks) / (1000ULL * 1000ULL));
|
||||||
printk("Entering system off");
|
printk("Entering system off");
|
||||||
|
|
||||||
pm_state_force(0u, &(struct pm_state_info){ PM_STATE_SOFT_OFF, 0, 0 });
|
sys_poweroff();
|
||||||
|
|
||||||
/* Now we need to go sleep. This will let the idle thread runs and
|
|
||||||
* the pm subsystem will use the forced state.
|
|
||||||
*/
|
|
||||||
k_sleep(K_SECONDS(SLEEP_S));
|
|
||||||
|
|
||||||
printk("ERROR: System off failed\n");
|
|
||||||
while (true) {
|
|
||||||
/* spin to avoid fall-off behavior */
|
|
||||||
}
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue