altos: stm: delay during USB config with pull-up off
authorKeith Packard <keithp@keithp.com>
Tue, 8 May 2012 04:49:24 +0000 (21:49 -0700)
committerKeith Packard <keithp@keithp.com>
Tue, 8 May 2012 04:49:24 +0000 (21:49 -0700)
This makes sure that a reboot will reliably cause the device to
disconnect from the USB bus.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/stm/ao_usb_stm.c

index 71bf1bc76eecc9cc4170b67fc41bf1449876a487..c093f526164452bf8355379d76854f26d7c6f098 100644 (file)
@@ -937,7 +937,7 @@ ao_usb_disable(void)
 void
 ao_usb_enable(void)
 {
-       uint16_t        tick;
+       int     t;
 
        /* Enable SYSCFG */
        stm_rcc.apb2enr |= (1 << STM_RCC_APB2ENR_SYSCFGEN);
@@ -985,6 +985,8 @@ ao_usb_enable(void)
                        (0 << STM_USB_CNTR_PDWN) |
                        (0 << STM_USB_CNTR_FRES));
 
+       for (t = 0; t < 1000; t++)
+               ao_arch_nop();
        /* Enable USB pull-up */
        stm_syscfg.pmc |= (1 << STM_SYSCFG_PMC_USB_PU);
 }