diff --git a/LUFA/Common/Atomic.h b/LUFA/Common/Atomic.h
new file mode 100644
index 0000000000000000000000000000000000000000..81ac10cc65cb13c98d3a4406eba6cafd0649bcaa
--- /dev/null
+++ b/LUFA/Common/Atomic.h
@@ -0,0 +1,99 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2010.
+
+  dean [at] fourwalledcubicle [dot] com
+      www.fourwalledcubicle.com
+*/
+
+/*
+  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+  Permission to use, copy, modify, distribute, and sell this
+  software and its documentation for any purpose is hereby granted
+  without fee, provided that the above copyright notice appear in
+  all copies and that both that the copyright notice and this
+  permission notice and warranty disclaimer appear in supporting
+  documentation, and that the name of the author not be used in
+  advertising or publicity pertaining to distribution of the
+  software without specific, written prior permission.
+
+  The author disclaim all warranties with regard to this
+  software, including all implied warranties of merchantability
+  and fitness.  In no event shall the author be liable for any
+  special, indirect or consequential damages or any damages
+  whatsoever resulting from loss of use, data or profits, whether
+  in an action of contract, negligence or other tortious action,
+  arising out of or in connection with the use or performance of
+  this software.
+*/
+
+/** \file
+ *
+ *  Atomic block header for the 32-bit AVRs, modelled on the 8-bit AVR's util/atomic.h
+ *  header.
+ *
+ *  \note Do not include this file directly, rather include the Common.h header file instead to gain this file's
+ *        functionality on the 32-bit AVRs.
+ */
+
+#ifndef __ATOMIC_H__
+#define __ATOMIC_H__
+
+	/* Includes: */
+		#include <avr32/io.h>
+		#include <stdint.h>
+		#include <stdbool.h>
+
+	/* Public Interface - May be used in end-application: */
+		/* Macros: */
+			#define ATOMIC_BLOCK(type) for ( type, __ToDo = __iCliRetVal(); \
+									   __ToDo ; __ToDo = 0 )
+			#define NONATOMIC_BLOCK(type) for ( type, __ToDo = __iSeiRetVal(); \
+										  __ToDo ;  __ToDo = 0 )
+			#define ATOMIC_RESTORESTATE uint8_t sreg_save \
+				__attribute__((__cleanup__(__iRestore))) = 0 /* TODO */
+			#define ATOMIC_FORCEON uint8_t sreg_save \
+				__attribute__((__cleanup__(__iSeiParam))) = 0
+			#define NONATOMIC_RESTORESTATE uint8_t sreg_save \
+				__attribute__((__cleanup__(__iRestore))) = 0 /* TODO */
+			#define NONATOMIC_FORCEOFF uint8_t sreg_save \
+				__attribute__((__cleanup__(__iCliParam))) = 0
+
+	/* Private Interface - For use in library only: */
+	#if !defined(__DOXYGEN__)
+		/* Inline Functions: */
+			static __inline__ uint8_t __iSeiRetVal(void)
+			{
+				((avr32_sr_t*)AVR32_SR_T)->gm = true;
+				return 1;
+			}
+
+			static __inline__ uint8_t __iCliRetVal(void)
+			{
+				((avr32_sr_t*)AVR32_SR_T)->gm = false;
+				return 1;
+			}
+
+			static __inline__ void __iSeiParam(const uint8_t *__s)
+			{
+				((avr32_sr_t*)AVR32_SR_T)->gm = true;
+				__asm__ volatile ("" ::: "memory");
+				(void)__s;
+			}
+
+			static __inline__ void __iCliParam(const uint8_t *__s)
+			{
+				((avr32_sr_t*)AVR32_SR_T)->gm = false;
+				__asm__ volatile ("" ::: "memory");
+				(void)__s;
+			}
+
+			static __inline__ void __iRestore(const uint8_t *__s)
+			{
+				((avr32_sr_t*)AVR32_SR_T)->gm = *__s;
+				__asm__ volatile ("" ::: "memory");
+			}
+	#endif
+
+#endif
diff --git a/LUFA/Common/BoardTypes.h b/LUFA/Common/BoardTypes.h
index 10e31ac1b1b76e6f7fe3153d0573627545a45e21..43b692dbd18a60e0e9ab1312fb2bfc89a58ed704 100644
--- a/LUFA/Common/BoardTypes.h
+++ b/LUFA/Common/BoardTypes.h
@@ -94,6 +94,9 @@
 			 *  such as the Joystick driver, where the removal would adversely affect the code's operation is still disallowed. */
 			#define BOARD_NONE          10
 			
