1 /* 2 * Copyright (c) 2024, sakumisu 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 #include "usb_config.h" 7 #include "usb_dwc2_reg.h" 8 9 /* When using [GPIO_SetFunc(USBF_VBUS_PORT, USBF_VBUS_PIN, USBF_VBUS_FUNC);], there is no need to configure GOTGCTL */ 10 11 #define USB_OTG_GLB ((DWC2_GlobalTypeDef *)(reg_base)) 12 usbd_get_dwc2_gccfg_conf(uint32_t reg_base)13uint32_t usbd_get_dwc2_gccfg_conf(uint32_t reg_base) 14 { 15 16 USB_OTG_GLB->GOTGCTL |= USB_OTG_GOTGCTL_BVALOEN; 17 USB_OTG_GLB->GOTGCTL |= USB_OTG_GOTGCTL_BVALOVAL; 18 return 0; 19 } 20 usbh_get_dwc2_gccfg_conf(uint32_t reg_base)21uint32_t usbh_get_dwc2_gccfg_conf(uint32_t reg_base) 22 { 23 USB_OTG_GLB->GOTGCTL &= ~USB_OTG_GOTGCTL_BVALOEN; 24 USB_OTG_GLB->GOTGCTL &= ~USB_OTG_GOTGCTL_BVALOVAL; 25 return 0; 26 } 27 28 extern uint32_t SystemCoreClock; 29 usbd_dwc2_delay_ms(uint8_t ms)30void usbd_dwc2_delay_ms(uint8_t ms) 31 { 32 uint32_t count = SystemCoreClock / 1000 * ms; 33 while (count--) { 34 __asm volatile("nop"); 35 } 36 } 37