void USB_INT_DisableAllInterrupts(void)
{
#if defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)
- USBCON &= ~((1 << OTGPADE) | (1 << VBUSTE) | (1 << IDTE));
+ USBCON &= ~((1 << VBUSTE) | (1 << IDTE));
#elif defined(USB_SERIES_4_AVR)
USBCON &= ~(1 << VBUSTE);
#endif
}
#endif
- if (USB_INT_HasOccurred(USB_INT_SUSPEND) && USB_INT_IsEnabled(USB_INT_SUSPEND))
+ if (USB_INT_HasOccurred(USB_INT_SUSPI) && USB_INT_IsEnabled(USB_INT_SUSPI))
{
- USB_INT_Clear(USB_INT_SUSPEND);
+ USB_INT_Clear(USB_INT_SUSPI);
- USB_INT_Disable(USB_INT_SUSPEND);
- USB_INT_Enable(USB_INT_WAKEUP);
+ USB_INT_Disable(USB_INT_SUSPI);
+ USB_INT_Enable(USB_INT_WAKEUPI);
USB_CLK_Freeze();
#endif
}
- if (USB_INT_HasOccurred(USB_INT_WAKEUP) && USB_INT_IsEnabled(USB_INT_WAKEUP))
+ if (USB_INT_HasOccurred(USB_INT_WAKEUPI) && USB_INT_IsEnabled(USB_INT_WAKEUPI))
{
if (!(USB_Options & USB_OPT_MANUAL_PLL))
{
USB_CLK_Unfreeze();
- USB_INT_Clear(USB_INT_WAKEUP);
+ USB_INT_Clear(USB_INT_WAKEUPI);
- USB_INT_Disable(USB_INT_WAKEUP);
- USB_INT_Enable(USB_INT_SUSPEND);
+ USB_INT_Disable(USB_INT_WAKEUPI);
+ USB_INT_Enable(USB_INT_SUSPI);
+
+ if (USB_ConfigurationNumber)
+ USB_DeviceState = DEVICE_STATE_Configured;
+ else
+ USB_DeviceState = (USB_Device_IsAddressSet()) ? DEVICE_STATE_Configured : DEVICE_STATE_Powered;
#if defined(USB_SERIES_2_AVR) && !defined(NO_LIMITED_CONTROLLER_CONNECT)
- USB_DeviceState = (USB_ConfigurationNumber) ? DEVICE_STATE_Configured : DEVICE_STATE_Powered;
EVENT_USB_Device_Connect();
#else
- USB_DeviceState = (USB_ConfigurationNumber) ? DEVICE_STATE_Configured : DEVICE_STATE_Addressed;
EVENT_USB_Device_WakeUp();
#endif
}
USB_DeviceState = DEVICE_STATE_Default;
USB_ConfigurationNumber = 0;
- USB_INT_Clear(USB_INT_SUSPEND);
- USB_INT_Disable(USB_INT_SUSPEND);
- USB_INT_Enable(USB_INT_WAKEUP);
+ USB_INT_Clear(USB_INT_SUSPI);
+ USB_INT_Disable(USB_INT_SUSPI);
+ USB_INT_Enable(USB_INT_WAKEUPI);
Endpoint_ConfigureEndpoint(ENDPOINT_CONTROLEP, EP_TYPE_CONTROL,
ENDPOINT_DIR_OUT, USB_ControlEndpointSize,
#endif
#if defined(USB_CAN_BE_HOST)
- bool MustResetInterface = false;
-
if (USB_INT_HasOccurred(USB_INT_DDISCI) && USB_INT_IsEnabled(USB_INT_DDISCI))
{
USB_INT_Clear(USB_INT_DDISCI);
USB_INT_Disable(USB_INT_DDISCI);
EVENT_USB_Host_DeviceUnattached();
-
- MustResetInterface = true;
+
+ USB_ResetInterface();
}
if (USB_INT_HasOccurred(USB_INT_VBERRI) && USB_INT_IsEnabled(USB_INT_VBERRI))
EVENT_USB_Host_DeviceEnumerationFailed(HOST_ENUMERROR_NoDeviceDetected, 0);
EVENT_USB_Host_DeviceUnattached();
- MustResetInterface = true;
+ USB_ResetInterface();
}
if (USB_INT_HasOccurred(USB_INT_HSOFI) && USB_INT_IsEnabled(USB_INT_HSOFI))
EVENT_USB_Host_DeviceUnattached();
USB_CurrentMode = USB_GetUSBModeFromUID();
- EVENT_USB_UIDChange();
+ USB_ResetInterface();
- MustResetInterface = true;
+ EVENT_USB_UIDChange();
}
-
- if (MustResetInterface)
- USB_ResetInterface();
#endif
}