aboutsummaryrefslogtreecommitdiffstats
path: root/os
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2014-04-06 11:45:05 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2014-04-06 11:45:05 +0000
commit4877499dfcc244728333b023db9e6f2adc16ecf9 (patch)
tree8c235e4545ed14b4c987b147aae1f20b2e1e6aae /os
parent9b9f9e6798d3b224670f90330d3f7a0c27ee2f81 (diff)
downloadChibiOS-4877499dfcc244728333b023db9e6f2adc16ecf9.tar.gz
ChibiOS-4877499dfcc244728333b023db9e6f2adc16ecf9.tar.bz2
ChibiOS-4877499dfcc244728333b023db9e6f2adc16ecf9.zip
Fixed bug #482.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/kernel_3_dev@6840 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os')
-rw-r--r--os/hal/ports/STM32/LLD/OTGv1/usb_lld.c4
-rw-r--r--os/hal/ports/STM32/STM32F4xx/stm32_rcc.h18
2 files changed, 22 insertions, 0 deletions
diff --git a/os/hal/ports/STM32/LLD/OTGv1/usb_lld.c b/os/hal/ports/STM32/LLD/OTGv1/usb_lld.c
index 04bfefec2..9592656ff 100644
--- a/os/hal/ports/STM32/LLD/OTGv1/usb_lld.c
+++ b/os/hal/ports/STM32/LLD/OTGv1/usb_lld.c
@@ -754,6 +754,10 @@ void usb_lld_start(USBDriver *usbp) {
rccEnableOTG_HS(FALSE);
rccResetOTG_HS();
+ /* Workaround for the problem described here:
+ http://forum.chibios.org/phpbb/viewtopic.php?f=16&t=1798 */
+ rccDisableOTG_HSULPI(TRUE);
+
/* Enables IRQ vector.*/
nvicEnableVector(STM32_OTG2_NUMBER, STM32_USB_OTG2_IRQ_PRIORITY);
}
diff --git a/os/hal/ports/STM32/STM32F4xx/stm32_rcc.h b/os/hal/ports/STM32/STM32F4xx/stm32_rcc.h
index 9178f67da..b2d45d5aa 100644
--- a/os/hal/ports/STM32/STM32F4xx/stm32_rcc.h
+++ b/os/hal/ports/STM32/STM32F4xx/stm32_rcc.h
@@ -664,6 +664,24 @@
* @api
*/
#define rccResetOTG_HS() rccResetAHB1(RCC_AHB1RSTR_OTGHSRST)
+
+/**
+ * @brief Enables the OTG_HS peripheral clock.
+ *
+ * @param[in] lp low power enable flag
+ *
+ * @api
+ */
+#define rccEnableOTG_HSULPI(lp) rccEnableAHB1(RCC_AHB1ENR_OTGHSULPIEN, lp)
+
+/**
+ * @brief Disables the OTG_HS peripheral clock.
+ *
+ * @param[in] lp low power enable flag
+ *
+ * @api
+ */
+#define rccDisableOTG_HSULPI(lp) rccDisableAHB1(RCC_AHB1ENR_OTGHSULPIEN, lp)
/** @} */
/**