From 4c4a95172c8c5222955c97c4ab3eaaa6c4f7a4ff Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sat, 2 Nov 2013 10:51:32 +0000 Subject: Fixed bug #436. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@6405 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/platforms/STM32/OTGv1/usb_lld.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'os') 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) ; -- cgit v1.2.3