From 79922026035a9ff93754b77ef400a0458152142d Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Mon, 31 Oct 2011 03:39:12 +0000
Subject: [PATCH] Add support for the new MEGA B series devices.

---
 LUFA/DoxygenPages/ChangeLog.txt     |  3 ++-
 LUFA/DoxygenPages/DeviceSupport.txt | 20 +++++++++++++++++++
 LUFA/Drivers/USB/Core/USBMode.h     | 31 +++++++++++++++++++++++++++++
 3 files changed, 53 insertions(+), 1 deletion(-)

diff --git a/LUFA/DoxygenPages/ChangeLog.txt b/LUFA/DoxygenPages/ChangeLog.txt
index c2e304a7c..41a65489b 100644
--- a/LUFA/DoxygenPages/ChangeLog.txt
+++ b/LUFA/DoxygenPages/ChangeLog.txt
@@ -9,7 +9,8 @@
   *  \section Sec_ChangeLogXXXXXX Version XXXXXX
   *  <b>New:</b>
   *  - Core:
-  *   - None
+  *   - Added support for the XMEGA A3BU Xplained board.
+  *   - Added support for the new B series XMEGA devices.
   *  - Library Applications:
   *   - Added User Application APIs to the CDC and DFU class bootloaders
   *   - Added INVERTED_ISP_MISO compile time option to the AVRISP-MKII clone project (thanks to Chuck Rohs)
diff --git a/LUFA/DoxygenPages/DeviceSupport.txt b/LUFA/DoxygenPages/DeviceSupport.txt
index d9029a408..f6fee85f8 100644
--- a/LUFA/DoxygenPages/DeviceSupport.txt
+++ b/LUFA/DoxygenPages/DeviceSupport.txt
@@ -343,6 +343,26 @@
  *   <td bgcolor="#00EE00">Yes</td>
  *   <td bgcolor="#EE0000">No</td>
  *  </tr>
+ *  <tr>
+ *   <td>ATXMEGA64B3</td>
+ *   <td bgcolor="#00EE00">Yes</td>
+ *   <td bgcolor="#EE0000">No</td>
+ *  </tr>
+ *  <tr>
+ *   <td>ATXMEGA128B3</td>
+ *   <td bgcolor="#00EE00">Yes</td>
+ *   <td bgcolor="#EE0000">No</td>
+ *  </tr>
+ *  <tr>
+ *   <td>ATXMEGA64B1</td>
+ *   <td bgcolor="#00EE00">Yes</td>
+ *   <td bgcolor="#EE0000">No</td>
+ *  </tr>
+ *  <tr>
+ *   <td>ATXMEGA128B1</td>
+ *   <td bgcolor="#00EE00">Yes</td>
+ *   <td bgcolor="#EE0000">No</td>
+ *  </tr>
  *  </table>
  *
  *  \section Sec_XMEGASupport_Boards Supported Atmel Boards
diff --git a/LUFA/Drivers/USB/Core/USBMode.h b/LUFA/Drivers/USB/Core/USBMode.h
index 86746a296..debdc2d88 100644
--- a/LUFA/Drivers/USB/Core/USBMode.h
+++ b/LUFA/Drivers/USB/Core/USBMode.h
@@ -111,6 +111,31 @@
 		 *  (i.e. AT32UC3B1*) when defined.
 		 */
 		#define USB_SERIES_UC3B1_AVR
+		
+		/** Indicates that the target AVR microcontroller belongs to the XMEGA A1U Series USB controller
+		 *  (i.e. ATXMEGA*A1U) when defined.
+		 */
+		#define USB_SERIES_A1U_XMEGA
+
+		/** Indicates that the target AVR microcontroller belongs to the XMEGA A3U Series USB controller
+		 *  (i.e. ATXMEGA*A3U) when defined.
+		 */
+		#define USB_SERIES_A3U_XMEGA
+
+		/** Indicates that the target AVR microcontroller belongs to the XMEGA A4U Series USB controller
+		 *  (i.e. ATXMEGA*A4U) when defined.
+		 */
+		#define USB_SERIES_A4U_XMEGA
+
+		/** Indicates that the target AVR microcontroller belongs to the XMEGA B1 Series USB controller
+		 *  (i.e. ATXMEGA*B1) when defined.
+		 */
+		#define USB_SERIES_B1_XMEGA
+
+		/** Indicates that the target AVR microcontroller belongs to the XMEGA B3 Series USB controller
+		 *  (i.e. ATXMEGA*B3) when defined.
+		 */
+		#define USB_SERIES_B3_XMEGA
 
 		/** Indicates that the target microcontroller and compilation settings allow for the
 		 *  target to be configured in USB Device mode when defined.
@@ -187,6 +212,12 @@
 			#elif (defined(__AVR_ATxmega16A4U__) || defined(__AVR_ATxmega32A4U__))
 				#define USB_SERIES_A4U_XMEGA
 				#define USB_CAN_BE_DEVICE
+			#elif (defined(__AVR_ATxmega128B1__) || defined(__AVR_ATxmega64B1__))
+				#define USB_SERIES_B1_XMEGA
+				#define USB_CAN_BE_DEVICE
+			#elif (defined(__AVR_ATxmega128B3__) || defined(__AVR_ATxmega64B3__))
+				#define USB_SERIES_B3_XMEGA
+				#define USB_CAN_BE_DEVICE
 			#endif
 			
 			#if (defined(USB_CAN_BE_DEVICE) && defined(USB_CAN_BE_HOST))
-- 
GitLab