From fdab3aef8629f01f9b01b4bfc76904666df439e2 Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Sun, 5 Feb 2012 21:59:35 +0000
Subject: [PATCH] Add (still preliminary) support for the ATXMEGA64A4 and
 ATXMEGA128A4. Fix minor error in the AVRISP-MKII clone project descriptors.

---
 LUFA/DoxygenPages/DeviceSupport.txt | 10 ++++++++++
 LUFA/Drivers/USB/Core/USBMode.h     |  3 ++-
 Projects/AVRISP-MKII/Descriptors.c  |  6 +++---
 3 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/LUFA/DoxygenPages/DeviceSupport.txt b/LUFA/DoxygenPages/DeviceSupport.txt
index 507ec41ff..a831117de 100644
--- a/LUFA/DoxygenPages/DeviceSupport.txt
+++ b/LUFA/DoxygenPages/DeviceSupport.txt
@@ -317,6 +317,16 @@
  *   <td bgcolor="#EE0000">No</td>
  *  </tr>
  *  <tr>
+ *   <td>ATXMEGA64A4U</td>
+ *   <td bgcolor="#00EE00">Yes</td>
+ *   <td bgcolor="#EE0000">No</td>
+ *  </tr>
+ *  <tr>
+ *   <td>ATXMEGA128A4U</td>
+ *   <td bgcolor="#00EE00">Yes</td>
+ *   <td bgcolor="#EE0000">No</td>
+ *  </tr>
+ *  <tr>
  *   <td>ATXMEGA64A3U</td>
  *   <td bgcolor="#00EE00">Yes</td>
  *   <td bgcolor="#EE0000">No</td>
diff --git a/LUFA/Drivers/USB/Core/USBMode.h b/LUFA/Drivers/USB/Core/USBMode.h
index 8e441872c..bc2f86dd5 100644
--- a/LUFA/Drivers/USB/Core/USBMode.h
+++ b/LUFA/Drivers/USB/Core/USBMode.h
@@ -209,7 +209,8 @@
 			#elif (defined(__AVR_ATxmega256A3BU__))
 				#define USB_SERIES_A3BU_XMEGA
 				#define USB_CAN_BE_DEVICE
-			#elif (defined(__AVR_ATxmega16A4U__) || defined(__AVR_ATxmega32A4U__))
+			#elif (defined(__AVR_ATxmega16A4U__) || defined(__AVR_ATxmega32A4U__) || \
+			       defined(__AVR_ATxmega64A4U__) || defined(__AVR_ATxmega128A4U__))
 				#define USB_SERIES_A4U_XMEGA
 				#define USB_CAN_BE_DEVICE
 			#elif (defined(__AVR_ATxmega128B1__) || defined(__AVR_ATxmega64B1__))
diff --git a/Projects/AVRISP-MKII/Descriptors.c b/Projects/AVRISP-MKII/Descriptors.c
index 1e729541f..9b01e9cd7 100644
--- a/Projects/AVRISP-MKII/Descriptors.c
+++ b/Projects/AVRISP-MKII/Descriptors.c
@@ -81,7 +81,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 			.ConfigurationNumber    = 1,
 			.ConfigurationStrIndex  = NO_DESCRIPTOR,
 
-			.ConfigAttributes       = USB_CONFIG_ATTR_RESERVED,
+			.ConfigAttributes       = (USB_CONFIG_ATTR_RESERVED | USB_CONFIG_ATTR_SELFPOWERED),
 
 			.MaxPowerConsumption    = USB_CONFIG_POWER_MA(100)
 		},
@@ -96,8 +96,8 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 			.TotalEndpoints         = 2,
 
 			.Class                  = USB_CSCP_VendorSpecificClass,
-			.SubClass               = 0x00,
-			.Protocol               = 0x00,
+			.SubClass               = USB_CSCP_NoDeviceSubclass,
+			.Protocol               = USB_CSCP_NoDeviceProtocol,
 
 			.InterfaceStrIndex      = NO_DESCRIPTOR
 		},
-- 
GitLab