Changed per-device controller preprocessor checks over to per-device series for bette...
authorDean Camera <dean@fourwalledcubicle.com>
Sun, 14 Jun 2009 07:44:02 +0000 (07:44 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Sun, 14 Jun 2009 07:44:02 +0000 (07:44 +0000)
Fixed error in Endpoint.c using HSOFI rather than SOFI for counting elapsed milliseconds.

21 files changed:
Demos/Device/ClassDriver/AudioInput/Descriptors.h
Demos/Device/ClassDriver/AudioOutput/AudioOutput.h
Demos/Device/ClassDriver/AudioOutput/Descriptors.h
Demos/Device/LowLevel/AudioInput/Descriptors.h
Demos/Device/LowLevel/AudioOutput/AudioOutput.h
Demos/Device/LowLevel/AudioOutput/Descriptors.h
Demos/Device/LowLevel/MassStorage/MassStorage.c
Demos/Host/Incomplete/BluetoothHost/BluetoothACLPackets.c
Demos/Host/Incomplete/BluetoothHost/BluetoothACLPackets.h
Demos/Host/Incomplete/BluetoothHost/makefile
LUFA/ChangeLog.txt
LUFA/Drivers/USB/HighLevel/Events.h
LUFA/Drivers/USB/HighLevel/USBInterrupt.c
LUFA/Drivers/USB/HighLevel/USBMode.h
LUFA/Drivers/USB/LowLevel/DevChapter9.c
LUFA/Drivers/USB/LowLevel/Device.h
LUFA/Drivers/USB/LowLevel/Endpoint.c
LUFA/Drivers/USB/LowLevel/Endpoint.h
LUFA/Drivers/USB/LowLevel/LowLevel.c
LUFA/Drivers/USB/LowLevel/LowLevel.h
LUFA/Drivers/USB/USB.h

index b2225b2..12bf07f 100644 (file)
@@ -43,7 +43,7 @@
                #include <avr/pgmspace.h>\r
 \r
        /* Macros: */\r
-               #if defined(USB_FULL_CONTROLLER) || defined(__DOXYGEN__)\r
+               #if defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) || defined(__DOXYGEN__)\r
                        /** Endpoint number of the Audio isochronous streaming data endpoint. */\r
                        #define AUDIO_STREAM_EPNUM       1\r
                #else\r
index f8d703e..b09fed5 100644 (file)
@@ -51,7 +51,7 @@
                #include <LUFA/Drivers/USB/Class/Device/Audio.h>\r
        \r
        /* Macros: */\r
-               #if defined(USB_FULL_CONTROLLER) || defined(USB_MODIFIED_FULL_CONTROLLER)\r
+               #if (defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))\r
                        #define TCCRxA          TCCR3A\r
                        #define TCCRxB          TCCR3B\r
                        #define OCRxA           OCR3A\r
index f007890..149b5ed 100644 (file)
@@ -43,7 +43,7 @@
                #include <avr/pgmspace.h>\r
 \r
        /* Macros: */\r
-               #if defined(USB_FULL_CONTROLLER) || defined(__DOXYGEN__)\r
+               #if defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) || defined(__DOXYGEN__)\r
                        /** Endpoint number of the Audio isochronous streaming data endpoint. */\r
                        #define AUDIO_STREAM_EPNUM       1\r
                #else\r
index c2b4b05..9180ce9 100644 (file)
                 */\r
                #define EP_ACCEPTS_SMALL_PACKETS     (0 << 7)\r
 \r
-               #if defined(USB_FULL_CONTROLLER) || defined(__DOXYGEN__)\r
+               #if defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) || defined(__DOXYGEN__)\r
                        /** Endpoint number of the Audio isochronous streaming data endpoint. */\r
                        #define AUDIO_STREAM_EPNUM       1\r
                #else\r
index d722d53..7970efe 100644 (file)
@@ -48,7 +48,7 @@
                #include <LUFA/Drivers/Board/LEDs.h>
        \r
        /* Macros: */\r
-               #if defined(USB_FULL_CONTROLLER) || defined(USB_MODIFIED_FULL_CONTROLLER)\r
+               #if (defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))\r
                        #define TCCRxA          TCCR3A\r
                        #define TCCRxB          TCCR3B\r
                        #define OCRxA           OCR3A\r
index e114571..d7abc5d 100644 (file)
                 */\r
                #define EP_ACCEPTS_SMALL_PACKETS     (0 << 7)\r
 \r
-               #if defined(USB_FULL_CONTROLLER) || defined(__DOXYGEN__)\r
+               #if defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) || defined(__DOXYGEN__)\r
                        /** Endpoint number of the Audio isochronous streaming data endpoint. */\r
                        #define AUDIO_STREAM_EPNUM       1\r
                #else\r
index ee2a9d7..3f992c2 100644 (file)
@@ -111,15 +111,15 @@ void EVENT_USB_ConfigurationChanged(void)
 \r
        /* Setup Mass Storage In and Out Endpoints */\r
        if (!(Endpoint_ConfigureEndpoint(MASS_STORAGE_IN_EPNUM, EP_TYPE_BULK,\r
-                                      ENDPOINT_DIR_IN, MASS_STORAGE_IO_EPSIZE,\r
-                                  ENDPOINT_BANK_DOUBLE)))\r
+                                            ENDPOINT_DIR_IN, MASS_STORAGE_IO_EPSIZE,\r
+                                        ENDPOINT_BANK_DOUBLE)))\r
        {\r
                LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
        }\r
        \r
        if (!(Endpoint_ConfigureEndpoint(MASS_STORAGE_OUT_EPNUM, EP_TYPE_BULK,\r
-                                      ENDPOINT_DIR_OUT, MASS_STORAGE_IO_EPSIZE,\r
-                                  ENDPOINT_BANK_DOUBLE)))\r
+                                            ENDPOINT_DIR_OUT, MASS_STORAGE_IO_EPSIZE,\r
+                                        ENDPOINT_BANK_DOUBLE)))\r
        {\r
                LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
        }                                                          \r