+			/** Selects the EVK1101 specific board drivers, including Temperature, Button, Dataflash, Joystick and LED drivers. */
+			#define BOARD_EVK1101       11
+
 			#if !defined(__DOXYGEN__)
 				#define BOARD_          BOARD_NONE
 				
diff --git a/LUFA/Common/Common.h b/LUFA/Common/Common.h
index 2ddb58c8c0442bc57a81c12b44050ab54131fdd8..4052480dda5776920c8e3a7e177b94af3b937d35 100644
--- a/LUFA/Common/Common.h
+++ b/LUFA/Common/Common.h
@@ -56,8 +56,17 @@
 #define __COMMON_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-	
+		#if defined(__AVR32__)
+			#include <avr32/io.h>
+			#include <stdint.h>
+
+			#include "Atomic.h"
+
+			#define PROGMEM
+		#else
+			#include <avr/io.h>
+		#endif
+
 		#include "FunctionAttributes.h"
 		#include "BoardTypes.h"
 
@@ -179,6 +188,14 @@
 				}
 			}
 
+		/* Type Defines: */
+			#if defined(__AVR32__)
+				typedef uint32_t uintN_t;
+				typedef int32_t intN_t;
+			#else
+				typedef uint8_t uintN_t;
+				typedef int8_t intN_t;
+			#endif
 #endif
 
 /** @} */
diff --git a/LUFA/Drivers/Board/BUMBLEB/Joystick.h b/LUFA/Drivers/Board/BUMBLEB/Joystick.h
index 5d57ec5597e84f28eeb9edddc4c1c72fa7ada767..1809677596ff1fed4384af5929ef1bd705ba76d6 100644
--- a/LUFA/Drivers/Board/BUMBLEB/Joystick.h
+++ b/LUFA/Drivers/Board/BUMBLEB/Joystick.h
@@ -30,7 +30,7 @@
 
 /** \file
  *
- *  Board specific joystick driver header for the USBKEY. The BUMBLEB third-party board does not include any on-board
+ *  Board specific joystick driver header for the BUMBLEB. The BUMBLEB third-party board does not include any on-board
  *  peripherals, but does have an officially recommended external peripheral layout for buttons, LEDs and a Joystick.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the joystick driver
@@ -40,7 +40,7 @@
 /** \ingroup Group_Joystick
  *  @defgroup Group_Joystick_BUMBLEB BUMBLEB
  *
- *  Board specific joystick driver header for the USBKEY. The BUMBLEB third-party board does not include any on-board
+ *  Board specific joystick driver header for the BUMBLEB. The BUMBLEB third-party board does not include any on-board
  *  peripherals, but does have an officially recommended external peripheral layout for buttons, LEDs and a Joystick.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the joystick driver
diff --git a/LUFA/Drivers/Board/Buttons.h b/LUFA/Drivers/Board/Buttons.h
index d908fd43a46ef48acf2efa8c2bd20105d4c381eb..f509777060116a5e20066019e8811a3c8b4443d4 100644
--- a/LUFA/Drivers/Board/Buttons.h
+++ b/LUFA/Drivers/Board/Buttons.h
@@ -86,6 +86,8 @@
 		#include "EVK527/Buttons.h"
 	#elif (BOARD == BOARD_USER)
 		#include "Board/Buttons.h"
+	#elif (BOARD == BOARD_EVK1101)
+		#include "EVK1101/Buttons.h"
 	#else
 		#error The selected board does not contain any GPIO buttons.
 	#endif
@@ -103,7 +105,7 @@
 		 *
 		 *  \return Mask indicating which board buttons are currently pressed
 		 */
-		static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
+		static inline uintN_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
 	#endif
 
 #endif
diff --git a/LUFA/Drivers/Board/Dataflash.h b/LUFA/Drivers/Board/Dataflash.h
index 762142c33cf4d0f27a518afc9f1b6ceaa98481a3..c0f314a3ea77f8db9a473dbc38a32388008ad78c 100644
--- a/LUFA/Drivers/Board/Dataflash.h
+++ b/LUFA/Drivers/Board/Dataflash.h
@@ -167,6 +167,8 @@
 				#include "EVK527/Dataflash.h"
 			#elif (BOARD == BOARD_USER)
 				#include "Board/Dataflash.h"
