20 #include "sw/device/lib/testing/pinmux_testutils.h"
21 #include "sw/device/lib/testing/test_framework/check.h"
23 #include "sw/device/lib/testing/usb_testutils.h"
24 #include "sw/device/lib/testing/usb_testutils_controlep.h"
31 static const uint8_t config_descriptors[] = {
33 USB_CFG_DSCR_LEN + USB_INTERFACE_DSCR_LEN + 2 * USB_EP_DSCR_LEN, 1),
35 VEND_INTERFACE_DSCR(0, 1, 0x50, 1),
37 USB_BULK_EP_DSCR(0, 1, 32, 0),
38 USB_BULK_EP_DSCR(1, 1, 32, 4),
50 static dif_pinmux_t pinmux;
52 OTTF_DEFINE_TEST_CONFIG();
57 uint32_t timeout_micros = 6000u;
62 timeout_micros = 30 * 1000 * 1000u;
65 LOG_INFO(
"Running USBDEV_CONFIG_HOST test");
66 LOG_INFO(
"Awaiting configuration from the host");
69 CHECK_DIF_OK(dif_pinmux_init(
71 pinmux_testutils_init(&pinmux);
79 CHECK_STATUS_OK(usb_testutils_init(&usbdev,
false,
82 CHECK_STATUS_OK(usb_testutils_controlep_init(
83 &usbdev_control, &usbdev, 0, config_descriptors,
84 sizeof(config_descriptors), NULL, 0));
89 while (usbdev_control.device_state != kUsbTestutilsDeviceConfigured &&
91 CHECK_STATUS_OK(usb_testutils_poll(&usbdev));
94 bool success = (usbdev_control.device_state == kUsbTestutilsDeviceConfigured);
95 if (success && prompt) {
100 CHECK_STATUS_OK(usb_testutils_fin(&usbdev));