From 419622f4e49b9875273806ba7da799304c15f8cc Mon Sep 17 00:00:00 2001 From: sakimisu <1203593632@qq.com> Date: Wed, 15 Mar 2023 21:47:28 +0800 Subject: [PATCH] fix vbusen in gd32 --- port/dwc2/usb_dc_dwc2.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/port/dwc2/usb_dc_dwc2.c b/port/dwc2/usb_dc_dwc2.c index b06e9e6f..892cbb7d 100644 --- a/port/dwc2/usb_dc_dwc2.c +++ b/port/dwc2/usb_dc_dwc2.c @@ -553,7 +553,7 @@ int usb_dc_init(void) USB_OTG_GLB->DIEPTXF[i] = 0U; } -#if defined(STM32F7) || defined(STM32H7) ||defined(STM32L4) +#if defined(STM32F7) || defined(STM32H7) || defined(STM32L4) #ifdef CONFIG_DWC2_VBUS_SENSING_ENABLE /* Enable HW VBUS sensing */ USB_OTG_GLB->GCCFG |= USB_OTG_GCCFG_VBDEN; @@ -570,6 +570,9 @@ int usb_dc_init(void) /* Enable HW VBUS sensing */ USB_OTG_GLB->GCCFG &= ~USB_OTG_GCCFG_NOVBUSSENS; USB_OTG_GLB->GCCFG |= USB_OTG_GCCFG_VBUSBSEN; +#else +#ifdef CONFIG_DWC2_GD32 + USB_OTG_GLB->GCCFG |= USB_OTG_GCCFG_VBUSBSEN | USB_OTG_GCCFG_VBUSASEN; #else /* * Disable HW VBUS sensing. VBUS is internally considered to be always @@ -579,6 +582,7 @@ int usb_dc_init(void) USB_OTG_GLB->GCCFG &= ~USB_OTG_GCCFG_VBUSBSEN; USB_OTG_GLB->GCCFG &= ~USB_OTG_GCCFG_VBUSASEN; #endif +#endif #endif /* Restart the Phy Clock */ USB_OTG_PCGCCTL = 0U; @@ -751,7 +755,7 @@ int usbd_ep_close(const uint8_t ep) if (USB_EP_DIR_IS_OUT(ep)) { USB_OTG_OUTEP(ep_idx)->DOEPCTL |= USB_OTG_DOEPCTL_SNAK; -// USB_OTG_OUTEP(ep_idx)->DOEPCTL |= USB_OTG_DOEPCTL_EPDIS; + // USB_OTG_OUTEP(ep_idx)->DOEPCTL |= USB_OTG_DOEPCTL_EPDIS; USB_OTG_DEV->DEACHMSK &= ~(USB_OTG_DAINTMSK_OEPM & ((uint32_t)(1UL << (ep_idx & 0x07)) << 16)); USB_OTG_DEV->DAINTMSK &= ~(USB_OTG_DAINTMSK_OEPM & ((uint32_t)(1UL << (ep_idx & 0x07)) << 16)); @@ -761,13 +765,13 @@ int usbd_ep_close(const uint8_t ep) USB_OTG_DOEPCTL_EPTYP); } else { USB_OTG_INEP(ep_idx)->DIEPCTL |= USB_OTG_DIEPCTL_SNAK; -// USB_OTG_INEP(ep_idx)->DIEPCTL |= USB_OTG_DIEPCTL_EPDIS; + // USB_OTG_INEP(ep_idx)->DIEPCTL |= USB_OTG_DIEPCTL_EPDIS; USB_OTG_DEV->DEACHMSK &= ~(USB_OTG_DAINTMSK_IEPM & (uint32_t)(1UL << (ep_idx & 0x07))); USB_OTG_DEV->DAINTMSK &= ~(USB_OTG_DAINTMSK_IEPM & (uint32_t)(1UL << (ep_idx & 0x07))); USB_OTG_INEP(ep_idx)->DIEPCTL &= ~(USB_OTG_DIEPCTL_USBAEP | USB_OTG_DIEPCTL_MPSIZ | -// USB_OTG_DIEPCTL_TXFNUM | + // USB_OTG_DIEPCTL_TXFNUM | USB_OTG_DIEPCTL_SD0PID_SEVNFRM | USB_OTG_DIEPCTL_EPTYP); }