18 #include "sw/device/lib/testing/pwrmgr_testutils.h"
19 #include "sw/device/lib/testing/rstmgr_testutils.h"
20 #include "sw/device/lib/testing/test_framework/FreeRTOSConfig.h"
21 #include "sw/device/lib/testing/test_framework/check.h"
26 OTTF_DEFINE_TEST_CONFIG(.enable_uart_flow_control =
true);
31 static dif_pwrmgr_t pwrmgr;
32 static dif_sysrst_ctrl_t sysrst_ctrl_aon;
33 static dif_rstmgr_t rstmgr;
38 static void init_peripherals(
void) {
40 CHECK_DIF_OK(dif_pwrmgr_init(
44 CHECK_DIF_OK(dif_sysrst_ctrl_init(
49 CHECK_DIF_OK(dif_rstmgr_init(
56 static void config_sysrst(
const dif_pwrmgr_t *pwrmgr,
57 const dif_sysrst_ctrl_t *sysrst_ctrl_aon) {
62 kDifPwrmgrResetRequestSourceOne,
64 LOG_INFO(
"Reset Request SourceOne is set");
72 .detection_time_threshold = 10,
74 .embedded_controller_reset_duration = 10};
85 CHECK_DIF_OK(dif_pinmux_init(
89 sysrst_ctrl_aon, sysrst_ctrl_input_change_config));
96 static void normal_sleep_por(
const dif_pwrmgr_t *pwrmgr) {
99 config = kDifPwrmgrDomainOptionUsbClockInLowPower |
102 kDifPwrmgrDomainOptionMainPowerInLowPower;
105 CHECK_STATUS_OK(pwrmgr_testutils_enable_low_power(pwrmgr, 0, config));
116 rst_info = rstmgr_testutils_reason_get();
117 rstmgr_testutils_reason_clear();
118 LOG_INFO(
"Reset info 0x%x", rst_info);
120 config_sysrst(&pwrmgr, &sysrst_ctrl_aon);
122 normal_sleep_por(&pwrmgr);
123 CHECK(
false,
"This is unreachable");
124 }
else if ((rst_info & kDifRstmgrResetInfoSysRstCtrl) != 0) {
129 LOG_ERROR(
"Wrong reset reason %02X", rst_info);