void USB_OTG_BSP_DeInit(USB_OTG_CORE_HANDLE *pdev) { // ala42 #define GPIO_AF0 ((uint8_t)0) /* OTG_FS Alternate Function mapping */ gpio_set_mode(GPIOA,11, GPIO_MODE_INPUT); gpio_set_mode(GPIOA,12, GPIO_MODE_INPUT); gpio_set_af_mode(GPIOA,11,GPIO_AF0) ; // OTG_FS_DM gpio_set_af_mode(GPIOA,12,GPIO_AF0) ; // OTG_FS_DP #ifdef USB_OTG_FS_SOF_OUTPUT_ENABLED gpio_set_mode(GPIOA, 8,GPIO_MODE_INPUT); gpio_set_af_mode(GPIOA, 8,GPIO_AF0) ; // OTG_FS_SOF #endif #ifdef VBUS_SENSING_ENABLED gpio_set_mode(GPIOA, 9,GPIO_MODE_INPUT); gpio_set_af_mode(GPIOA, 9,GPIO_AF0) ; // OTG_FS_VBUS #endif #ifdef ID_SENSING_ENABLED gpio_set_mode(GPIOA,10,GPIO_MODE_INPUT); gpio_set_af_mode(GPIOA,10,GPIO_AF0) ; // OTG_FS_ID #endif rcc_clk_enable(RCC_SYSCFG); rcc_clk_disable(RCC_USBFS); }
/** * @brief Disables the SDIO device. */ void sdio_end(void) { sdio_disable(); while ( sdio_cmd_xfer_ongoing() ); sdio_power_off(); rcc_clk_disable(RCC_SDIO); sdio_gpios_deinit(); }
__weak void board_setup_clock_prescalers(void) { rcc_set_prescaler(RCC_PRESCALER_AHB, RCC_AHB_SYSCLK_DIV_1); rcc_set_prescaler(RCC_PRESCALER_APB1, RCC_APB1_HCLK_DIV_2); rcc_set_prescaler(RCC_PRESCALER_APB2, RCC_APB2_HCLK_DIV_1); rcc_clk_disable(RCC_USB); #if F_CPU == 72000000 rcc_set_prescaler(RCC_PRESCALER_USB, RCC_USB_SYSCLK_DIV_1_5); #elif F_CPU == 48000000 rcc_set_prescaler(RCC_PRESCALER_USB, RCC_USB_SYSCLK_DIV_1); #endif }