+			#elif (BOARD = BOARD_EVK1101)
+				#include "EVK1101/Dataflash.h"
 			#else
 				#error The selected board does not contain a dataflash IC.
 			#endif
diff --git a/LUFA/Drivers/Board/EVK1101/Buttons.h b/LUFA/Drivers/Board/EVK1101/Buttons.h
new file mode 100644
index 0000000000000000000000000000000000000000..b827787c7d6eddbe37cf8d0ddae1d25f1d686fe8
--- /dev/null
+++ b/LUFA/Drivers/Board/EVK1101/Buttons.h
@@ -0,0 +1,99 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2010.
+              
+  dean [at] fourwalledcubicle [dot] com
+      www.fourwalledcubicle.com
+*/
+
+/*
+  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+  Permission to use, copy, modify, distribute, and sell this 
+  software and its documentation for any purpose is hereby granted
+  without fee, provided that the above copyright notice appear in 
+  all copies and that both that the copyright notice and this
+  permission notice and warranty disclaimer appear in supporting 
+  documentation, and that the name of the author not be used in 
+  advertising or publicity pertaining to distribution of the 
+  software without specific, written prior permission.
+
+  The author disclaim all warranties with regard to this
+  software, including all implied warranties of merchantability
+  and fitness.  In no event shall the author be liable for any
+  special, indirect or consequential damages or any damages
+  whatsoever resulting from loss of use, data or profits, whether
+  in an action of contract, negligence or other tortious action,
+  arising out of or in connection with the use or performance of
+  this software.
+*/
+
+/** \file
+ *
+ *  Board specific Buttons driver header for the EVK1101.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the Buttons driver
+ *        dispatch header located in LUFA/Drivers/Board/Buttons.h.
+ */
+
+/** \ingroup Group_Buttons
+ *  @defgroup Group_Buttons_EVK1101 EVK1101
+ *
+ *  Board specific Buttons driver header for the EVK1101.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the Buttons driver
+ *        dispatch header located in LUFA/Drivers/Board/Buttons.h.
+ *
+ *  @{
+ */
+
+#ifndef __BUTTONS_EVK1101_H__
+#define __BUTTONS_EVK1101_H__
+
+	/* Includes: */
+		#include <avr32/io.h>
+		#include <stdbool.h>
+
+		#include "../../../Common/Common.h"
+
+	/* Enable C linkage for C++ Compilers: */
+		#if defined(__cplusplus)
+			extern "C" {
+		#endif
+
+	/* Preprocessor Checks: */
+		#if !defined(__INCLUDE_FROM_BUTTONS_H)
+			#error Do not include this file directly. Include LUFA/Drivers/Board/Buttons.h instead.
+		#endif
+		
+	/* Public Interface - May be used in end-application: */
+		/* Macros: */
+			/** Button mask for the first button on the board. */
+			#define BUTTONS_BUTTON1      (1UL << 2)
+	
+			/** Button mask for the second button on the board. */
+			#define BUTTONS_BUTTON2      (1UL << 3)
+
+		/* Inline Functions: */
+		#if !defined(__DOXYGEN__)
+			static inline void Buttons_Init(void)
+			{
+				AVR32_GPIO.port[1].gpers = (BUTTONS_BUTTON1 | BUTTONS_BUTTON2);
+				AVR32_GPIO.port[1].puers = (BUTTONS_BUTTON1 | BUTTONS_BUTTON2);
+			}
+
+			static inline uint32_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
+			static inline uint32_t Buttons_GetStatus(void)
+			{
+				return (~AVR32_GPIO.port[1].pvr & (BUTTONS_BUTTON1 | BUTTONS_BUTTON2));
+			}
+		#endif
+
+	/* Disable C linkage for C++ Compilers: */
+		#if defined(__cplusplus)
+			}
+		#endif
+			
+#endif
+
+/** @} */
diff --git a/LUFA/Drivers/Board/EVK1101/Joystick.h b/LUFA/Drivers/Board/EVK1101/Joystick.h
new file mode 100644
index 0000000000000000000000000000000000000000..0bcc59c949a82c65cb704a8b89915d24a772ce8b
--- /dev/null
+++ b/LUFA/Drivers/Board/EVK1101/Joystick.h
@@ -0,0 +1,117 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2010.
+              
+  dean [at] fourwalledcubicle [dot] com
+      www.fourwalledcubicle.com
+*/
+
+/*
+  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+  Permission to use, copy, modify, distribute, and sell this 
+  software and its documentation for any purpose is hereby granted
+  without fee, provided that the above copyright notice appear in 
+  all copies and that both that the copyright notice and this
+  permission notice and warranty disclaimer appear in supporting 
+  documentation, and that the name of the author not be used in 
+  advertising or publicity pertaining to distribution of the 
+  software without specific, written prior permission.
+
+  The author disclaim all warranties with regard to this
+  software, including all implied warranties of merchantability
+  and fitness.  In no event shall the author be liable for any
+  special, indirect or consequential damages or any damages
+  whatsoever resulting from loss of use, data or profits, whether
+  in an action of contract, negligence or other tortious action,
+  arising out of or in connection with the use or performance of
+  this software.
+*/
+
+/** \file
+ *
+ *  Board specific joystick driver header for the EVK1101.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the joystick driver
+ *        dispatch header located in LUFA/Drivers/Board/Joystick.h.
+ */
+
+/** \ingroup Group_Joystick
+ *  @defgroup Group_Joystick_EVK1101 EVK1101
+ *
+ *  Board specific joystick driver header for the EVK1101.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the joystick driver
+ *        dispatch header located in LUFA/Drivers/Board/Joystick.h.
+ *
+ *  @{
+ */
+
+#ifndef __JOYSTICK_EVK1101_H__
+#define __JOYSTICK_EVK1101_H__
+
+	/* Includes: */
+		#include <avr32/io.h>
+
+		#include "../../../Common/Common.h"
+
+	/* Enable C linkage for C++ Compilers: */
+		#if defined(__cplusplus)
+			extern "C" {
+		#endif
+
+	/* Preprocessor Checks: */
+		#if !defined(__INCLUDE_FROM_JOYSTICK_H)
+			#error Do not include this file directly. Include LUFA/Drivers/Board/Joystick.h instead.
+		#endif
+
+	/* Private Interface - For use in library only: */
+	#if !defined(__DOXYGEN__)
+		/* Macros: */
+			#define JOY_MASK_PA              (1 << 13)
+			#define JOY_MASK_PB              ((1 << 6) | (1 << 7) | (1 << 8) | (1 << 9))
+	#endif
+
+	/* Public Interface - May be used in end-application: */
+		/* Macros: */
+			/** Mask for the joystick being pushed in the left direction. */
+			#define JOY_LEFT                  (1UL << 6)
+
+			/** Mask for the joystick being pushed in the upward direction. */
+			#define JOY_UP                    (1UL << 7)
+
+			/** Mask for the joystick being pushed in the right direction. */
+			#define JOY_RIGHT                 (1UL << 8)
+
+			/** Mask for the joystick being pushed in the downward direction. */
+			#define JOY_DOWN                  (1UL << 9)
+
+			/** Mask for the joystick being pushed inward. */
+			#define JOY_PRESS                 (1UL << 13)
+			
+		/* Inline Functions: */
+		#if !defined(__DOXYGEN__)
+			static inline void Joystick_Init(void)
+			{
+				AVR32_GPIO.port[0].gpers = JOY_MASK_PA;
+				AVR32_GPIO.port[0].puers = JOY_MASK_PA;
+				AVR32_GPIO.port[1].gpers = JOY_MASK_PB;
+				AVR32_GPIO.port[1].puers = JOY_MASK_PB;
+			}
+			
+			static inline uint32_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
+			static inline uint32_t Joystick_GetStatus(void)
+			{
+				return ((~AVR32_GPIO.port[1].pvr & JOY_MASK_PB) |
+				        (~AVR32_GPIO.port[0].pvr & JOY_MASK_PA));
+			}
+		#endif
+
+	/* Disable C linkage for C++ Compilers: */
+		#if defined(__cplusplus)
+			}
+		#endif
+
+#endif
+
+/** @} */
diff --git a/LUFA/Drivers/Board/EVK1101/LEDs.h b/LUFA/Drivers/Board/EVK1101/LEDs.h
new file mode 100644
index 0000000000000000000000000000000000000000..f19e464d72c47173fe1c5aecf40797be6bb6a2ce
--- /dev/null
+++ b/LUFA/Drivers/Board/EVK1101/LEDs.h
@@ -0,0 +1,138 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2010.
+              
+  dean [at] fourwalledcubicle [dot] com
+      www.fourwalledcubicle.com
+*/
+
+/*
+  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+  Permission to use, copy, modify, distribute, and sell this 
+  software and its documentation for any purpose is hereby granted
+  without fee, provided that the above copyright notice appear in 
+  all copies and that both that the copyright notice and this
+  permission notice and warranty disclaimer appear in supporting 
+  documentation, and that the name of the author not be used in 
+  advertising or publicity pertaining to distribution of the 
+  software without specific, written prior permission.
+
+  The author disclaim all warranties with regard to this
+  software, including all implied warranties of merchantability
+  and fitness.  In no event shall the author be liable for any
+  special, indirect or consequential damages or any damages
+  whatsoever resulting from loss of use, data or profits, whether
+  in an action of contract, negligence or other tortious action,
+  arising out of or in connection with the use or performance of
+  this software.
+*/
+
+/** \file
+ *
+ *  Board specific LED driver header for the EVK1101.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the LEDs driver
+ *        dispatch header located in LUFA/Drivers/Board/LEDs.h.
+ */
+
+/** \ingroup Group_LEDs
+ *  @defgroup Group_LEDs_EVK1101 EVK1101
+ *
+ *  Board specific LED driver header for the EVK1101.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the LEDs driver
+ *        dispatch header located in LUFA/Drivers/Board/LEDs.h.
+ *
+ *  @{
+ */
+
+#ifndef __LEDS_EVK1101_H__
+#define __LEDS_EVK1101_H__
+
+	/* Includes: */
+		#include <avr32/io.h>
+
+		#include "../../../Common/Common.h"
+
+	/* Enable C linkage for C++ Compilers: */
+		#if defined(__cplusplus)
+			extern "C" {
+		#endif
+
+	/* Preprocessor Checks: */
+		#if !defined(__INCLUDE_FROM_LEDS_H)
+			#error Do not include this file directly. Include LUFA/Drivers/Board/LEDS.h instead.
+		#endif
+
+	/* Public Interface - May be used in end-application: */
+		/* Macros: */
+			/** LED mask for the first LED on the board. */
+			#define LEDS_LED1        (1UL << 7)
+
+			/** LED mask for the second LED on the board. */
+			#define LEDS_LED2        (1UL << 8)
+
+			/** LED mask for the third LED on the board. */
+			#define LEDS_LED3        (1UL << 21)
+
+			/** LED mask for the fourth LED on the board. */
+			#define LEDS_LED4        (1UL << 22)
+
+			/** LED mask for all the LEDs on the board. */
+			#define LEDS_ALL_LEDS    (LEDS_LED1 | LEDS_LED2 | LEDS_LED3 | LEDS_LED4)
+
+			/** LED mask for the none of the board LEDs */
+			#define LEDS_NO_LEDS     0
+
+		/* Inline Functions: */
+		#if !defined(__DOXYGEN__)
+			static inline void LEDs_Init(void)
+			{
+				AVR32_GPIO.port[0].gpers = LEDS_ALL_LEDS;
+				AVR32_GPIO.port[0].oders = LEDS_ALL_LEDS;
+				AVR32_GPIO.port[0].ovrs  = LEDS_ALL_LEDS;
+			}
+			
+			static inline void LEDs_TurnOnLEDs(const uint32_t LEDMask)
+			{
+				AVR32_GPIO.port[0].ovrc = LEDMask;
+			}
+
+			static inline void LEDs_TurnOffLEDs(const uint32_t LEDMask)
+			{
+				AVR32_GPIO.port[0].ovrs = LEDMask;
+			}
+
+			static inline void LEDs_SetAllLEDs(const uint32_t LEDMask)
+			{
+				AVR32_GPIO.port[0].ovrs = LEDS_ALL_LEDS;
+				AVR32_GPIO.port[0].ovrc = LEDMask;
+			}
+			
+			static inline void LEDs_ChangeLEDs(const uint32_t LEDMask, const uint32_t ActiveMask)
+			{
+				AVR32_GPIO.port[0].ovrs = LEDMask;
+				AVR32_GPIO.port[0].ovrc = ActiveMask;
+			}
+			
+			static inline void LEDs_ToggleLEDs(const uint32_t LEDMask)
+			{
+				AVR32_GPIO.port[0].ovrt = LEDMask;
+			}
+			
+			static inline uint32_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
+			static inline uint32_t LEDs_GetLEDs(void)
+			{
+				return (AVR32_GPIO.port[0].ovr & LEDS_ALL_LEDS);
+			}
+		#endif
+
+	/* Disable C linkage for C++ Compilers: */
+		#if defined(__cplusplus)
+			}
+		#endif
+		
+#endif
+
+/** @} */
diff --git a/LUFA/Drivers/Board/Joystick.h b/LUFA/Drivers/Board/Joystick.h
index 39375a265f67889df6d4eefdf2b6355d2dad8f41..b14e989860577d07a40288113e41fbeb8d40e36f 100644
--- a/LUFA/Drivers/Board/Joystick.h
+++ b/LUFA/Drivers/Board/Joystick.h
@@ -83,6 +83,8 @@
 		#include "EVK527/Joystick.h"
 	#elif (BOARD == BOARD_USER)
 		#include "Board/Joystick.h"
