summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/common/tusb_mcu.h6
-rw-r--r--src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c6
-rw-r--r--src/portable/st/stm32_fsdev/dcd_stm32_fsdev_pvt_st.h8
-rw-r--r--src/tusb_option.h1
4 files changed, 21 insertions, 0 deletions
diff --git a/src/common/tusb_mcu.h b/src/common/tusb_mcu.h
index b903abeca..ba8976a8c 100644
--- a/src/common/tusb_mcu.h
+++ b/src/common/tusb_mcu.h
@@ -229,6 +229,12 @@
#define TUP_USBIP_DWC2_STM32
#define TUP_DCD_ENDPOINT_MAX 6
+#elif TU_CHECK_MCU(OPT_MCU_STM32L5)
+ #define TUP_USBIP_FSDEV
+ #define TUP_USBIP_FSDEV_STM32
+ #define TUP_DCD_ENDPOINT_MAX 8
+
+
//--------------------------------------------------------------------+
// Sony
//--------------------------------------------------------------------+
diff --git a/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c b/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c
index 1677cfa12..98d3d0829 100644
--- a/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c
+++ b/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c
@@ -362,6 +362,9 @@ void dcd_int_enable (uint8_t rhport)
NVIC_EnableIRQ(USB_HP_IRQn);
NVIC_EnableIRQ(USB_LP_IRQn);
+#elif CFG_TUSB_MCU == OPT_MCU_STM32L5
+ NVIC_EnableIRQ(USB_FS_IRQn);
+
#else
#error Unknown arch in USB driver
#endif
@@ -409,6 +412,9 @@ void dcd_int_disable(uint8_t rhport)
NVIC_DisableIRQ(USB_HP_IRQn);
NVIC_DisableIRQ(USB_LP_IRQn);
+#elif CFG_TUSB_MCU == OPT_MCU_STM32L5
+ NVIC_DisableIRQ(USB_FS_IRQn);
+
#else
#error Unknown arch in USB driver
#endif
diff --git a/src/portable/st/stm32_fsdev/dcd_stm32_fsdev_pvt_st.h b/src/portable/st/stm32_fsdev/dcd_stm32_fsdev_pvt_st.h
index 015b177cf..e3fc8aeb5 100644
--- a/src/portable/st/stm32_fsdev/dcd_stm32_fsdev_pvt_st.h
+++ b/src/portable/st/stm32_fsdev/dcd_stm32_fsdev_pvt_st.h
@@ -93,6 +93,14 @@
#include "stm32l4xx.h"
#define PMA_LENGTH (1024u)
+#elif CFG_TUSB_MCU == OPT_MCU_STM32L5
+ #include "stm32l5xx.h"
+ #define PMA_LENGTH (1024u)
+
+ #ifndef USB_PMAADDR
+ #define USB_PMAADDR (USB_BASE + (USB_PMAADDR_NS - USB_BASE_NS))
+ #endif
+
#else
#error You are using an untested or unimplemented STM32 variant. Please update the driver.
// This includes L1x0, L1x1, L1x2, L4x2 and L4x3, G1x1, G1x3, and G1x4
diff --git a/src/tusb_option.h b/src/tusb_option.h
index f8ac722f4..44d036ea4 100644
--- a/src/tusb_option.h
+++ b/src/tusb_option.h
@@ -82,6 +82,7 @@
#define OPT_MCU_STM32G4 311 ///< ST G4
#define OPT_MCU_STM32WB 312 ///< ST WB
#define OPT_MCU_STM32U5 313 ///< ST U5
+#define OPT_MCU_STM32L5 314 ///< ST L5
// Sony
#define OPT_MCU_CXD56 400 ///< SONY CXD56