More AVR32 achitecture ports.
[pub/lufa.git] / LUFA / Drivers / USB / HighLevel / USBMode.h
index afe750f..ee10dea 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
 #ifndef __USBMODE_H__\r
 #define __USBMODE_H__\r
 \r
 #ifndef __USBMODE_H__\r
 #define __USBMODE_H__\r
 \r
+       /* Preprocessor Checks: */\r
+               #if !defined(__INCLUDE_FROM_USB_DRIVER)\r
+                       #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.\r
+               #endif\r
+               \r
        /* Public Interface - May be used in end-application: */\r
        #if defined(__DOXYGEN__)\r
                /** Indicates that the target AVR microcontroller belongs to the Series 2 USB controller\r
        /* Public Interface - May be used in end-application: */\r
        #if defined(__DOXYGEN__)\r
                /** Indicates that the target AVR microcontroller belongs to the Series 2 USB controller\r
                 *  (i.e. AT90USBXXX7) when defined.\r
                 */\r
                #define USB_SERIES_7_AVR\r
                 *  (i.e. AT90USBXXX7) when defined.\r
                 */\r
                #define USB_SERIES_7_AVR\r
+               \r
+               /** Indicates that the target AVR microcontroller belongs to the Series UC3B USB controller\r
+                *  (i.e. AT32UC3BXXXX) when defined.\r
+                */\r
+               #define USB_SERIES_UC3B_AVR\r
 \r
                /** Indicates that the target AVR microcontroller and compilation settings allow for the\r
                 *  target to be configured in USB Device mode when defined.\r
 \r
                /** Indicates that the target AVR microcontroller and compilation settings allow for the\r
                 *  target to be configured in USB Device mode when defined.\r
                        #if (defined(__AVR_AT90USB162__) || defined(__AVR_AT90USB82__)  || \\r
                             defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega8U2__))\r
                                #define USB_SERIES_2_AVR\r
                        #if (defined(__AVR_AT90USB162__) || defined(__AVR_AT90USB82__)  || \\r
                             defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega8U2__))\r
                                #define USB_SERIES_2_AVR\r
-                       #elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))\r
+                       #elif (defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega16U4__))\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
                                #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
+                       #elif (defined(__AVR32_UC3B0256__))\r
+                               #define USB_SERIES_UC3B_AVR\r
                        #endif                  \r
 \r
                        #endif                  \r
 \r
-                       #if !defined(USB_SERIES_7_AVR)          \r
+                       #if !defined(USB_SERIES_7_AVR) && !defined(USB_SERIES_UC3B_AVR)\r
                                #if defined(USB_HOST_ONLY)\r
                                        #error USB_HOST_ONLY is not available for the currently selected USB AVR model.\r
                                #endif\r
                                #if defined(USB_HOST_ONLY)\r
                                        #error USB_HOST_ONLY is not available for the currently selected USB AVR model.\r
                                #endif\r