+	#elif (BOARD == BOARD_EVK1101)
+		#include "EVK1101/Joystick.h"
 	#else
 		#error The selected board does not contain a joystick.
 	#endif
@@ -100,7 +102,7 @@
 		 *  \return Mask indicating the joystick direction - see corresponding board specific Joystick.h file
 		 *          for direction masks
 		 */
-		static inline uint8_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
+		static inline uintN_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
 	#endif
 
 #endif
diff --git a/LUFA/Drivers/Board/LEDs.h b/LUFA/Drivers/Board/LEDs.h
index 94fbf3cf797405fa8627e4f20facf97d70313560..1def9ea90da5f793239082d7abba44b9706f1912 100644
--- a/LUFA/Drivers/Board/LEDs.h
+++ b/LUFA/Drivers/Board/LEDs.h
@@ -84,7 +84,7 @@
 		static inline void LEDs_SetAllLEDs(const uint8_t LEDMask) {};
 		static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask) {};
 		static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) {};
-		static inline uint8_t LEDs_GetLEDs(void) { return 0; }
+		static inline uintN_t LEDs_GetLEDs(void) { return 0; }
 	#elif (BOARD == BOARD_USBKEY)
 		#include "USBKEY/LEDs.h"
 	#elif (BOARD == BOARD_STK525)
