Description
Source
Call Graph
Start Line: 1182
void USBD_Init(void)
{
TRACE_INFO_WP("USBD_Init\n\r");
// Reset endpoint structures
UDP_ResetEndpoints();
// Configure the pull-up on D+ and disconnect it
#if defined(BOARD_USB_PULLUP_EXTERNAL)
const Pin pinPullUp = PIN_USB_PULLUP;
PIO_Configure(&pinPullUp, 1);
#elif defined(BOARD_USB_PULLUP_INTERNAL)
AT91C_BASE_UDP->UDP_TXVC &= ~AT91C_UDP_PUON;
#elif defined(BOARD_USB_PULLUP_MATRIX)
AT91C_BASE_MATRIX->MATRIX_USBPCR &= ~AT91C_MATRIX_USBPCR_PUON;
#elif !defined(BOARD_USB_PULLUP_ALWAYSON)
#error Missing pull-up definition.
#endif
// Device is in the Attached state
deviceState = USBD_STATE_SUSPENDED;
previousDeviceState = USBD_STATE_POWERED;
UDP_EnablePeripheralClock();
UDP_EnableUsbClock();
AT91C_BASE_UDP->UDP_IDR = 0xFE;
AT91C_BASE_UDP->UDP_IER = AT91C_UDP_WAKEUP;
// Configure interrupts
USBDCallbacks_Initialized();
}