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));
44 CHECK_DIF_OK(dif_rstmgr_init_from_dt(kRstmgrDt, &rstmgr));
46 dif_aon_timer_t aon_timer;
47 CHECK_DIF_OK(dif_aon_timer_init_from_dt(kAonTimerDt, &aon_timer));
53 if (UNWRAP(pwrmgr_testutils_is_wakeup_reason(&pwrmgr, 0)) ==
true) {
60 CHECK_STATUS_OK(rstmgr_testutils_pre_reset(&rstmgr));
63 aon_timer_testutils_wakeup_config(&aon_timer, wakeup_threshold));
65 CHECK_STATUS_OK(pwrmgr_testutils_enable_low_power(
66 &pwrmgr, kDifPwrmgrWakeupRequestSourceFive, 0));
69 LOG_INFO(
"Issue WFI to enter sleep");
72 }
else if (UNWRAP(pwrmgr_testutils_is_wakeup_reason(
73 &pwrmgr, kDifPwrmgrWakeupRequestSourceFive)) ==
true) {
76 CHECK(UNWRAP(rstmgr_testutils_is_reset_info(
78 LOG_INFO(
"Aon timer wakeup detected");
79 CHECK_STATUS_OK(rstmgr_testutils_post_reset(
86 LOG_ERROR(
"Unexpected wakeup detected: type = %d, request_source = %d",