aboutsummaryrefslogtreecommitdiffstats
path: root/firmware/apps/dfu/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/apps/dfu/main.c')
-rw-r--r--firmware/apps/dfu/main.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/firmware/apps/dfu/main.c b/firmware/apps/dfu/main.c
index 74268ad..7f8fbfc 100644
--- a/firmware/apps/dfu/main.c
+++ b/firmware/apps/dfu/main.c
@@ -22,6 +22,7 @@
#include "usb/device/dfu/dfu.h"
#include "usb/common/dfu/usb_dfu.h"
#include "manifest.h"
+#include "USBD_HAL.h"
#include <osmocom/core/timer.h>
@@ -294,11 +295,18 @@ extern int main(void)
TRACE_INFO("USB init...\n\r");
/* Signal USB reset by disabling the pull-up on USB D+ for at least 10 ms */
+#ifdef PIN_USB_PULLUP
const Pin usb_dp_pullup = PIN_USB_PULLUP;
PIO_Configure(&usb_dp_pullup, 1);
PIO_Set(&usb_dp_pullup);
- mdelay(15);
+#endif
+ USBD_HAL_Suspend();
+ mdelay(20);
+#ifdef PIN_USB_PULLUP
PIO_Clear(&usb_dp_pullup);
+#endif
+ USBD_HAL_Activate();
+
USBDFU_Initialize(&dfu_descriptors);
while (USBD_GetState() < USBD_STATE_CONFIGURED) {