From c619e21fa74d7ea225292ecf5d514d0b253ad0a8 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Thu, 16 Jul 2009 08:57:51 +0000 Subject: [PATCH] Added support for the new ATMEGA32U2, ATMEGA16U2 and ATMEGA8U2 AVR models. --- LUFA/Drivers/USB/HighLevel/USBMode.h | 11 ++++++++--- LUFA/Drivers/USB/USB.h | 2 ++ LUFA/ManPages/ChangeLog.txt | 1 + LUFA/ManPages/DeviceSupport.txt | 11 +++++++---- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/LUFA/Drivers/USB/HighLevel/USBMode.h b/LUFA/Drivers/USB/HighLevel/USBMode.h index 471f307e7f..8664c1b7ce 100644 --- a/LUFA/Drivers/USB/HighLevel/USBMode.h +++ b/LUFA/Drivers/USB/HighLevel/USBMode.h @@ -41,7 +41,8 @@ #define USB_DEVICE_ONLY #endif - #if (defined(__AVR_AT90USB162__) || defined(__AVR_AT90USB82__)) + #if (defined(__AVR_AT90USB162__) || defined(__AVR_AT90USB82__) || \ + defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega8U2__)) #define USB_SERIES_2_AVR #elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__)) #define USB_SERIES_4_AVR @@ -57,15 +58,19 @@ #define USB_CAN_BE_DEVICE #elif defined(USB_HOST_ONLY) #define USB_CAN_BE_HOST + #define USB_CurrentMode USB_MODE_HOST #elif defined(USB_DEVICE_ONLY) #define USB_CAN_BE_DEVICE + #define USB_CurrentMode USB_MODE_DEVICE #endif - #if (!(defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__)) && defined(USB_HOST_ONLY)) + #if (!defined(USB_SERIES_7_AVR) && defined(USB_HOST_ONLY)) #error USB_HOST_ONLY is not available for the currently selected USB AVR model. - #elif (defined(USB_HOST_ONLY) && defined(USB_DEVICE_ONLY)) + #endif + + #if (defined(USB_HOST_ONLY) && defined(USB_DEVICE_ONLY)) #error USB_HOST_ONLY and USB_DEVICE_ONLY are mutually exclusive. #endif diff --git a/LUFA/Drivers/USB/USB.h b/LUFA/Drivers/USB/USB.h index d38000d6d2..9d2e848017 100644 --- a/LUFA/Drivers/USB/USB.h +++ b/LUFA/Drivers/USB/USB.h @@ -76,6 +76,8 @@ #if (!(defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__) || \ defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB646__) || \ defined(__AVR_AT90USB162__) || defined(__AVR_AT90USB82__) || \ + defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U2__) || \ + defined(__AVR_ATmega8U2__) || \ defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) || \ defined(__AVR_ATmega32U6__))) #error The currently selected AVR model is not supported under the USB component of the LUFA library. diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt index 5282642e99..cbe4c59ea2 100644 --- a/LUFA/ManPages/ChangeLog.txt +++ b/LUFA/ManPages/ChangeLog.txt @@ -27,6 +27,7 @@ * - Added stdio stream demo code to the low-level CDC demo, to show how to create standard streams out of the virtual serial ports * - Added new EEPROM and FLASH buffer versions of the Endpoint and Pipe stream functions * - Added new USE_FLASH_DESCRIPTORS and TOTAL_NUM_CONFIGURATIONS compile time options + * - Added support for the new ATMEGA32U2, ATMEGA16U2 and ATMEGA8U2 AVR models * * Changed: * - Deprecated psuedo-scheduler and removed dynamic memory allocator from the library (first no longer needed and second unused) diff --git a/LUFA/ManPages/DeviceSupport.txt b/LUFA/ManPages/DeviceSupport.txt index 1d06d52ee1..140055da30 100644 --- a/LUFA/ManPages/DeviceSupport.txt +++ b/LUFA/ManPages/DeviceSupport.txt @@ -8,15 +8,18 @@ * \page Page_DeviceSupport Device and Hardware Support * * Currently supported AVR models: - * - AT90USB1286 (USB Device Only) - * - AT90USB1287 (USB Host and Device) - * - AT90USB646 (USB Device Only) - * - AT90USB647 (USB Host and Device) * - AT90USB82 (USB Device Only) + * - ATMEGA8U2 (USB Device Only) * - AT90USB162 (USB Device Only) + * - ATMEGA16U2 (USB Device Only) * - ATMEGA16U4 (USB Device Only) + * - ATMEGA32U2 (USB Device Only) * - ATMEGA32U4 (USB Device Only) * - ATMEGA32U6 (USB Device Only) + * - AT90USB646 (USB Device Only) + * - AT90USB647 (USB Host and Device) + * - AT90USB1286 (USB Device Only) + * - AT90USB1287 (USB Host and Device) * * Currently supported Atmel boards: * - AT90USBKEY