Fixed incorrect comparison in the descriptor callback routine of the TeensyHID bootlo...
[pub/USBasp.git] / LUFA / Drivers / USB / LowLevel / LowLevel.c
index bd12729..a088654 100644 (file)
@@ -1,13 +1,13 @@
 /*\r
              LUFA Library\r
 /*\r
              LUFA Library\r
-     Copyright (C) Dean Camera, 2009.\r
+     Copyright (C) Dean Camera, 2010.\r
               \r
   dean [at] fourwalledcubicle [dot] com\r
       www.fourwalledcubicle.com\r
 */\r
 \r
 /*\r
               \r
   dean [at] fourwalledcubicle [dot] com\r
       www.fourwalledcubicle.com\r
 */\r
 \r
 /*\r
-  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
+  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
 \r
   Permission to use, copy, modify, distribute, and sell this \r
   software and its documentation for any purpose is hereby granted\r
 \r
   Permission to use, copy, modify, distribute, and sell this \r
   software and its documentation for any purpose is hereby granted\r
@@ -28,6 +28,7 @@
   this software.\r
 */\r
 \r
   this software.\r
 */\r
 \r
+#define  __INCLUDE_FROM_USB_DRIVER\r
 #include "LowLevel.h"\r
 \r
 #if (!defined(USB_HOST_ONLY) && !defined(USB_DEVICE_ONLY))\r
 #include "LowLevel.h"\r
 \r
 #if (!defined(USB_HOST_ONLY) && !defined(USB_DEVICE_ONLY))\r
@@ -102,8 +103,6 @@ void USB_Init(
        #endif\r
 \r
        USB_IsInitialized = true;\r
        #endif\r
 \r
        USB_IsInitialized = true;\r
-\r
-       sei();\r
 }\r
 \r
 void USB_ShutDown(void)\r
 }\r
 \r
 void USB_ShutDown(void)\r
@@ -112,9 +111,18 @@ void USB_ShutDown(void)
        USB_Detach();\r
        USB_Controller_Disable();\r
        \r
        USB_Detach();\r
        USB_Controller_Disable();\r
        \r
+       USB_INT_DisableAllInterrupts();\r
+       USB_INT_ClearAllInterrupts();\r
+\r
+       #if defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)\r
+       UHWCON &= ~(1 << UIMOD);\r
+       #endif\r
+       \r
        if (!(USB_Options & USB_OPT_MANUAL_PLL))\r
          USB_PLL_Off();\r
        \r
        if (!(USB_Options & USB_OPT_MANUAL_PLL))\r
          USB_PLL_Off();\r
        \r
+       USB_REG_Off();\r
+\r
        #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)\r
        USB_OTGPAD_Off();\r
        #endif\r
        #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)\r
        USB_OTGPAD_Off();\r
        #endif\r
@@ -144,11 +152,11 @@ void USB_ResetInterface(void)
        USB_ConfigurationNumber  = 0;\r
 \r
        #if !defined(NO_DEVICE_REMOTE_WAKEUP)\r
        USB_ConfigurationNumber  = 0;\r
 \r
        #if !defined(NO_DEVICE_REMOTE_WAKEUP)\r
-               USB_RemoteWakeupEnabled  = false;\r
+       USB_RemoteWakeupEnabled  = false;\r
        #endif\r
        \r
        #if !defined(NO_DEVICE_SELF_POWER)\r
        #endif\r
        \r
        #if !defined(NO_DEVICE_SELF_POWER)\r
-               USB_CurrentlySelfPowered = false;\r
+       USB_CurrentlySelfPowered = false;\r
        #endif\r
        #endif\r
        \r
        #endif\r
        #endif\r
        \r
@@ -216,9 +224,9 @@ void USB_ResetInterface(void)
        USB_INT_Clear(USB_INT_EORSTI);\r
        USB_INT_Enable(USB_INT_EORSTI);\r
 \r
        USB_INT_Clear(USB_INT_EORSTI);\r
        USB_INT_Enable(USB_INT_EORSTI);\r
 \r
-               #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)\r
-               USB_INT_Enable(USB_INT_VBUS);\r
-               #endif\r
+       #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)\r
+       USB_INT_Enable(USB_INT_VBUS);\r
+       #endif\r
        #elif defined(USB_HOST_ONLY)\r
        USB_Host_HostMode_On();\r
        \r
        #elif defined(USB_HOST_ONLY)\r
        USB_Host_HostMode_On();\r
        \r