index d5af8d1..7697f88 100644 (file)
@@ -34,6 +34,7 @@
 void Bluetooth_ProcessACLPackets(void)\r
 {\r
        Bluetooth_ACL_Header_t ACLPacketHeader;\r
+       Bluetooth_DataPacket_Header_t DataHeader;\r
 \r
        Pipe_SelectPipe(BLUETOOTH_DATA_IN_PIPE);\r
        Pipe_SetToken(PIPE_TOKEN_IN);\r
@@ -46,8 +47,6 @@ void Bluetooth_ProcessACLPackets(void)
        }\r
          \r
        Pipe_Read_Stream_LE(&ACLPacketHeader, sizeof(ACLPacketHeader));\r
-               \r
-       Bluetooth_DataPacket_Header_t DataHeader;\r
        Pipe_Read_Stream_LE(&DataHeader, sizeof(DataHeader));\r
 \r
        BT_DEBUG("(ACL) Packet Received", NULL);\r
@@ -68,7 +67,14 @@ void Bluetooth_ProcessACLPackets(void)
                                break;\r
                        case BLUETOOTH_SIGNAL_CONFIGURATION_REQUEST:\r
                                Bluetooth_ProcessSignalPacket_ConfigurationRequest(&ACLPacketHeader, &DataHeader, &SignalCommandHeader);\r
-                               break;                  \r
+                               break;\r
+                       case BLUETOOTH_SIGNAL_INFORMATION_REQUEST:\r
+                               BT_DEBUG("(ACL) -- Information Request, Discarded");\r
+\r
+                               Pipe_Discard_Stream(ACLPacketHeader.DataLength);\r
+                               Pipe_ClearIN();         \r
+                               Pipe_Freeze();\r
+                               break;\r
                        default:\r
                                BT_DEBUG("(ACL) >> Unknown Signalling Command 0x%02X", SignalCommandHeader.Code);\r
                                        \r
index 20c6cca..8c49e09 100644 (file)
@@ -48,6 +48,7 @@
                #define BLUETOOTH_SIGNAL_CONNECTION_RESPONSE     0x03\r
                #define BLUETOOTH_SIGNAL_CONFIGURATION_REQUEST   0x04\r
                #define BLUETOOTH_SIGNAL_CONFIGURATION_RESPONSE  0x05\r
+               #define BLUETOOTH_SIGNAL_INFORMATION_REQUEST     0x0A\r
                \r
                #define BLUETOOTH_CONNECTION_SUCCESSFUL          0x0000\r
                #define BLUETOOTH_CONNECTION_REFUSED_RESOURCES   0x0004\r
index 3406c26..f24f6ff 100644 (file)
@@ -60,7 +60,7 @@
 \r
 \r
 # MCU name\r
-MCU = at90usb1287\r
+MCU = at90usb647\r
 \r
 \r
 # Target board (see library "Board Types" documentation, USER or blank for projects not requiring\r
