diff options
| author | sakumisu <[email protected]> | 2023-12-29 20:59:50 +0800 |
|---|---|---|
| committer | sakumisu <[email protected]> | 2023-12-30 14:39:26 +0800 |
| commit | 65b2de960bf4b1c4666b43a8a805670c1cb9fe2b (patch) | |
| tree | a53a74edac04e3b9e90b10e2070b389492c0ff44 | |
| parent | 019c9cff6e3f054cdcf0a6373c829fdbdc747506 (diff) | |
update gccfg for stm32h7/f7
| -rw-r--r-- | port/dwc2/usb_dc_dwc2.c | 19 | ||||
| -rw-r--r-- | port/dwc2/usb_glue_st.c | 16 |
2 files changed, 24 insertions, 11 deletions
diff --git a/port/dwc2/usb_dc_dwc2.c b/port/dwc2/usb_dc_dwc2.c index a40d6350..7820b1f8 100644 --- a/port/dwc2/usb_dc_dwc2.c +++ b/port/dwc2/usb_dc_dwc2.c @@ -575,7 +575,7 @@ int usb_dc_init(void) while (1) { } } - + USB_OTG_DEV->DCTL |= USB_OTG_DCTL_SDIS; USB_OTG_GLB->GAHBCFG &= ~USB_OTG_GAHBCFG_GINT; @@ -599,19 +599,16 @@ int usb_dc_init(void) /* Restart the Phy Clock */ USB_OTG_PCGCCTL = 0U; - /* Device mode configuration */ - USB_OTG_DEV->DCFG |= DCFG_FRAME_INTERVAL_80; - -#if CONFIG_USB_DWC2_PORT == HS_PORT + /* Device speed configuration */ + USB_OTG_DEV->DCFG &= ~USB_OTG_DCFG_DSPD; #if defined(CONFIG_USB_HS) - /* Set Core speed to High speed mode */ USB_OTG_DEV->DCFG |= USB_OTG_SPEED_HIGH; #else - - USB_OTG_DEV->DCFG |= USB_OTG_SPEED_HIGH_IN_FULL; -#endif -#else - USB_OTG_DEV->DCFG |= USB_OTG_SPEED_FULL; + if (hsphy_type == 0) { + USB_OTG_DEV->DCFG |= USB_OTG_SPEED_FULL; + } else { + USB_OTG_DEV->DCFG |= USB_OTG_SPEED_HIGH_IN_FULL; + } #endif ret = dwc2_flush_txfifo(0x10U); diff --git a/port/dwc2/usb_glue_st.c b/port/dwc2/usb_glue_st.c index cac4f447..d4a199f6 100644 --- a/port/dwc2/usb_glue_st.c +++ b/port/dwc2/usb_glue_st.c @@ -16,8 +16,16 @@ uint32_t usbd_get_dwc2_gccfg_conf(void) #ifdef CONFIG_USB_HS return 0; #else +#if __has_include("stm32h7xx.h") || __has_include("stm32f7xx.h") || __has_include("stm32l4xx.h") +#define USB_OTG_GLB ((USB_OTG_GlobalTypeDef *)(USBD_BASE)) + /* B-peripheral session valid override enable */ + USB_OTG_GLB->GOTGCTL |= USB_OTG_GOTGCTL_BVALOEN; + USB_OTG_GLB->GOTGCTL |= USB_OTG_GOTGCTL_BVALOVAL; + return (1 << 16); +#else return ((1 << 16) | (1 << 21)); #endif +#endif } uint32_t usbh_get_dwc2_gccfg_conf(void) @@ -25,6 +33,14 @@ uint32_t usbh_get_dwc2_gccfg_conf(void) #ifdef CONFIG_USB_DWC2_ULPI_PHY return 0; #else +#if __has_include("stm32h7xx.h") || __has_include("stm32f7xx.h") || __has_include("stm32l4xx.h") +#define USB_OTG_GLB ((USB_OTG_GlobalTypeDef *)(USBD_BASE)) + /* B-peripheral session valid override enable */ + USB_OTG_GLB->GOTGCTL &= ~USB_OTG_GOTGCTL_BVALOEN; + USB_OTG_GLB->GOTGCTL &= ~USB_OTG_GOTGCTL_BVALOVAL; + return (1 << 16); +#else return ((1 << 16) | (1 << 21)); #endif +#endif }
\ No newline at end of file |
