diff options
author | iabdalkader <i.abdalkader@gmail.com> | 2018-02-23 19:47:27 +0200 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2018-03-09 15:11:22 +1100 |
commit | 2858e0aef8d3c1504c84b28e80c5a9e15f11cbac (patch) | |
tree | 9197b88d0f65b0193c3ae4dffc629d6222ded8ba | |
parent | d151adb791df6f3ac6d12431ad6bcad62f730363 (diff) |
stm32/usbd_conf: Add USB support for H7 MCUs.
-rw-r--r-- | ports/stm32/usbd_conf.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/ports/stm32/usbd_conf.c b/ports/stm32/usbd_conf.c index e8031c49b..abc12958e 100644 --- a/ports/stm32/usbd_conf.c +++ b/ports/stm32/usbd_conf.c @@ -69,7 +69,11 @@ void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd) GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ #if defined(STM32H7)
+ GPIO_InitStruct.Alternate = GPIO_AF10_OTG1_FS;
+ #else
GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
+ #endif
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* Configure VBUS Pin */
@@ -86,10 +90,15 @@ void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd) GPIO_InitStruct.Pin = GPIO_PIN_10;
GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
GPIO_InitStruct.Pull = GPIO_PULLUP;
- GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
#endif
+ #if defined(STM32H7)
+ // Keep USB clock running during sleep or else __WFI() will disable the USB
+ __HAL_RCC_USB2_OTG_FS_CLK_SLEEP_ENABLE();
+ __HAL_RCC_USB2_OTG_FS_ULPI_CLK_SLEEP_DISABLE();
+ #endif
+
/* Enable USB FS Clocks */
__USB_OTG_FS_CLK_ENABLE();
|