index 119fb43..17f652e 100644 (file)
@@ -16,6 +16,8 @@
   *  - MIDI device demo no longer blocks if a note change event is sent while the endpoint is not ready\r
   *  - Fixes to MassStorageHost for better device compatibility (increase command timeout, change MassStore_WaitForDataReceived()\r
   *    to only unfreeze and check one data pipe at a time)\r
+  *  - Internal per-device preprocessing conditions changed to per-device series rather than per controller group for finer-grain\r
+  *    internal control\r
   *\r
   *\r
   *  \section Sec_ChangeLog090605 Version 090605\r
index 80ace87..7f369bc 100644 (file)
                        #if defined(INCLUDE_FROM_EVENTS_C)\r
                                void USB_Event_Stub(void) ATTR_CONST;\r
 \r
-                               #if defined(USB_FULL_CONTROLLER) || defined(USB_MODIFIED_FULL_CONTROLLER)\r
+                               #if (defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))\r
                                        void EVENT_USB_VBUSChange(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);\r
                                        void EVENT_USB_VBUSConnect(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);\r
                                        void EVENT_USB_VBUSDisconnect(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);\r
index 0b9d082..43bc532 100644 (file)
@@ -32,9 +32,9 @@
 \r
 void USB_INT_DisableAllInterrupts(void)\r
 {\r
-       #if defined(USB_FULL_CONTROLLER)\r
+       #if defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)\r
        USBCON &= ~((1 << VBUSTE) | (1 << IDTE));                               \r
-       #elif defined(USB_MODIFIED_FULL_CONTROLLER)\r
+       #elif defined(USB_SERIES_4_AVR)\r
        USBCON &= ~(1 << VBUSTE);                                       \r
        #endif\r
        \r
@@ -50,7 +50,7 @@ void USB_INT_DisableAllInterrupts(void)
 \r
 void USB_INT_ClearAllInterrupts(void)\r
 {\r
-       #if defined(USB_FULL_CONTROLLER) || defined(USB_MODIFIED_FULL_CONTROLLER)\r
+       #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)\r
        USBINT  = 0;\r
        #endif\r
        \r
@@ -67,7 +67,7 @@ void USB_INT_ClearAllInterrupts(void)
 ISR(USB_GEN_vect, ISR_BLOCK)\r
 {\r
        #if defined(USB_CAN_BE_DEVICE)\r
-       #if defined(USB_FULL_CONTROLLER) || defined(USB_MODIFIED_FULL_CONTROLLER)\r
+       #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)\r
        if (USB_INT_HasOccurred(USB_INT_VBUS) && USB_INT_IsEnabled(USB_INT_VBUS))\r
        {\r
                USB_INT_Clear(USB_INT_VBUS);\r
@@ -121,7 +121,7 @@ ISR(USB_GEN_vect, ISR_BLOCK)
 \r
                EVENT_USB_Suspend();\r
 \r
-               #if defined(USB_LIMITED_CONTROLLER) && !defined(NO_LIMITED_CONTROLLER_CONNECT)\r
+               #if defined(USB_SERIES_2_AVR) && !defined(NO_LIMITED_CONTROLLER_CONNECT)\r
                if (USB_IsConnected)\r
                {\r
                        USB_IsConnected = false;\r
@@ -145,7 +145,7 @@ ISR(USB_GEN_vect, ISR_BLOCK)
                USB_INT_Disable(USB_INT_WAKEUP);\r
                USB_INT_Enable(USB_INT_SUSPEND);\r
                \r
-               #if defined(USB_LIMITED_CONTROLLER) && !defined(NO_LIMITED_CONTROLLER_CONNECT)\r
+               #if defined(USB_SERIES_2_AVR) && !defined(NO_LIMITED_CONTROLLER_CONNECT)\r
                if (!(USB_IsConnected))\r
                {\r
                        USB_IsConnected = true;\r
index 138af9e..471f307 100644 (file)
                        #endif\r
                        \r
                        #if (defined(__AVR_AT90USB162__)  || defined(__AVR_AT90USB82__))\r
-                               #define USB_LIMITED_CONTROLLER\r
+                               #define USB_SERIES_2_AVR\r
                        #elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))\r
-                               #define USB_MODIFIED_FULL_CONTROLLER\r
-                       #else\r
-                               #define USB_FULL_CONTROLLER\r
+                               #define USB_SERIES_4_AVR\r
+                       #elif (defined(__AVR_ATmega32U6__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__))\r
+                               #define USB_SERIES_6_AVR\r
+                       #elif (defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1287__))\r
+                               #define USB_SERIES_7_AVR\r
                        #endif                  \r
 \r
                        #if (!defined(USB_DEVICE_ONLY) && !defined(USB_HOST_ONLY))\r
                                #define USB_CurrentMode USB_MODE_DEVICE\r
                        #endif\r
                        \r
-                       #if (defined(USB_HOST_ONLY) && defined(USB_DEVICE_ONLY))\r
+                       #if (!(defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__)) && defined(USB_HOST_ONLY))\r
+                               #error USB_HOST_ONLY is not available for the currently selected USB AVR model.\r
+                       #elif (defined(USB_HOST_ONLY) && defined(USB_DEVICE_ONLY))\r
                                #error USB_HOST_ONLY and USB_DEVICE_ONLY are mutually exclusive.\r
                        #endif\r
 \r
-                       #if (defined(USE_RAM_DESCRIPTORS) && defined(USE_EEPROM_DESCRIPTORS))\r
-                               #error USE_RAM_DESCRIPTORS and USE_EEPROM_DESCRIPTORS are mutually exclusive.\r
-                       #endif\r
-\r
                        #if defined(USE_STATIC_OPTIONS)\r
                                #define USB_Options USE_STATIC_OPTIONS\r
                        #endif\r
index 9bba234..829bd13 100644 (file)
@@ -179,8 +179,8 @@ static void USB_Device_GetDescriptor(void)
        void*    DescriptorPointer;\r
        uint16_t DescriptorSize;\r
        \r
-       if ((DescriptorSize = CALLBACK_USB_GetDescriptor(USB_ControlRequest.wValue,\r
-                                                        USB_ControlRequest.wIndex, &DescriptorPointer)) == NO_DESCRIPTOR)\r
+       if ((DescriptorSize = CALLBACK_USB_GetDescriptor(USB_ControlRequest.wValue, USB_ControlRequest.wIndex,\r
+                                                        &DescriptorPointer)) == NO_DESCRIPTOR)\r
        {\r
                return;\r
        }\r
@@ -209,7 +209,7 @@ static void USB_Device_GetDescriptor(void)
                while (USB_ControlRequest.wLength && (Endpoint_BytesInEndpoint() < USB_ControlEndpointSize))\r
                {\r
                        #if defined (USE_EEPROM_DESCRIPTORS)\r
-                       Endpoint_Write_Byte(eeprom_read_byte(DescriptorPointer++));                     \r
+                       Endpoint_Write_Byte(eeprom_read_byte(DescriptorPointer++));             \r
                        #else\r
                        Endpoint_Write_Byte(pgm_read_byte(DescriptorPointer++));\r
                        #endif\r
index 31d612c..6661b9e 100644 (file)
                #include "../HighLevel/StdDescriptors.h"\r
                #include "Endpoint.h"\r
 \r
+       /* Preprocessor Checks: */\r
+               #if (defined(USE_RAM_DESCRIPTORS) && defined(USE_EEPROM_DESCRIPTORS))\r
+                       #error USE_RAM_DESCRIPTORS and USE_EEPROM_DESCRIPTORS are mutually exclusive.\r
+               #endif\r
+                       \r
        /* Public Interface - May be used in end-application: */\r
                /* Macros: */\r
-                       #if defined(USB_FULL_CONTROLLER) || defined(USB_MODIFIED_FULL_CONTROLLER) || defined(__DOXYGEN__)\r
+                       #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) || defined(__DOXYGEN__)\r
                                /** Mask for the Options parameter of the \ref USB_Init() function. This indicates that the\r
                                 *  USB interface should be initialized in low speed (1.5Mb/s) mode.\r
                                 *\r
index fd97b75..dca7554 100644 (file)
@@ -98,9 +98,9 @@ uint8_t Endpoint_WaitUntilReady(void)
                else if (Endpoint_IsStalled())\r
                  return ENDPOINT_READYWAIT_EndpointStalled;\r
                          \r
-               if (USB_INT_HasOccurred(USB_INT_HSOFI))\r
+               if (USB_INT_HasOccurred(USB_INT_SOFI))\r
                {\r
-                       USB_INT_Clear(USB_INT_HSOFI);\r
+                       USB_INT_Clear(USB_INT_SOFI);\r
 \r
                        if (!(TimeoutMSRem--))\r
                          return ENDPOINT_READYWAIT_Timeout;\r
index 3235593..2c7a064 100644 (file)
                        #define ENDPOINT_DOUBLEBANK_SUPPORTED(n)      _ENDPOINT_GET_DOUBLEBANK(n)\r
 \r
                        #if !defined(CONTROL_ONLY_DEVICE)\r
-                               #if defined(USB_FULL_CONTROLLER) || defined(USB_MODIFIED_FULL_CONTROLLER) || defined(__DOXYGEN__)\r
+                               #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) || defined(__DOXYGEN__)\r
                                        /** Total number of endpoints (including the default control endpoint at address 0) which may\r
                                         *  be used in the device. Different USB AVR models support different amounts of endpoints,\r
                                         *  this value reflects the maximum number of endpoints for the currently selected AVR model.\r
                                 */\r
                                static inline uint8_t Endpoint_GetEndpointDirection(void);\r
                        #else\r
-                               #if defined(USB_FULL_CONTROLLER) || defined(USB_MODIFIED_FULL_CONTROLLER) || defined(__DOXYGEN__)\r
+                               #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) || defined(__DOXYGEN__)\r
                                        #define Endpoint_BytesInEndpoint()        UEBCX\r
                                #else\r
                                        #define Endpoint_BytesInEndpoint()        UEBCLX\r
                        #define _ENDPOINT_GET_DOUBLEBANK2(details)     _ENDPOINT_GET_DOUBLEBANK3(details)\r
                        #define _ENDPOINT_GET_DOUBLEBANK3(maxsize, db) db\r
                        \r
-                       #if defined(USB_FULL_CONTROLLER) || defined(USB_MODIFIED_FULL_CONTROLLER)\r
+                       #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)\r
                                #define ENDPOINT_DETAILS_EP0               64,  true\r
                                #define ENDPOINT_DETAILS_EP1               256, true\r
                                #define ENDPOINT_DETAILS_EP2               64,  true\r
index 16a50ac..865a57d 100644 (file)
@@ -68,7 +68,7 @@ void USB_Init(
        USB_ControlPipeSize = PIPE_CONTROLPIPE_DEFAULT_SIZE;\r
        #endif\r
        \r
-       #if defined(USB_DEVICE_ONLY) && defined(USB_FULL_CONTROLLER)\r
+       #if defined(USB_DEVICE_ONLY) && (defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))\r
        UHWCON |= (1 << UIMOD);\r
        #elif defined(USB_HOST_ONLY)\r
        UHWCON &= ~(1 << UIMOD);\r
@@ -99,7 +99,7 @@ void USB_Init(
        \r
        USB_ResetInterface();\r
 \r
-       #if defined(USB_FULL_CONTROLLER) || defined(USB_MODIFIED_FULL_CONTROLLER)\r
+       #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)\r
        USB_OTGPAD_On();\r
        #endif\r
 \r
@@ -136,7 +136,7 @@ void USB_ShutDown(void)
        USB_Interface_Disable();\r
        USB_PLL_Off();\r
        \r
-       #if defined(USB_FULL_CONTROLLER) || defined(USB_MODIFIED_FULL_CONTROLLER)\r
+       #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)\r
        USB_OTGPAD_Off();\r
        #endif\r
 \r
@@ -165,7 +165,7 @@ void USB_ResetInterface(void)
        \r
        if (!(USB_Options & USB_OPT_MANUAL_PLL))\r
        {\r
-               #if defined(USB_MODIFIED_FULL_CONTROLLER)\r
+               #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)\r
                PLLFRQ = ((1 << PLLUSB) | (1 << PDIV3) | (1 << PDIV1));\r
                #endif\r
 \r
@@ -189,7 +189,7 @@ void USB_ResetInterface(void)
        \r
        USB_CLK_Unfreeze();\r
 \r
-       #if (defined(USB_CAN_BE_DEVICE) && (defined(USB_FULL_CONTROLLER) || defined(USB_MODIFIED_FULL_CONTROLLER)))\r
+       #if (defined(USB_CAN_BE_DEVICE) && (defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)))\r
        if (USB_CurrentMode == USB_MODE_DEVICE)\r
        {\r
                if (USB_Options & USB_DEVICE_OPT_LOWSPEED)\r
index 41b0ff5..f22a751 100644 (file)
                #if (F_CLOCK == 8000000)\r
                        #if (defined(__AVR_AT90USB82__) || defined(__AVR_AT90USB162__))\r
                                #define USB_PLL_PSC                0\r
-                       #elif (defined(__AVR_AT90USB646__)  || defined(__AVR_AT90USB647__)  || \\r
-                              defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) || \\r
-                                  defined(__AVR_ATmega32U6__))\r
-                               #define USB_PLL_PSC                ((1 << PLLP1) | (1 << PLLP0))\r
                        #elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))\r
                                #define USB_PLL_PSC                0\r
+                       #elif (defined(__AVR_AT90USB646__)  || defined(__AVR_AT90USB1286__) || defined(__AVR_ATmega32U6__))\r
+                               #define USB_PLL_PSC                ((1 << PLLP1) | (1 << PLLP0))\r
+                       #elif (defined(__AVR_AT90USB647__)  || defined(__AVR_AT90USB1287__))\r
+                               #define USB_PLL_PSC                ((1 << PLLP1) | (1 << PLLP0))\r
                        #endif\r
                #elif (F_CLOCK == 16000000)\r
-                       #if (defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_ATmega32U6__))\r
-                               #define USB_PLL_PSC                ((1 << PLLP2) | (1 << PLLP1))\r
-                       #elif (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__))\r
-                               #define USB_PLL_PSC                ((1 << PLLP2) | (1 << PLLP0))\r
-                       #elif (defined(__AVR_AT90USB82__) || defined(__AVR_AT90USB162__))\r
+                       #if (defined(__AVR_AT90USB82__) || defined(__AVR_AT90USB162__))\r
                                #define USB_PLL_PSC                (1 << PLLP0)\r
                        #elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))\r
                                #define USB_PLL_PSC                (1 << PINDIV)\r
+                       #elif (defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_ATmega32U6__))\r
+                               #define USB_PLL_PSC                ((1 << PLLP2) | (1 << PLLP1))\r
+                       #elif (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__))\r
+                               #define USB_PLL_PSC                ((1 << PLLP2) | (1 << PLLP0))\r
                        #endif\r
                #endif\r
                \r
                         */\r
                        #define USB_MODE_NONE                      0\r
 \r
-                       /** Mode mask for the \ref USB_CurrentMode global and the \ref USB_Init() function. This indicates that the\r
-                        *  USB interface is or should be initialized in the USB device mode.\r
-                        */\r
-                       #define USB_MODE_DEVICE                    1\r
-\r
+                       #if defined(USB_CAN_BE_DEVICE) || defined(__DOXYGEN__)\r
+                               /** Mode mask for the \ref USB_CurrentMode global and the \ref USB_Init() function. This indicates that the\r
+                                *  USB interface is or should be initialized in the USB device mode.\r
+                                */\r
+                               #define USB_MODE_DEVICE                    1\r
+                       #endif\r
+                       \r
                        #if defined(USB_CAN_BE_HOST) || defined(__DOXYGEN__)\r
                                /** Mode mask for the \ref USB_CurrentMode global and the \ref USB_Init() function. This indicates that the\r
                                 *  USB interface is or should be initialized in the USB host mode.\r
                         */\r
                        #define EP_TYPE_INTERRUPT                  0x03\r
 \r
-                       #if defined(USB_FULL_CONTROLLER) || defined(USB_MODIFIED_FULL_CONTROLLER) || defined(__DOXYGEN__)\r
+                       #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) || defined(__DOXYGEN__)\r
                                /** Returns boolean true if the VBUS line is currently high (i.e. the USB host is supplying power),\r
                                 *  otherwise returns false.\r
                                 *\r
                        #define USB_PLL_Off()              MACROS{ PLLCSR   =  0;                           }MACROE\r
                        #define USB_PLL_IsReady()                ((PLLCSR  &   (1 << PLOCK)) ? true : false)\r
 \r
-                       #if defined(USB_FULL_CONTROLLER) || defined(USB_MODIFIED_FULL_CONTROLLER)               \r
+                       #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)\r
                                #define USB_REG_On()           MACROS{ UHWCON  |=  (1 << UVREGE);               }MACROE\r
                                #define USB_REG_Off()          MACROS{ UHWCON  &= ~(1 << UVREGE);               }MACROE\r
                        #else\r
index d0837a8..c2d9339 100644 (file)
 #ifndef __USB_H__\r
 #define __USB_H__\r
 \r
-       /* Preprocessor Checks: */\r
-               #if (!(defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__)) && defined(USB_HOST_ONLY))\r
-                       #error USB_HOST_ONLY is not available for the currently selected USB AVR model.\r
-               #endif\r
-               \r
+       /* Preprocessor Checks: */              \r
                #if (!(defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__) ||  \\r
                       defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB646__) ||  \\r
                           defined(__AVR_AT90USB162__)  || defined(__AVR_AT90USB82__)  ||  \\r