diff options
Diffstat (limited to 'bsp/at32/at32f415-start/board/src')
| -rw-r--r-- | bsp/at32/at32f415-start/board/src/at32_msp.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/bsp/at32/at32f415-start/board/src/at32_msp.c b/bsp/at32/at32f415-start/board/src/at32_msp.c index e8515a00af..a72fc80e06 100644 --- a/bsp/at32/at32f415-start/board/src/at32_msp.c +++ b/bsp/at32/at32f415-start/board/src/at32_msp.c @@ -283,3 +283,43 @@ void at32_msp_can_init(void *instance) #endif } #endif /* BSP_USING_CAN */ + +#ifdef BSP_USING_USBFS +void at32_msp_usb_init(void *instance) +{ + /* enable usb clock */ + crm_periph_clock_enable(CRM_OTGFS1_PERIPH_CLOCK, TRUE); + + switch(system_core_clock) + { + /* 48MHz */ + case 48000000: + crm_usb_clock_div_set(CRM_USB_DIV_1); + break; + + /* 72MHz */ + case 72000000: + crm_usb_clock_div_set(CRM_USB_DIV_1_5); + break; + + /* 96MHz */ + case 96000000: + crm_usb_clock_div_set(CRM_USB_DIV_2); + break; + + /* 120MHz */ + case 120000000: + crm_usb_clock_div_set(CRM_USB_DIV_2_5); + break; + + /* 144MHz */ + case 144000000: + crm_usb_clock_div_set(CRM_USB_DIV_3); + break; + + default: + break; + } +} + +#endif /* BSP_USING_USBFS */ |
