aboutsummaryrefslogtreecommitdiffstats
path: root/firmware/apps
diff options
context:
space:
mode:
authorKévin Redon <kredon@sysmocom.de>2018-06-17 22:31:21 +0200
committerHarald Welte <laforge@gnumonks.org>2018-06-29 20:07:31 +0200
commitf5869d4a59ebee1bfc0baa239bedc99e10bd9a0a (patch)
treec98027cd9c50b0bfe59677f3ebb34f51a6c0581b /firmware/apps
parent4136c242a82174555bc66c059a051721d2d2ce71 (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.c6
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) {