diff options
author | Kévin Redon <kredon@sysmocom.de> | 2018-06-17 22:31:21 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2018-06-29 20:07:31 +0200 |
commit | f5869d4a59ebee1bfc0baa239bedc99e10bd9a0a (patch) | |
tree | c98027cd9c50b0bfe59677f3ebb34f51a6c0581b /firmware/apps | |
parent | 4136c242a82174555bc66c059a051721d2d2ce71 (diff) |
USB: implement USB reset by setting the on-board pull-up on D+ low
Diffstat (limited to 'firmware/apps')
-rw-r--r-- | firmware/apps/dfu/main.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/firmware/apps/dfu/main.c b/firmware/apps/dfu/main.c index a90b9ac..ff31296 100644 --- a/firmware/apps/dfu/main.c +++ b/firmware/apps/dfu/main.c @@ -194,6 +194,12 @@ extern int main(void) board_main_top(); TRACE_INFO("USB init...\n\r"); + /* Signal USB reset by disabling the pull-up on USB D+ for at least 10 ms */ + const Pin usb_dp_pullup = PIN_USB_PULLUP; + PIO_Configure(&usb_dp_pullup, 1); + PIO_Set(&usb_dp_pullup); + mdelay(15); + PIO_Clear(&usb_dp_pullup); USBDFU_Initialize(&dfu_descriptors); while (USBD_GetState() < USBD_STATE_CONFIGURED) { |