@@ -105,6 +105,8 @@
 		#include "EVK527/LEDs.h"		
 	#elif (BOARD == BOARD_USER)
 		#include "Board/LEDs.h"
+	#elif (BOARD == BOARD_EVK1101)
+		#include "EVK1101/LEDs.h"
 	#endif
 	
 	#if !defined(LEDS_LED1)
@@ -134,20 +136,20 @@
 		 *
 		 *  \param[in] LEDMask  Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)
 		 */
-		static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask);
+		static inline void LEDs_TurnOnLEDs(const uintN_t LEDMask);
 
 		/** Turns off the LEDs specified in the given LED mask.
 		 *
 		 *  \param[in] LEDMask  Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)
 		 */
-		static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask);
+		static inline void LEDs_TurnOffLEDs(const uintN_t LEDMask);
 
 		/** Turns off all LEDs not specified in the given LED mask, and turns on all the LEDs in the given LED
 		 *  mask.
 		 *
 		 *  \param[in] LEDMask  Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)
 		 */
-		static inline void LEDs_SetAllLEDs(const uint8_t LEDMask);
+		static inline void LEDs_SetAllLEDs(const uintN_t LEDMask);
 
 		/** Turns off all LEDs in the LED mask that are not set in the active mask, and turns on all the LEDs
 		 *  specified in both the LED and active masks.
@@ -155,20 +157,20 @@
 		 *  \param[in] LEDMask     Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)
 		 *  \param[in] ActiveMask  Mask of whether the LEDs in the LED mask should be turned on or off
 		 */
