summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHierophect <hierophect@gmail.com>2019-12-12 12:47:40 -0500
committerHierophect <hierophect@gmail.com>2019-12-12 12:47:40 -0500
commit885a1415d0b9b223ce8f77ea4e4d773c2eb28a5c (patch)
tree245e239a17b80fe7e67a6eda42739c34a61aad83
parent1244125bdcf6500a01b24773cf798fe01eee4c63 (diff)
Update stm32 usb.c
-rw-r--r--ports/stm32f4/supervisor/usb.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/ports/stm32f4/supervisor/usb.c b/ports/stm32f4/supervisor/usb.c
index f327050f5..6e9b233a4 100644
--- a/ports/stm32f4/supervisor/usb.c
+++ b/ports/stm32f4/supervisor/usb.c
@@ -32,6 +32,8 @@
#include "lib/mp-readline/readline.h"
#include "stm32f4xx_hal.h"
+#include "py/mpconfig.h"
+
#include "common-hal/microcontroller/Pin.h"
void init_usb_hardware(void) {
@@ -79,7 +81,21 @@ void init_usb_hardware(void) {
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
never_reset_pin_number(0, 8);
#endif
+
+#ifdef BOARD_NO_VBUS
+ disable_usb_vbus();
+#endif
/* Peripheral clock enable */
__HAL_RCC_USB_OTG_FS_CLK_ENABLE();
}
+
+STATIC void disable_usb_vbus(void) {
+#ifdef USB_OTG_GCCFG_VBDEN
+ USB_OTG_FS->GCCFG &= ~USB_OTG_GCCFG_VBDEN;
+#else
+ USB_OTG_FS->GCCFG |= USB_OTG_GCCFG_NOVBUSSENS;
+ USB_OTG_FS->GCCFG &= ~USB_OTG_GCCFG_VBUSBSEN;
+ USB_OTG_FS->GCCFG &= ~USB_OTG_GCCFG_VBUSASEN;
+#endif
+}