X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/6a10d6b465be27db090d760dc0fbe722c94e4344..d0db78432fc02bacbd57cc9f15eb05b4e56981cb:/LUFA/Drivers/USB/LowLevel/LowLevel.c?ds=inline diff --git a/LUFA/Drivers/USB/LowLevel/LowLevel.c b/LUFA/Drivers/USB/LowLevel/LowLevel.c index 61acf6def..4fcf4fcab 100644 --- a/LUFA/Drivers/USB/LowLevel/LowLevel.c +++ b/LUFA/Drivers/USB/LowLevel/LowLevel.c @@ -28,8 +28,6 @@ this software. */ -#include "USBMode.h" - #include "LowLevel.h" #if (!defined(USB_HOST_ONLY) && !defined(USB_DEVICE_ONLY)) @@ -70,7 +68,7 @@ void USB_Init( USB_ControlPipeSize = PIPE_CONTROLPIPE_DEFAULT_SIZE; #endif - #if defined(USB_DEVICE_ONLY) && defined(USB_FULL_CONTROLLER) + #if defined(USB_DEVICE_ONLY) && (defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)) UHWCON |= (1 << UIMOD); #elif defined(USB_HOST_ONLY) UHWCON &= ~(1 << UIMOD); @@ -94,14 +92,14 @@ void USB_Init( } else { - RAISE_EVENT(USB_PowerOnFail, POWERON_ERROR_NoUSBModeSpecified); + EVENT_USB_InitFailure(USB_INITERROR_NoUSBModeSpecified); return; } #endif USB_ResetInterface(); - #if defined(USB_FULL_CONTROLLER) || defined(USB_MODIFIED_FULL_CONTROLLER) + #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) USB_OTGPAD_On(); #endif @@ -113,7 +111,7 @@ void USB_Init( void USB_ShutDown(void) { if (USB_IsConnected) - RAISE_EVENT(USB_Disconnect); + EVENT_USB_Disconnect(); USB_Detach(); @@ -138,7 +136,7 @@ void USB_ShutDown(void) USB_Interface_Disable(); USB_PLL_Off(); - #if defined(USB_FULL_CONTROLLER) || defined(USB_MODIFIED_FULL_CONTROLLER) + #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) USB_OTGPAD_Off(); #endif @@ -152,10 +150,10 @@ void USB_ResetInterface(void) USB_INT_DisableAllInterrupts(); USB_INT_ClearAllInterrupts(); - USB_IsConnected = false; + USB_IsConnected = false; #if defined(USB_CAN_BE_HOST) - USB_HostState = HOST_STATE_Unattached; + USB_HostState = HOST_STATE_Unattached; #endif #if defined(USB_CAN_BE_DEVICE) @@ -164,10 +162,10 @@ void USB_ResetInterface(void) USB_RemoteWakeupEnabled = false; USB_CurrentlySelfPowered = false; #endif - + if (!(USB_Options & USB_OPT_MANUAL_PLL)) { - #if defined(USB_MODIFIED_FULL_CONTROLLER) + #if defined(USB_SERIES_4_AVR) PLLFRQ = ((1 << PLLUSB) | (1 << PDIV3) | (1 << PDIV1)); #endif @@ -188,10 +186,12 @@ void USB_ResetInterface(void) if (!(USB_Options & USB_OPT_REG_DISABLED)) USB_REG_On(); + else + USB_REG_Off(); USB_CLK_Unfreeze(); - #if (defined(USB_CAN_BE_DEVICE) && (defined(USB_FULL_CONTROLLER) || defined(USB_MODIFIED_FULL_CONTROLLER))) + #if (defined(USB_CAN_BE_DEVICE) && (defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))) if (USB_CurrentMode == USB_MODE_DEVICE) { if (USB_Options & USB_DEVICE_OPT_LOWSPEED) @@ -208,7 +208,7 @@ void USB_ResetInterface(void) { USB_Descriptor_Device_t* DeviceDescriptorPtr; - if (USB_GetDescriptor((DTYPE_Device << 8), 0, (void*)&DeviceDescriptorPtr) != NO_DESCRIPTOR) + if (CALLBACK_USB_GetDescriptor((DTYPE_Device << 8), 0, (void*)&DeviceDescriptorPtr) != NO_DESCRIPTOR) { #if defined(USE_RAM_DESCRIPTORS) USB_ControlEndpointSize = DeviceDescriptorPtr->Endpoint0Size; @@ -225,7 +225,11 @@ void USB_ResetInterface(void) #if defined(USB_DEVICE_ONLY) USB_INT_Enable(USB_INT_SUSPEND); - USB_INT_Enable(USB_INT_EORSTI); + USB_INT_Enable(USB_INT_EORSTI); + #if defined(CONTROL_ONLY_DEVICE) + UENUM = ENDPOINT_CONTROLEP; + #endif + #elif defined(USB_HOST_ONLY) USB_Host_HostMode_On(); @@ -242,6 +246,10 @@ void USB_ResetInterface(void) { USB_INT_Enable(USB_INT_SUSPEND); USB_INT_Enable(USB_INT_EORSTI); + + #if defined(CONTROL_ONLY_DEVICE) + UENUM = ENDPOINT_CONTROLEP; + #endif } else if (USB_CurrentMode == USB_MODE_HOST) {