diff options
Diffstat (limited to 'os')
-rw-r--r-- | os/hal/platforms/STM32/OTGv1/usb_lld.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/os/hal/platforms/STM32/OTGv1/usb_lld.c b/os/hal/platforms/STM32/OTGv1/usb_lld.c index f6287a49c..4af75ccd2 100644 --- a/os/hal/platforms/STM32/OTGv1/usb_lld.c +++ b/os/hal/platforms/STM32/OTGv1/usb_lld.c @@ -128,11 +128,15 @@ static void usb_lld_wakeup_pump(USBDriver *usbp) { static void otg_core_reset(USBDriver *usbp) {
stm32_otg_t *otgp = usbp->otg;
+ halPolledDelay(32);
+
/* Core reset and delay of at least 3 PHY cycles.*/
otgp->GRSTCTL = GRSTCTL_CSRST;
while ((otgp->GRSTCTL & GRSTCTL_CSRST) != 0)
;
+
halPolledDelay(12);
+
/* Wait AHB idle condition.*/
while ((otgp->GRSTCTL & GRSTCTL_AHBIDL) == 0)
;
|