|
|
@@ -0,0 +1,66 @@
|
|
|
+/*
|
|
|
+ * Copyright (c) 2025, sakumisu
|
|
|
+ *
|
|
|
+ * SPDX-License-Identifier: Apache-2.0
|
|
|
+ */
|
|
|
+#include "usbd_core.h"
|
|
|
+
|
|
|
+#if __has_include("stm32f0xx_hal.h")
|
|
|
+#include "stm32f0xx_hal.h"
|
|
|
+#elif __has_include("stm32f1xx_hal.h")
|
|
|
+#include "stm32f1xx_hal.h"
|
|
|
+#elif __has_include("stm32f3xx_hal.h")
|
|
|
+#include "stm32f3xx_hal.h"
|
|
|
+#elif __has_include("stm32g0xx_hal.h")
|
|
|
+#include "stm32g0xx_hal.h"
|
|
|
+#elif __has_include("stm32g4xx_hal.h")
|
|
|
+#include "stm32g4xx_hal.h"
|
|
|
+#elif __has_include("stm32l0xx_hal.h")
|
|
|
+#include "stm32l0xx_hal.h"
|
|
|
+#elif __has_include("stm32l1xx_hal.h")
|
|
|
+#include "stm32l1xx_hal.h"
|
|
|
+#elif __has_include("stm32l4xx_hal.h")
|
|
|
+#include "stm32l4xx_hal.h"
|
|
|
+#elif __has_include("stm32l5xx_hal.h")
|
|
|
+#include "stm32l5xx_hal.h"
|
|
|
+#endif
|
|
|
+
|
|
|
+#if !defined(HAL_PCD_MODULE_ENABLED)
|
|
|
+#error please define HAL_PCD_MODULE_ENABLED in stm32xxx_hal_conf.h
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifndef CONFIG_USBDEV_FSDEV_PMA_ACCESS
|
|
|
+#error "please define CONFIG_USBDEV_FSDEV_PMA_ACCESS in usb_config.h"
|
|
|
+#endif
|
|
|
+
|
|
|
+#if CONFIG_USBDEV_FSDEV_PMA_ACCESS != PMA_ACCESS
|
|
|
+#error "CONFIG_USBDEV_FSDEV_PMA_ACCESS must be equal PMA_ACCESS"
|
|
|
+#endif
|
|
|
+
|
|
|
+struct fsdev_instance {
|
|
|
+ USB_TypeDef *Instance;
|
|
|
+};
|
|
|
+
|
|
|
+static struct fsdev_instance g_fsdev_instance;
|
|
|
+
|
|
|
+void usb_dc_low_level_init(uint8_t busid)
|
|
|
+{
|
|
|
+ g_fsdev_instance.Instance = (USB_TypeDef *)g_usbdev_bus[busid].reg_base;
|
|
|
+ HAL_PCD_MspInit((PCD_HandleTypeDef *)&g_fsdev_instance);
|
|
|
+}
|
|
|
+
|
|
|
+void usb_dc_low_level_deinit(uint8_t busid)
|
|
|
+{
|
|
|
+ g_fsdev_instance.Instance = (USB_TypeDef *)g_usbdev_bus[busid].reg_base;
|
|
|
+ HAL_PCD_MspDeInit((PCD_HandleTypeDef *)&g_fsdev_instance);
|
|
|
+}
|
|
|
+
|
|
|
+void USB_IRQHandler(void)
|
|
|
+{
|
|
|
+ USBD_IRQHandler(0);
|
|
|
+}
|
|
|
+
|
|
|
+void USB_LP_IRQHandler(void)
|
|
|
+{
|
|
|
+ USBD_IRQHandler(0);
|
|
|
+}
|