From f26adf6506b13964370825279787eed24dd4fe38 Mon Sep 17 00:00:00 2001 From: tfx2001 <2479727366@qq.com> Date: Wed, 20 Oct 2021 01:14:32 +0800 Subject: [PATCH] [bsp][stm32] add tinyusb stm32 driver --- bsp/stm32/libraries/HAL_Drivers/SConscript | 3 ++ bsp/stm32/libraries/HAL_Drivers/drv_tinyusb.c | 46 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 bsp/stm32/libraries/HAL_Drivers/drv_tinyusb.c diff --git a/bsp/stm32/libraries/HAL_Drivers/SConscript b/bsp/stm32/libraries/HAL_Drivers/SConscript index dabcc7002c..78a9ae9e78 100644 --- a/bsp/stm32/libraries/HAL_Drivers/SConscript +++ b/bsp/stm32/libraries/HAL_Drivers/SConscript @@ -106,6 +106,9 @@ if GetDepend(['BSP_USING_PULSE_ENCODER']): if GetDepend(['BSP_USING_USBH']): src += ['drv_usbh.c'] +if GetDepend(['PKG_USING_TINYUSB']): + src += ['drv_tinyusb.c'] + src += ['drv_common.c'] path = [cwd] diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_tinyusb.c b/bsp/stm32/libraries/HAL_Drivers/drv_tinyusb.c new file mode 100644 index 0000000000..5219721ea5 --- /dev/null +++ b/bsp/stm32/libraries/HAL_Drivers/drv_tinyusb.c @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2021-10-20 tfx2001 first version + */ + +#ifdef PKG_USING_TINYUSB + +#include +#include + +int tusb_board_init(void) +{ + PCD_HandleTypeDef hpcd; + + memset(&hpcd, 0, sizeof(hpcd)); + /* Set LL Driver parameters */ + hpcd.Instance = USBD_INSTANCE; + hpcd.Init.dev_endpoints = 8; + hpcd.Init.speed = USBD_PCD_SPEED; +#if defined(SOC_SERIES_STM32F3) || defined(SOC_SERIES_STM32F4) + hpcd.Init.ep0_mps = EP_MPS_64; +#else + hpcd.Init.ep0_mps = DEP0CTL_MPS_64; +#endif +#if !defined(SOC_SERIES_STM32F1) + hpcd.Init.phy_itface = USBD_PCD_PHY_MODULE; +#endif + /* Initialize LL Driver */ + HAL_PCD_Init(&hpcd); + /* USB interrupt Init */ + HAL_NVIC_SetPriority(USBD_IRQ_TYPE, 2, 0); + HAL_NVIC_EnableIRQ(USBD_IRQ_TYPE); + return 0; +} + +void USBD_IRQ_HANDLER(void) +{ + tud_int_handler(0); +} + +#endif