-		static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask);
+		static inline void LEDs_ChangeLEDs(const uintN_t LEDMask, const uintN_t ActiveMask);
 		
 		/** Toggles all LEDs in the LED mask, leaving all others in their current states.
 		 *
 		 *  \param[in] LEDMask Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)
 		 */
-		static inline void LEDs_ToggleLEDs(const uint8_t LEDMask);
+		static inline void LEDs_ToggleLEDs(const uintN_t LEDMask);
 
 		/** Returns the status of all the board LEDs; set LED masks in the return value indicate that the
 		 *  corresponding LED is on.
 		 *
 		 *  \return Mask of the board LEDs which are currently turned on
 		 */
-		static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
+		static inline uintN_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
 	#endif
 
 #endif
diff --git a/LUFA/Drivers/Board/Temperature.h b/LUFA/Drivers/Board/Temperature.h
index 7a5af367b9b5dde205ca60ca6a5b7ae2283f05d5..12e6df1374cd16f8a454c607f5824b3a8643f4f0 100644
--- a/LUFA/Drivers/Board/Temperature.h
+++ b/LUFA/Drivers/Board/Temperature.h
@@ -53,7 +53,11 @@
 #define __TEMPERATURE_H__
 
 	/* Includes: */
-		#include <avr/pgmspace.h>
+		#if defined(__AVR32__)
+			#include <stdint.h>
+		#else
+			#include <avr/pgmspace.h>
+		#endif
 
 		#include "../../Common/Common.h"
 		#include "../Peripheral/ADC.h"
