10 #include "sw/device/lib/testing/aon_timer_testutils.h"
11 #include "sw/device/lib/testing/pwrmgr_testutils.h"
12 #include "sw/device/lib/testing/rstmgr_testutils.h"
13 #include "sw/device/lib/testing/test_framework/check.h"
16 static_assert(kDtPwrmgrCount == 1,
"this test expects exactly one pwrmgr");
17 static const dt_pwrmgr_t kPwrmgrDt = 0;
18 static_assert(kDtRstmgrCount == 1,
"this test expects exactly one rstmgr");
19 static const dt_rstmgr_t kRstmgrDt = 0;
20 static_assert(kDtAonTimerCount >= 1,
21 "this test expects at least one aon_timer");
22 static const dt_aon_timer_t kAonTimerDt = 0;
24 OTTF_DEFINE_TEST_CONFIG();
40 CHECK_DIF_OK(dif_pwrmgr_init_from_dt(kPwrmgrDt, &pwrmgr));
45 kDtAonTimerWakeupWkupReq, &wakeup_sources));
49 CHECK_DIF_OK(dif_rstmgr_init_from_dt(kRstmgrDt, &rstmgr));
51 dif_aon_timer_t aon_timer;
52 CHECK_DIF_OK(dif_aon_timer_init_from_dt(kAonTimerDt, &aon_timer));
58 if (UNWRAP(pwrmgr_testutils_is_wakeup_reason(&pwrmgr, 0)) ==
true) {
65 CHECK_STATUS_OK(rstmgr_testutils_pre_reset(&rstmgr));
68 aon_timer_testutils_wakeup_config(&aon_timer, wakeup_threshold));
71 pwrmgr_testutils_enable_low_power(&pwrmgr, wakeup_sources, 0));
74 LOG_INFO(
"Issue WFI to enter sleep");
77 }
else if (UNWRAP(pwrmgr_testutils_is_wakeup_reason(
78 &pwrmgr, wakeup_sources)) ==
true) {
81 CHECK(UNWRAP(rstmgr_testutils_is_reset_info(
83 LOG_INFO(
"Aon timer wakeup detected");
84 CHECK_STATUS_OK(rstmgr_testutils_post_reset(
91 LOG_ERROR(
"Unexpected wakeup detected: type = %d, request_source = %d",