diff options
| author | sakumisu <[email protected]> | 2026-06-30 21:24:21 +0800 |
|---|---|---|
| committer | sakumisu <[email protected]> | 2026-06-30 21:24:21 +0800 |
| commit | f3106a569eb2fc90e060e1bbe1217c4b0f100cf0 (patch) | |
| tree | c27cd52288ec5dd43b863b32b734683891852960 | |
| parent | bec3b36fb8bce1f282964bfd4580a788f3571088 (diff) | |
update(port/musb/usb_glue_sifli): add zephyr support
Signed-off-by: sakumisu <[email protected]>
| -rw-r--r-- | port/musb/usb_glue_sifli.c | 36 |
1 files changed, 29 insertions, 7 deletions
diff --git a/port/musb/usb_glue_sifli.c b/port/musb/usb_glue_sifli.c index ec10d6ba..b993385d 100644 --- a/port/musb/usb_glue_sifli.c +++ b/port/musb/usb_glue_sifli.c @@ -7,6 +7,25 @@ #include "usbh_core.h" #include "usb_musb_reg.h" +void USBC_IRQHandler(void); + +#ifdef __ZEPHYR__ +#include <zephyr/irq.h> + +#ifdef CONFIG_SOC_SERIES_SF32LB58X +#define SOC_SF32LB58X +#elif defined(CONFIG_SOC_SERIES_SF32LB56X) +#define SOC_SF32LB56X +#elif defined(CONFIG_SOC_SERIES_SF32LB52X) +#define SOC_SF32LB52X +#elif defined(CONFIG_SOC_SERIES_SF32LB55X) +#define SOC_SF32LB55X +#else +#error "SOC Undefined, please check if the right SOC series is selected" +#endif // SoC Macro for zephyr + +#endif // __ZEPHYR__ + #undef USB_POWER_SOFTCONN #undef USB_DEVCTL_FSDEV #undef USB_DEVCTL_LSDEV @@ -44,7 +63,7 @@ void usbd_musb_delay_ms(uint8_t ms) /* implement later */ } -#ifdef PKG_CHERRYUSB_DEVICE +#if defined(PKG_CHERRYUSB_DEVICE) || defined(CONFIG_CHERRYUSB_DEVICE) void usb_dc_low_level_init(uint8_t busid) { HAL_RCC_EnableModule(RCC_MOD_USBC); @@ -66,6 +85,9 @@ void usb_dc_low_level_init(uint8_t busid) hwp_usbc->dpbrxdisl = 0xFE; hwp_usbc->dpbtxdisl = 0xFE; #endif +#ifdef __ZEPHYR__ + IRQ_CONNECT(USBC_IRQn, 0, USBC_IRQHandler, NULL, 0); +#endif // __ZEPHYR__ NVIC_EnableIRQ(USBC_IRQn); __HAL_SYSCFG_Enable_USB(); } @@ -90,7 +112,7 @@ void usb_dc_low_level_deinit(uint8_t busid) } #endif -#ifdef PKG_CHERRYUSB_HOST +#if defined(PKG_CHERRYUSB_HOST) || defined(CONFIG_CHERRYUSB_HOST) void usb_hc_low_level_init(struct usbh_bus *bus) { HAL_RCC_EnableModule(RCC_MOD_USBC); @@ -118,7 +140,9 @@ void usb_hc_low_level_init(struct usbh_bus *bus) __HAL_SYSCFG_Enable_USB(); hwp_usbc->usbcfg &= 0xEF; hwp_usbc->dbgl = 0x80; - +#ifdef __ZEPHYR__ + IRQ_CONNECT(USBC_IRQn, 0, USBC_IRQHandler, NULL, 0); +#endif // __ZEPHYR__ NVIC_EnableIRQ(USBC_IRQn); } @@ -175,12 +199,10 @@ void musb_sifli_reset_port(struct usbh_bus *bus) void USBC_IRQHandler(void) { - rt_interrupt_enter(); -#ifdef PKG_CHERRYUSB_DEVICE +#if defined(PKG_CHERRYUSB_DEVICE) || defined(CONFIG_CHERRYUSB_DEVICE) USBD_IRQHandler(0); #endif -#ifdef PKG_CHERRYUSB_HOST +#if defined(PKG_CHERRYUSB_HOST) || defined(CONFIG_CHERRYUSB_HOST) USBH_IRQHandler(0); #endif - rt_interrupt_leave(); }
\ No newline at end of file |