diff --git a/LUFA/Drivers/Peripheral/SPI.h b/LUFA/Drivers/Peripheral/AVRU4U6U7/SPI.h
similarity index 96%
rename from LUFA/Drivers/Peripheral/SPI.h
rename to LUFA/Drivers/Peripheral/AVRU4U6U7/SPI.h
index 6416ceae65394421b2bcc8f6c0223725423b409d..25503b6c3b598ac2888cbea888517b88c0f70750 100644
--- a/LUFA/Drivers/Peripheral/SPI.h
+++ b/LUFA/Drivers/Peripheral/AVRU4U6U7/SPI.h
@@ -106,7 +106,7 @@
 			#define SPI_MODE_MASTER                (1 << MSTR)
 
 		/* Inline Functions: */
-			/** Initializes the SPI subsystem, ready for transfers. Must be called before calling any other
+			/** Initialises the SPI subsystem, ready for transfers. Must be called before calling any other
 			 *  SPI routines.
 			 *
 			 *  \param[in] SPIOptions  SPI Options, a mask consisting of one of each of the SPI_SPEED_*,
diff --git a/LUFA/Drivers/Peripheral/Serial.h b/LUFA/Drivers/Peripheral/AVRU4U6U7/Serial.h
similarity index 100%
rename from LUFA/Drivers/Peripheral/Serial.h
rename to LUFA/Drivers/Peripheral/AVRU4U6U7/Serial.h
diff --git a/LUFA/ManPages/DeviceSupport.txt b/LUFA/ManPages/DeviceSupport.txt
index 0902b90a215f2f59a38b802dac842d03e2a99ec0..14022e21456d374416f6e0a687ac442ec42179ee 100644
--- a/LUFA/ManPages/DeviceSupport.txt
+++ b/LUFA/ManPages/DeviceSupport.txt
@@ -20,11 +20,13 @@
  *   - AT90USB647 (USB Host and Device)
  *   - AT90USB1286 (USB Device Only)
  *   - AT90USB1287 (USB Host and Device)
+ *   - AT32UC3B0256 (EXPERIMENTAL)
  *
  *  Currently supported Atmel boards:
  *   - AT90USBKEY
  *   - ATAVRUSBRF01
  *   - EVK527
+ *   - EVK1101 (EXPERIMENTAL)
  *   - RZUSBSTICK
  *   - STK525
  *   - STK526
diff --git a/LUFA/Scheduler/Scheduler.h b/LUFA/Scheduler/Scheduler.h
index f71736fd5342ae0f26c8995111d39ffbb84a8d98..084fb1e8cb35421f5f622fb3f91b15e450f37f0d 100644
--- a/LUFA/Scheduler/Scheduler.h
+++ b/LUFA/Scheduler/Scheduler.h
@@ -86,12 +86,16 @@
 #define __SCHEDULER_H__
 
 	/* Includes: */
-		#include <avr/io.h>
+	#if defined(__AVR32__)
+		#include <avr32/io.h>
 		#include <stdbool.h>
-		
+	#else
+		#include <avr/io.h>
 		#include <util/atomic.h>
+		#include <stdbool.h>
+	#endif
 
-		#include "../Common/Common.h"
+	#include "../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
 		#if defined(__cplusplus)