Use an early-abort in the USB_DeviceTask() function rather than wrapping the entire...
[pub/USBasp.git] / LUFA / Drivers / USB / Core / USBMode.h
index bc2f86d..5de57ff 100644 (file)
                 */
                #define USB_SERIES_UC3A3_AVR
 
+               /** Indicates that the target AVR microcontroller belongs to the AVR32 UC3A4 Series USB controller
+                *  (i.e. AT32UC3A4*) when defined.
+                */
+               #define USB_SERIES_UC3A4_AVR
+               
                /** Indicates that the target AVR microcontroller belongs to the AVR32 UC3B0 Series USB controller
                 *  (i.e. AT32UC3B0*) when defined.
                 */
                 */
                #define USB_SERIES_B3_XMEGA
 
+               /** Indicates that the target AVR microcontroller belongs to the XMEGA C3 Series USB controller
+                *  (i.e. ATXMEGA*C3) when defined.
+                */
+               #define USB_SERIES_C3_XMEGA
+
+               /** Indicates that the target AVR microcontroller belongs to the XMEGA C4 Series USB controller
+                *  (i.e. ATXMEGA*C4) when defined.
+                */
+               #define USB_SERIES_C4_XMEGA
+
                /** Indicates that the target microcontroller and compilation settings allow for the
                 *  target to be configured in USB Device mode when defined.
                 */
                        #elif (defined(__AVR_ATxmega128B3__) || defined(__AVR_ATxmega64B3__))
                                #define USB_SERIES_B3_XMEGA
                                #define USB_CAN_BE_DEVICE
+                       #elif (defined(__AVR_ATxmega128C3__) || defined(__AVR_ATxmega64C3__) || \
+                              defined(__AVR_ATxmega192C3__) || defined(__AVR_ATxmega256C3__) || \
+                                  defined(__AVR_ATxmega384C3__))
+                               #define USB_SERIES_C3_XMEGA
+                               #define USB_CAN_BE_DEVICE
+                       #elif (defined(__AVR_ATxmega16C4__) || defined(__AVR_ATxmega32C4__))
+                               #define USB_SERIES_C4_XMEGA
+                               #define USB_CAN_BE_DEVICE
                        #endif
 
-                       #if (defined(USB_CAN_BE_DEVICE) && defined(USB_CAN_BE_HOST))
-                               #define USB_CAN_BE_BOTH
-                       #endif
-
-                       #if defined(USB_HOST_ONLY)
+                       #if (defined(USB_HOST_ONLY) && defined(USB_DEVICE_ONLY))
+                               #error USB_HOST_ONLY and USB_DEVICE_ONLY are mutually exclusive.
+                       #elif defined(USB_HOST_ONLY)
                                #if !defined(USB_CAN_BE_HOST)
                                        #error USB_HOST_ONLY is not available for the currently selected microcontroller model.
                                #else
                                        #undef USB_CAN_BE_DEVICE
-                                       #undef USB_CAN_BE_BOTH
                                #endif
-                       #endif
-
-                       #if defined(USB_DEVICE_ONLY)
+                       #elif defined(USB_DEVICE_ONLY)
                                #if !defined(USB_CAN_BE_DEVICE)
                                        #error USB_DEVICE_ONLY is not available for the currently selected microcontroller model.
                                #else
                                        #undef USB_CAN_BE_HOST
-                                       #undef USB_CAN_BE_BOTH
                                #endif
                        #endif
 
-                       #if (defined(USB_HOST_ONLY) && defined(USB_DEVICE_ONLY))
-                               #error USB_HOST_ONLY and USB_DEVICE_ONLY are mutually exclusive.
+                       #if (defined(USB_CAN_BE_DEVICE) && defined(USB_CAN_BE_HOST))
+                               #define USB_CAN_BE_BOTH
                        #endif
 
                        #if (!defined(USB_CAN_BE_DEVICE) && !defined(USB_CAN_BE_HOST))
-                               #error The currently selected device or architecture is not supported under the USB component of the library.
+                               #error The currently selected device, USB mode or architecture is not supported.
                        #endif
        #endif