USB_Options = Options;
#endif
+ if (!(USB_Options & USB_OPT_REG_DISABLED))
+ USB_REG_On();
+ else
+ USB_REG_Off();
+
#if defined(USB_CAN_BE_BOTH)
if (Mode == USB_MODE_UID)
{
void USB_ResetInterface(void)
{
+ #if defined(USB_CAN_BE_BOTH)
bool UIDModeSelectEnabled = ((UHWCON & (1 << UIDE)) != 0);
+ #endif
USB_INT_DisableAllInterrupts();
USB_INT_ClearAllInterrupts();
USB_Controller_Reset();
-
- if (!(USB_Options & USB_OPT_REG_DISABLED))
- USB_REG_On();
- else
- USB_REG_Off();
if (!(USB_Options & USB_OPT_MANUAL_PLL))
{
USB_PLL_On();
while (!(USB_PLL_IsReady()));
- }
-
- USB_CLK_Unfreeze();
+ }
- #if defined(USB_DEVICE_ONLY) && (defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
- UHWCON |= (1 << UIMOD);
- USB_Init_Device();
- #elif defined(USB_HOST_ONLY)
- UHWCON &= ~(1 << UIMOD);
- USB_Init_Host();
- #elif defined(USB_CAN_BE_BOTH)
+ #if defined(USB_CAN_BE_BOTH)
if (UIDModeSelectEnabled)
{
UHWCON |= (1 << UIDE);
USB_INT_Enable(USB_INT_IDTI);
}
+ #endif
+
+ USB_CLK_Unfreeze();
if (USB_CurrentMode == USB_MODE_DEVICE)
{
+ #if defined(USB_CAN_BE_DEVICE)
+ #if (defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
UHWCON |= (1 << UIMOD);
+ #endif
+
USB_Init_Device();
+ #endif
}
else
{
+ #if defined(USB_CAN_BE_HOST)
UHWCON &= ~(1 << UIMOD);
USB_Init_Host();
+ #endif
}
- #endif
+ #if (defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
USB_OTGPAD_On();
- USB_Attach();
+ #endif
}
#if defined(USB_CAN_BE_DEVICE)
USB_INT_Enable(USB_INT_VBUS);
#endif
- USB_INT_Clear(USB_INT_SUSPEND);
- USB_INT_Enable(USB_INT_SUSPEND);
- USB_INT_Clear(USB_INT_EORSTI);
+ Endpoint_ConfigureEndpoint(ENDPOINT_CONTROLEP, EP_TYPE_CONTROL,
+ ENDPOINT_DIR_OUT, USB_ControlEndpointSize,
+ ENDPOINT_BANK_SINGLE);
+
+ USB_INT_Clear(USB_INT_SUSPI);
+ USB_INT_Enable(USB_INT_SUSPI);
USB_INT_Enable(USB_INT_EORSTI);
+
+ USB_Attach();
}
#endif
USB_ControlPipeSize = PIPE_CONTROLPIPE_DEFAULT_SIZE;
USB_Host_HostMode_On();
- USB_CLK_Unfreeze();
USB_Host_VBUS_Auto_Off();
USB_Host_VBUS_Manual_Enable();
USB_INT_Enable(USB_INT_SRPI);
USB_INT_Enable(USB_INT_BCERRI);
+
+ USB_Attach();
}
#endif