This is an automated email from the ASF dual-hosted git repository. jerzy pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mynewt-core.git
The following commit(s) were added to refs/heads/master by this push: new 62c2f8639 tinyusb: Add support for STM32H7 devices 62c2f8639 is described below commit 62c2f8639133fa5c5baddb9e4ad75915e3a9edb9 Author: Jerzy Kasenberg <jerzy.kasenb...@codecoup.pl> AuthorDate: Tue Apr 8 15:08:07 2025 +0200 tinyusb: Add support for STM32H7 devices Hardware configuration for synopsys IP based devices used OTG FS device. For H7 devices some have only one USB peripheral and it's HS. Now syscfg explicitly selects which peripheral should be used. When USB_USE_OTG_HS is 0 OTG_FS will be used When USB_USE_OTG_HS is 1 OTG_HS will be selected Signed-off-by: Jerzy Kasenberg <jerzy.kasenb...@codecoup.pl> --- hw/bsp/nucleo-h723zg/syscfg.yml | 1 + hw/usb/tinyusb/synopsys/src/synopsys.c | 48 ++++++++++++++-------------------- hw/usb/tinyusb/synopsys/syscfg.yml | 8 ++++++ 3 files changed, 28 insertions(+), 29 deletions(-) diff --git a/hw/bsp/nucleo-h723zg/syscfg.yml b/hw/bsp/nucleo-h723zg/syscfg.yml index 3c4d6717c..e7b10cd66 100644 --- a/hw/bsp/nucleo-h723zg/syscfg.yml +++ b/hw/bsp/nucleo-h723zg/syscfg.yml @@ -61,6 +61,7 @@ syscfg.vals: TIMER_0_TIM: 'TIM12' TIMER_1_TIM: 'TIM13' TIMER_2_TIM: 'TIM14' + USB_USE_OTG_HS: 1 # Flasher parameters MYNEWT_DOWNLOADER: stflash diff --git a/hw/usb/tinyusb/synopsys/src/synopsys.c b/hw/usb/tinyusb/synopsys/src/synopsys.c index ad784e506..29301bc71 100755 --- a/hw/usb/tinyusb/synopsys/src/synopsys.c +++ b/hw/usb/tinyusb/synopsys/src/synopsys.c @@ -24,44 +24,31 @@ #include <mcu/stm32_hal.h> -#if defined(USB_OTG_FS) -#if defined(STM32U5) -#define GPIO_AF_USB GPIO_AF10_USB +#if MYNEWT_VAL(USB_USE_OTG_HS) +#define USB_OTG USB_OTG_HS +#define USB_OTG_IRQHandler OTG_HS_IRQHandler +#define USB_OTG_IRQn OTG_HS_IRQn +#define USB_OTG_CLK_ENABLE __HAL_RCC_USB_OTG_HS_CLK_ENABLE #else -#define GPIO_AF_USB GPIO_AF10_OTG_FS +#define USB_OTG USB_OTG_FS +#define USB_OTG_IRQHandler OTG_FS_IRQHandler +#define USB_OTG_IRQn OTG_FS_IRQn +#define USB_OTG_CLK_ENABLE __HAL_RCC_USB_OTG_FS_CLK_ENABLE #endif +#define GPIO_AF_USB MYNEWT_VAL(USB_AF_USB) static void -OTG_FS_IRQHandler(void) +OTG_IRQHandler(void) { /* TinyUSB provides interrupt handler code */ tud_int_handler(0); } -#define USB_OTG USB_OTG_FS -#define USB_OTG_CLK_ENABLE __HAL_RCC_USB_OTG_FS_CLK_ENABLE -#elif defined(USB_OTG_HS) -static void -OTG_HS_IRQHandler(void) -{ - /* TinyUSB provides interrupt handler code */ - tud_int_handler(0); -} -#define USB_OTG USB_OTG_HS -#define USB_OTG_CLK_ENABLE __HAL_RCC_USB_OTG_HS_CLK_ENABLE -#define GPIO_AF10_OTG_FS GPIO_AF10_OTG1_FS -#define GPIO_AF_USB GPIO_AF10_OTG_FS -#endif void tinyusb_hardware_init(void) { -#if defined(USB_OTG_FS) - NVIC_SetVector(OTG_FS_IRQn, (uint32_t)OTG_FS_IRQHandler); - NVIC_SetPriority(OTG_FS_IRQn, 2); -#elif defined(USB_OTG_HS) - NVIC_SetVector(OTG_HS_IRQn, (uint32_t)OTG_HS_IRQHandler); - NVIC_SetPriority(OTG_HS_IRQn, 2); -#endif + NVIC_SetVector(USB_OTG_IRQn, (uint32_t)OTG_IRQHandler); + NVIC_SetPriority(USB_OTG_IRQn, 2); /* * USB Pin Init * PA11- DM, PA12- DP @@ -69,7 +56,7 @@ tinyusb_hardware_init(void) hal_gpio_init_af(MCU_GPIO_PORTA(11), GPIO_AF_USB, GPIO_NOPULL, GPIO_MODE_AF_PP); #if MYNEWT_VAL(USB_DP_HAS_EXTERNAL_PULL_UP) hal_gpio_init_out(MCU_GPIO_PORTA(12), 0); -#if MYNEWT_VAL(BOOT_LOADER) +#if MYNEWT_VAL(OS_SCHEDULING) os_cputime_delay_usecs(1000); #else os_time_delay(1); @@ -110,7 +97,7 @@ tinyusb_hardware_init(void) #elif USB_OTG_GCCFG_VBDEN #if MYNEWT_VAL(USB_VBUS_DETECTION_ENABLE) hal_gpio_init_in(MCU_GPIO_PORTA(9), HAL_GPIO_PULL_NONE); - USB_OTG_FS->GCCFG |= USB_OTG_GCCFG_VBDEN; + USB_OTG->GCCFG |= USB_OTG_GCCFG_VBDEN; #else /* PA9- VUSB not used for USB */ USB_OTG->GCCFG &= ~USB_OTG_GCCFG_VBDEN; @@ -120,8 +107,11 @@ tinyusb_hardware_init(void) #endif #endif -#if MYNEWT_VAL(MCU_STM32U5) || MYNEWT_VAL(MCU_STM32L4) +#if MYNEWT_VAL(MCU_STM32U5) || MYNEWT_VAL(MCU_STM32L4) || MYNEWT_VAL(MCU_STM32L5) + __HAL_RCC_PWR_CLK_ENABLE(); /* Enable USB power */ HAL_PWREx_EnableVddUSB(); +#elif MYNEWT_VAL(MCU_STM32H7) + HAL_PWREx_EnableUSBVoltageDetector(); #endif } diff --git a/hw/usb/tinyusb/synopsys/syscfg.yml b/hw/usb/tinyusb/synopsys/syscfg.yml index d0c265f83..9349f14ad 100644 --- a/hw/usb/tinyusb/synopsys/syscfg.yml +++ b/hw/usb/tinyusb/synopsys/syscfg.yml @@ -36,3 +36,11 @@ syscfg.defs: When set to 1, USB ID pin connected to PA10 is used to select host or device mode. value: 0 + USB_USE_OTG_HS: + description: + Use USB_OTG_HS peripheral. + value: 0 + USB_AF_USB: + description: + USB pins alternate function mapping (10 or 12). + value: 10