13 #include "sw/device/lib/base/status.h"
18 #include "sw/device/lib/testing/pinmux_testutils.h"
19 #include "sw/device/lib/testing/test_framework/check.h"
22 #define USBDEV_BASE_ADDR TOP_EARLGREY_USBDEV_BASE_ADDR
29 static const bool kCheckLowFirst =
false;
34 static dif_usbdev_t usbdev;
39 static dif_pinmux_t pinmux;
42 static status_t vbus_wait(
bool expected, uint32_t timeout_micros) {
48 if (vbus == expected) {
53 return DEADLINE_EXCEEDED();
56 OTTF_DEFINE_TEST_CONFIG();
59 uint32_t timeout_micros = 1000u;
66 timeout_micros = 1000u;
70 timeout_micros = 30 * 1000 * 1000u;
73 LOG_INFO(
"Running USBDEV_VBUS test");
78 CHECK_DIF_OK(dif_pinmux_init(
80 pinmux_testutils_init(&pinmux);
95 LOG_INFO(
"Disconnect or power down the USB");
99 CHECK_STATUS_OK(vbus_wait(
false, timeout_micros));
102 LOG_INFO(
"Connect or power up the USB");
107 CHECK_STATUS_OK(vbus_wait(
true, timeout_micros));