diff options
| author | hierophect <hierophect@gmail.com> | 2019-12-17 12:55:22 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-12-17 12:55:22 -0500 |
| commit | 409b5ffe9e82a95e8a820920af211c4fb3480d67 (patch) | |
| tree | c7cf6525012265276253bd75af5512b77f856c49 | |
| parent | d44a758a2d9066dfb369ccdf1f6ed82e0b6e3c13 (diff) | |
| parent | ebc21144b8dc98dde7daf3f3832bdb33a5d8fc7d (diff) | |
Merge pull request #1 from hathach/hierophect-update-tusb
stm32 explicitily enable/disable vbus sense, fix warning
| -rw-r--r-- | ports/stm32f4/supervisor/usb.c | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/ports/stm32f4/supervisor/usb.c b/ports/stm32f4/supervisor/usb.c index 6e9b233a4..23fff1a36 100644 --- a/ports/stm32f4/supervisor/usb.c +++ b/ports/stm32f4/supervisor/usb.c @@ -36,6 +36,29 @@ #include "common-hal/microcontroller/Pin.h" +STATIC void init_usb_vbus_sense(void) { + +#ifdef BOARD_NO_VBUS + // Disable VBUS sensing + #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 +#else + // Enable VBUS hardware sensing + #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; // B Device sense + #endif +#endif +} + + void init_usb_hardware(void) { //TODO: if future chips overload this with options, move to peripherals management. @@ -82,20 +105,8 @@ void init_usb_hardware(void) { 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 + init_usb_vbus_sense(); } |
