diff --git a/LUFA/CodeTemplates/DriverStubs/Buttons.h b/LUFA/CodeTemplates/DriverStubs/Buttons.h
index de23d7be669d5c0bc683b6c868867b373f95a25c..f1a1846001c6f024010f5aa5cf943ae49b0843e2 100644
--- a/LUFA/CodeTemplates/DriverStubs/Buttons.h
+++ b/LUFA/CodeTemplates/DriverStubs/Buttons.h
@@ -43,9 +43,6 @@
 #define __BUTTONS_USER_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <stdbool.h>
-
 		// TODO: Add any required includes here
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/CodeTemplates/DriverStubs/Joystick.h b/LUFA/CodeTemplates/DriverStubs/Joystick.h
index 1a4f2a2de2206d4dfd461a28b67b2c6c0c9c5305..c5c36268e2b5a8e192f4200c9b4fb3c43098ec5d 100644
--- a/LUFA/CodeTemplates/DriverStubs/Joystick.h
+++ b/LUFA/CodeTemplates/DriverStubs/Joystick.h
@@ -44,8 +44,6 @@
 #define __JOYSTICK_USER_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		// TODO: Add any required includes here
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/CodeTemplates/DriverStubs/LEDs.h b/LUFA/CodeTemplates/DriverStubs/LEDs.h
index b8244c06d8313ca56983a3f2a770a13360be30b5..2bd5e5ca1fee573358ec7b53b39d540de7d03bb1 100644
--- a/LUFA/CodeTemplates/DriverStubs/LEDs.h
+++ b/LUFA/CodeTemplates/DriverStubs/LEDs.h
@@ -43,8 +43,6 @@
 #define __LEDS_USER_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		// TODO: Add any required includes here
 
 /* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Common/Architectures.h b/LUFA/Common/Architectures.h
index 8bf9c7cac4a8266053a1b3074403478208f8c702..3aa7a58d220d460a4ceb98d8c6ae2ca26ec8c00c 100644
--- a/LUFA/Common/Architectures.h
+++ b/LUFA/Common/Architectures.h
@@ -31,8 +31,7 @@
 /** \file
  *  \brief Supported architecture defines.
  *
- *  This file contains constants which can be passed to the compiler (via setting the macro ARCH) in the
- *  user project makefile using the -D option to configure the library drivers.
+ *  \copydetails Group_Architectures
  *
  *  \note Do not include this file directly, rather include the Common.h header file instead to gain this file's
  *        functionality.
@@ -40,6 +39,7 @@
 
 /** \ingroup Group_Common
  *  \defgroup Group_Architectures Hardware Architectures
+ *  \brief Supported architecture defines.
  *
  *  Macros for indicating the chosen hardware architecture to the library. These macros should be used when
  *  defining the ARCH token to the chosen hardware via the -D switch in the project makefile.
diff --git a/LUFA/Common/Attributes.h b/LUFA/Common/Attributes.h
index ff4058cf118ed060250b0222f15a60bde2d44795..1cedaa98c4b96001ccc00d0c509127674a7a19ab 100644
--- a/LUFA/Common/Attributes.h
+++ b/LUFA/Common/Attributes.h
@@ -31,23 +31,23 @@
 /** \file
  *  \brief AVR-GCC special function/variable attribute macros.
  *
- *  This file contains macros for applying GCC specific attributes to functions and variables to control various
- *  optimiser and code generation features of the compiler. Attributes may be placed in the function prototype
- *  or variable declaration in any order, and multiple attributes can be specified for a single item via a space
- *  separated list.
- *
- *  On incompatible versions of GCC or on other compilers, these macros evaluate to nothing unless they are
- *  critical to the code's function and thus must throw a compiler error when used.
+ *  \copydetails Group_GCCAttributes
  *
  *  \note Do not include this file directly, rather include the Common.h header file instead to gain this file's
  *        functionality.
  */
 
 /** \ingroup Group_Common
- *  \defgroup Group_GCCAttr Function/Variable Attributes
+ *  \defgroup Group_GCCAttributes Function/Variable Attributes
+ *  \brief AVR-GCC special function/variable attribute macros.
  *
- *  Macros for easy access GCC function and variable attributes, which can be applied to function prototypes or
- *  variable attributes.
+ *  This file contains macros for applying GCC specific attributes to functions and variables to control various
+ *  optimiser and code generation features of the compiler. Attributes may be placed in the function prototype
+ *  or variable declaration in any order, and multiple attributes can be specified for a single item via a space
+ *  separated list.
+ *
+ *  On incompatible versions of GCC or on other compilers, these macros evaluate to nothing unless they are
+ *  critical to the code's function and thus must throw a compiler error when used.
  *
  *  @{
  */
diff --git a/LUFA/Common/BoardTypes.h b/LUFA/Common/BoardTypes.h
index 7d9162262241848bae68025018f0cc903a880420..9077e56f957c978d52bd909a4ac971887164cdbb 100644
--- a/LUFA/Common/BoardTypes.h
+++ b/LUFA/Common/BoardTypes.h
@@ -31,8 +31,7 @@
 /** \file
  *  \brief Supported board hardware defines.
  *
- *  This file contains constants which can be passed to the compiler (via setting the macro BOARD) in the
- *  user project makefile using the -D option to configure the library board-specific drivers.
+ *  \copydetails Group_BoardTypes
  *
  *  \note Do not include this file directly, rather include the Common.h header file instead to gain this file's
  *        functionality.
@@ -40,6 +39,7 @@
 
 /** \ingroup Group_Common
  *  \defgroup Group_BoardTypes Board Types
+ *  \brief Supported board hardware defines.
  *
  *  Macros for indicating the chosen physical board hardware to the library. These macros should be used when
  *  defining the BOARD token to the chosen hardware via the -D switch in the project makefile.
diff --git a/LUFA/Common/Common.h b/LUFA/Common/Common.h
index 3afb60d0089137dac090ed7bf846bc7440c15e59..62aee31dfa75180bdf30599a4c6ba1e20f426c71 100644
--- a/LUFA/Common/Common.h
+++ b/LUFA/Common/Common.h
@@ -31,11 +31,11 @@
 /** \file
  *  \brief Common library convenience macros and functions.
  *
- *  This file contains macros which are common to all library elements, and which may be useful in user code. It
- *  also includes other common code headers.
+ *  \copydetails Group_Common
  */
 
 /** \defgroup Group_Common Common Utility Headers - LUFA/Drivers/Common/Common.h
+ *  \brief Common library convenience macros and functions.
  *
  *  Common utility headers containing macros, functions, enums and types which are common to all
  *  aspects of the library.
@@ -64,7 +64,8 @@
 	/* Includes: */
 		#include <stdint.h>
 		#include <stdbool.h>
-
+		#include <string.h>
+		
 		#include "Architectures.h"
 		#include "Attributes.h"
 		#include "BoardTypes.h"
@@ -75,6 +76,7 @@
 			#include <avr/interrupt.h>
 			#include <avr/pgmspace.h>
 			#include <avr/eeprom.h>
+			#include <avr/boot.h>
 			#include <util/atomic.h>
 			#include <util/delay.h>
 		#endif
@@ -123,7 +125,7 @@
 				#define MIN(x, y)               ((x < y) ? x : y)
 			#endif
 
-			#if (ARCH == ARCH_AVR8)
+			#if (ARCH == ARCH_AVR8) || defined(__DOXYGEN__)
 				/** Defines a volatile \c NOP statement which cannot be optimized out by the compiler, and thus can always
 				 *  be set as a breakpoint in the resulting code. Useful for debugging purposes, where the optimiser
 				 *  removes/reorders code to the point where break points cannot reliably be set.
diff --git a/LUFA/Drivers/Board/ADAFRUITU4/LEDs.h b/LUFA/Drivers/Board/ADAFRUITU4/LEDs.h
index 3f6a6cca456c67012e766bcd71c8d6cc41214e8f..9f5097f17e15cb39e6817ec114141cd6f31819d0 100644
--- a/LUFA/Drivers/Board/ADAFRUITU4/LEDs.h
+++ b/LUFA/Drivers/Board/ADAFRUITU4/LEDs.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for the Adafruit U4 Breakout board.
- *
- *  Board specific LED driver header for the Adafruit U4 Breakout board (http://ladyada.net/products/atmega32u4breakout).
+ *  \copydetails Group_LEDs_ADAFRUITU4
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_ADAFRUITU4 ADAFRUITU4
+ *  \brief Board specific LED driver header for the Adafruit U4 Breakout board.
  *
  *  Board specific LED driver header for the Adafruit U4 Breakout board (http://ladyada.net/products/atmega32u4breakout).
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,8 +49,6 @@
 #define __LEDS_ADAFRUITU4_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/ATAVRUSBRF01/Buttons.h b/LUFA/Drivers/Board/ATAVRUSBRF01/Buttons.h
index 568c0cb7da980ae6a23ffff6c02f34f7e56ac176..daefcdea9e04c03dbd79d8db764fb6f0be427537 100644
--- a/LUFA/Drivers/Board/ATAVRUSBRF01/Buttons.h
+++ b/LUFA/Drivers/Board/ATAVRUSBRF01/Buttons.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific Buttons driver header for the Atmel ATAVRUSBRF01.
- *
- *  Board specific Buttons driver header for the Atmel ATAVRUSBRF01.
+ *  \copydetails Group_Buttons_ATAVRUSBRF01
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_Buttons
  *  \defgroup Group_Buttons_ATAVRUSBRF01 ATAVRUSBRF01
+ *  \brief Board specific Buttons driver header for the Atmel ATAVRUSBRF01.
  *
  *  Board specific Buttons driver header for the Atmel ATAVRUSBRF01.
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,9 +49,6 @@
 #define __BUTTONS_ATAVRUSBRF01_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <stdbool.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/ATAVRUSBRF01/LEDs.h b/LUFA/Drivers/Board/ATAVRUSBRF01/LEDs.h
index 044042f0915fa27f5f0fc421b23d27197537c100..10456f1cd985ed494de33316fa030ff734b239ff 100644
--- a/LUFA/Drivers/Board/ATAVRUSBRF01/LEDs.h
+++ b/LUFA/Drivers/Board/ATAVRUSBRF01/LEDs.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for the Atmel ATAVRUSBRF01.
- *
- *  Board specific LED driver header for the Atmel ATAVRUSBRF01.
+ *  \copydetails Group_LEDs_ATAVRUSBRF01
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_ATAVRUSBRF01 ATAVRUSBRF01
+ *  \brief Board specific LED driver header for the Atmel ATAVRUSBRF01.
  *
  *  Board specific LED driver header for the Atmel ATAVRUSBRF01.
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,8 +49,6 @@
 #define __LEDS_ATAVRUSBRF01_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/BENITO/Buttons.h b/LUFA/Drivers/Board/BENITO/Buttons.h
index 4e3d088204feeb7c9e8d6fa071684c03a30c1f63..141f1ed4d2c08544e0538368c409e0277742e8aa 100644
--- a/LUFA/Drivers/Board/BENITO/Buttons.h
+++ b/LUFA/Drivers/Board/BENITO/Buttons.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific Buttons driver header for the Tempusdictum Benito.
- *
- *  Board specific Buttons driver header for the Tempusdictum Benito (http://dorkbotpdx.org/wiki/benito).
+ *  \copydetails Group_Buttons_BENITO
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_Buttons
  *  \defgroup Group_Buttons_BENITO BENITO
+ *  \brief Board specific Buttons driver header for the Tempusdictum Benito.
  *
  *  Board specific Buttons driver header for the Tempusdictum Benito (http://dorkbotpdx.org/wiki/benito).
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,9 +49,6 @@
 #define __BUTTONS_BENITO_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <stdbool.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/BENITO/LEDs.h b/LUFA/Drivers/Board/BENITO/LEDs.h
index 51593ec9ef9e30f43ef8e9006c4f4fc59bd07b47..00e0907cbaab09a73a1e7860c06a06d41f2d055f 100644
--- a/LUFA/Drivers/Board/BENITO/LEDs.h
+++ b/LUFA/Drivers/Board/BENITO/LEDs.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for the Tempusdictum Benito.
- *
- *  Board specific LED driver header for the Tempusdictum Benito (http://dorkbotpdx.org/wiki/benito).
+ *  \copydetails Group_LEDs_BENITO
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_BENITO BENITO
+ *  \brief Board specific LED driver header for the Tempusdictum Benito.
  *
  *  Board specific LED driver header for the Tempusdictum Benito (http://dorkbotpdx.org/wiki/benito).
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,7 +49,7 @@
 #define __LEDS_BENITO_H__
 
 	/* Includes: */
-		#include <avr/io.h>
+		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
 		#if defined(__cplusplus)
diff --git a/LUFA/Drivers/Board/BLACKCAT/LEDs.h b/LUFA/Drivers/Board/BLACKCAT/LEDs.h
index e5c250cc4f55e535e11fbc309c000847cc18868f..8b322bcf72e37716508ede82d4780ae911df5d76 100644
--- a/LUFA/Drivers/Board/BLACKCAT/LEDs.h
+++ b/LUFA/Drivers/Board/BLACKCAT/LEDs.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for the BLACKCAT USB JTAG.
- *
- *  Board specific LED driver header for the TCNISO Blackcat USB JTAG (http://www.embeddedcomputers.net/products/BlackcatUSB/.
+ *  \copydetails Group_LEDs_BLACKCAT
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_BLACKCAT BLACKCAT
+ *  \brief Board specific LED driver header for the BLACKCAT USB JTAG.
  *
  *  Board specific LED driver header for the TCNISO Blackcat USB JTAG (http://www.embeddedcomputers.net/products/BlackcatUSB/.
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,8 +49,6 @@
 #define __LEDS_BLACKCAT_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/BUI/LEDs.h b/LUFA/Drivers/Board/BUI/LEDs.h
index fa1a8b0c457acc10518a631e6235e28b508964f6..f17cf24c20f46c1ed98e60f8a84a58cf5c1322e1 100644
--- a/LUFA/Drivers/Board/BUI/LEDs.h
+++ b/LUFA/Drivers/Board/BUI/LEDs.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for the Busware BUI.
- *
- *  Board specific LED driver header for the Busware BUI (http://www.busware.de/tiki-index.php?page=BUI).
+ *  \copydetails Group_LEDs_BUI
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_BUI BUI
+ *  \brief Board specific LED driver header for the Busware BUI.
  *
  *  Board specific LED driver header for the Busware BUI (http://www.busware.de/tiki-index.php?page=BUI).
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,7 +49,7 @@
 #define __LEDS_BUI_H__
 
 	/* Includes: */
-		#include <avr/io.h>
+		#include "../../../Common/Common.h"
 
 /* Enable C linkage for C++ Compilers: */
 		#if defined(__cplusplus)
diff --git a/LUFA/Drivers/Board/BUMBLEB/Buttons.h b/LUFA/Drivers/Board/BUMBLEB/Buttons.h
index 015ecf6d5ca56e33b24af8a3d55d5ef60edf9c6c..b4bab86cdee73e3a685ecb56d5665096ff133482 100644
--- a/LUFA/Drivers/Board/BUMBLEB/Buttons.h
+++ b/LUFA/Drivers/Board/BUMBLEB/Buttons.h
@@ -30,11 +30,7 @@
 
 /** \file
  *  \brief Board specific Buttons driver header for the Fletchtronics BUMBLEB.
- *
- *  Board specific Buttons driver header for the Fletchtronics BUMBLEB (http://fletchtronics.net/bumble-b).
- *
- *  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.
+ *  \copydetails Group_Buttons_BUMBLEB
  *
  *  \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.
@@ -42,14 +38,12 @@
 
 /** \ingroup Group_Buttons
  *  \defgroup Group_Buttons_BUMBLEB BUMBLEB
+ *  \brief Board specific Buttons driver header for the Fletchtronics BUMBLEB.
  *
  *  Board specific buttons driver header for the Fletchtronics BUMBLEB (http://fletchtronics.net/bumble-b). 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 Buttons driver
- *        dispatch header located in LUFA/Drivers/Board/Buttons.h.
- *
  *  @{
  */
 
@@ -57,9 +51,6 @@
 #define __BUTTONS_BUMBLEB_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <stdbool.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/BUMBLEB/Joystick.h b/LUFA/Drivers/Board/BUMBLEB/Joystick.h
index 336863c387a2ff30393f12c4f26775d0fb9df6d2..28b09b49e7839f3b27eb628b35a0dd4925aad75f 100644
--- a/LUFA/Drivers/Board/BUMBLEB/Joystick.h
+++ b/LUFA/Drivers/Board/BUMBLEB/Joystick.h
@@ -30,11 +30,7 @@
 
 /** \file
  *  \brief Board specific joystick driver header for the Fletchtronics BUMLEB.
- *
- *  Board specific joystick driver header for the Fletchtronics BUMBLEB (http://fletchtronics.net/bumble-b).
- *
- *  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.
+ *  \copydetails Group_Joystick_BUMBLEB
  *
  *  \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.
@@ -42,14 +38,12 @@
 
 /** \ingroup Group_Joystick
  *  \defgroup Group_Joystick_BUMBLEB BUMBLEB
+ *  \brief Board specific joystick driver header for the Fletchtronics BUMLEB.
  *
  *  Board specific joystick driver header for the Fletchtronics BUMBLEB (http://fletchtronics.net/bumble-b). 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
- *        dispatch header located in LUFA/Drivers/Board/Joystick.h.
- *
  *  @{
  */
 
@@ -57,8 +51,6 @@
 #define __JOYSTICK_BUMBLEB_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/BUMBLEB/LEDs.h b/LUFA/Drivers/Board/BUMBLEB/LEDs.h
index 349ef38c6ac3fc52c58dc61d2661e326ce34a948..c5ecfe87ff793b00b47d97f07ec89e6f0ab26399 100644
--- a/LUFA/Drivers/Board/BUMBLEB/LEDs.h
+++ b/LUFA/Drivers/Board/BUMBLEB/LEDs.h
@@ -30,11 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for the Fletchtronics BUMBLEB.
- *
- *  Board specific LED driver header for the Fletchtronics BUMBLEB (http://fletchtronics.net/bumble-b).
- *
- *  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.
+ *  \copydetails Group_LEDs_BUMBLEB
  *
  *  \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.
@@ -42,14 +38,12 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_BUMBLEB BUMBLEB
+ *  \brief Board specific LED driver header for the Fletchtronics BUMBLEB.
  *
  *  Board specific LED driver header for the Fletchtronics BUMBLEB (http://fletchtronics.net/bumble-b). 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 LEDs driver
- *        dispatch header located in LUFA/Drivers/Board/LEDs.h.
- *
  *  @{
  */
 
@@ -57,8 +51,6 @@
 #define __LEDS_BUMBLEB_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/CULV3/Buttons.h b/LUFA/Drivers/Board/CULV3/Buttons.h
index fd98c775f7e4fcb0b808ba79f1a758f08f0d18e6..53bf57a0f48066cd9e445278fb03d8817c423b0c 100644
--- a/LUFA/Drivers/Board/CULV3/Buttons.h
+++ b/LUFA/Drivers/Board/CULV3/Buttons.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for the Busware CULV3.
- *
- *  Board specific LED driver header for the Busware CUL V3 (http://busware.de/tiki-index.php?page=CUL).
+ *  \copydetails Group_LEDs_CULV3
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_CULV3 CULV3
+ *  \brief Board specific LED driver header for the Busware CULV3.
  *
  *  Board specific LED driver header for the Busware CUL V3 (http://busware.de/tiki-index.php?page=CUL).
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,9 +49,6 @@
 #define __BUTTONS_CULV3_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <stdbool.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/CULV3/LEDs.h b/LUFA/Drivers/Board/CULV3/LEDs.h
index c9d20b692dcad6c03a4ae08edcc58ab5104152e7..c2af7401a313b51a16c1eb6a8ad46dc140f85c8b 100644
--- a/LUFA/Drivers/Board/CULV3/LEDs.h
+++ b/LUFA/Drivers/Board/CULV3/LEDs.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for the Busware CUL V3.
- *
- *  Board specific LED driver header for the Busware CUL V3 (http://busware.de/tiki-index.php?page=CUL).
+ *  \copydetails Group_LEDs_CULV3
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_CULV3 CULV3
+ *  \brief Board specific LED driver header for the Busware CUL V3.
  *
  *  Board specific LED driver header for the Busware CUL V3 (http://busware.de/tiki-index.php?page=CUL).
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,8 +49,6 @@
 #define __LEDS_CULV3_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/EVK527/Buttons.h b/LUFA/Drivers/Board/EVK527/Buttons.h
index f9b3da12e171bd8639fd8fa2765f7613f0d3ca7d..98c8ce644489eff9d60528194c37c84f7be419d6 100644
--- a/LUFA/Drivers/Board/EVK527/Buttons.h
+++ b/LUFA/Drivers/Board/EVK527/Buttons.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific Buttons driver header for the Atmel EVK527.
- *
- *  Board specific Buttons driver header for the Atmel EVK527.
+ *  \copydetails Group_Buttons_EVK527
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_Buttons
  *  \defgroup Group_Buttons_EVK527 EVK527
+ *  \brief Board specific Buttons driver header for the Atmel EVK527.
  *
  *  Board specific Buttons driver header for the Atmel EVK527.
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,15 +49,6 @@
 #define __BUTTONS_EVK527_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <stdbool.h>
-
-		#include "../../../Common/Common.h"
-
-	/* Includes: */
-		#include <avr/io.h>
-		#include <stdbool.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/EVK527/Dataflash.h b/LUFA/Drivers/Board/EVK527/Dataflash.h
index 40608473a4298639351a74dec43a807b1f1079f9..d9f20d52dab502c1df7b022aceabc65a39d11a82 100644
--- a/LUFA/Drivers/Board/EVK527/Dataflash.h
+++ b/LUFA/Drivers/Board/EVK527/Dataflash.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific Dataflash driver header for the Atmel EVK527.
- *
- *  Board specific Dataflash driver header for the Atmel EVK527.
+ *  \copydetails Group_Dataflash_EVK527
  *
  *  \note This file should not be included directly. It is automatically included as needed by the dataflash driver
  *        dispatch header located in LUFA/Drivers/Board/Dataflash.h.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_Dataflash
  *  \defgroup Group_Dataflash_EVK527 EVK527
+ *  \brief Board specific Dataflash driver header for the Atmel EVK527.
  *
  *  Board specific Dataflash driver header for the Atmel EVK527.
  *
- *  \note This file should not be included directly. It is automatically included as needed by the dataflash driver
- *        dispatch header located in LUFA/Drivers/Board/Dataflash.h.
- *
  *  @{
  */
 
diff --git a/LUFA/Drivers/Board/EVK527/Joystick.h b/LUFA/Drivers/Board/EVK527/Joystick.h
index c0255f459528a5197fabf93f66e45c15d5f3acd7..be8f35aa3bdf8d1bec06e923cda4e82a3af34242 100644
--- a/LUFA/Drivers/Board/EVK527/Joystick.h
+++ b/LUFA/Drivers/Board/EVK527/Joystick.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific joystick driver header for the Atmel EVK527.
- *
- *  Board specific joystick driver header for the Atmel EVK527.
+ *  \copydetails Group_Joystick_EVK527
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_Joystick
  *  \defgroup Group_Joystick_EVK527 EVK527
+ *  \brief Board specific joystick driver header for the Atmel EVK527.
  *
  *  Board specific joystick driver header for the Atmel EVK527.
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,8 +49,6 @@
 #define __JOYSTICK_EVK527_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/EVK527/LEDs.h b/LUFA/Drivers/Board/EVK527/LEDs.h
index 5f4670fa75062f40677e9973099c5282dff4abc5..f8bfc1289a480f36df89bd167c676a6a4e6b6bd5 100644
--- a/LUFA/Drivers/Board/EVK527/LEDs.h
+++ b/LUFA/Drivers/Board/EVK527/LEDs.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for the Atmel EVK527.
- *
- *  Board specific LED driver header for the Atmel EVK527.
+ *  \copydetails Group_LEDs_EVK527
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_EVK527 EVK527
+ *  \brief Board specific LED driver header for the Atmel EVK527.
  *
  *  Board specific LED driver header for the Atmel EVK527.
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,8 +49,6 @@
 #define __LEDS_EVK527_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/JMDBU2/Buttons.h b/LUFA/Drivers/Board/JMDBU2/Buttons.h
index b5272ae75c953b1c4af7a42a236e1c32756074e9..4f3581654a6759a0e375a0f76f2da7e9328ce5fc 100644
--- a/LUFA/Drivers/Board/JMDBU2/Buttons.h
+++ b/LUFA/Drivers/Board/JMDBU2/Buttons.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific Buttons driver header for the Mattairtech JM-DB-U2.
- *
- *  Board specific Buttons driver header for the Mattairtech JM-DB-U2 (http://u2.mattair.net/index.html).
+ *  \copydetails Group_Buttons_JMDBU2
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_Buttons
  *  \defgroup Group_Buttons_JMDBU2 JMDBU2
+ *  \brief Board specific Buttons driver header for the Mattairtech JM-DB-U2.
  *
  *  Board specific Buttons driver header for the Mattairtech JM-DB-U2 (http://u2.mattair.net/index.html).
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,9 +49,6 @@
 #define __BUTTONS_JMDBU2_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <stdbool.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/JMDBU2/LEDs.h b/LUFA/Drivers/Board/JMDBU2/LEDs.h
index a15e9f35cec6a78316b8ca794656463bae8fe583..3c9bdc3b4a9ba9159c698e12b6f6665b59484cc9 100644
--- a/LUFA/Drivers/Board/JMDBU2/LEDs.h
+++ b/LUFA/Drivers/Board/JMDBU2/LEDs.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for the Mattairtech JM-DB-U2.
- *
- *  Board specific LED driver header for the Mattairtech JM-DB-U2 (http://u2.mattair.net/index.html).
+ *  \copydetails Group_LEDs_JMDBU2
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_JMDBU2 JMDBU2
+ *  \brief Board specific LED driver header for the Mattairtech JM-DB-U2.
  *
  *  Board specific LED driver header for the Mattairtech JM-DB-U2 (http://u2.mattair.net/index.html).
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,8 +49,6 @@
 #define __LEDS_JMDBU2_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/MAXIMUS/LEDs.h b/LUFA/Drivers/Board/MAXIMUS/LEDs.h
index c3ead686b97dae4effd97479515179fccab17cbe..5297d77eda9c4a3182112adef7f99ee081bf4079 100644
--- a/LUFA/Drivers/Board/MAXIMUS/LEDs.h
+++ b/LUFA/Drivers/Board/MAXIMUS/LEDs.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for the Maximus.
- *
- *  Board specific LED driver header for the Maximus (http://www.avrusb.com/).
+ *  \copydetails Group_LEDs_MAXIMUS
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_MAXIMUS MAXIMUS
+ *  \brief Board specific LED driver header for the Maximus.
  *
  *  Board specific LED driver header for the Maximus (http://www.avrusb.com/).
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,8 +49,6 @@
 #define __LEDS_MAXIMUS_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/MICROSIN162/Buttons.h b/LUFA/Drivers/Board/MICROSIN162/Buttons.h
index a4d1637e547ab1d2745bfc7c0fa6b0b06fed92fb..f41d28192ad1d0eeec77cef530f92ebc8fd383f1 100644
--- a/LUFA/Drivers/Board/MICROSIN162/Buttons.h
+++ b/LUFA/Drivers/Board/MICROSIN162/Buttons.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific Buttons driver header for the Microsin AVR-USB162 board.
- *
- *  Board specific Buttons driver header for the Microsin AVR-USB162 board (http://microsin.ru/content/view/685/44/).
+ *  \copydetails Group_Buttons_MICROSIN162
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_Buttons
  *  \defgroup Group_Buttons_MICROSIN162 MICROSIN162
+ *  \brief Board specific Buttons driver header for the Microsin AVR-USB162 board.
  *
  *  Board specific Buttons driver header for the Microsin AVR-USB162 board (http://microsin.ru/content/view/685/44/).
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,9 +49,6 @@
 #define __BUTTONS_MICROSIN162_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <stdbool.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/MICROSIN162/LEDs.h b/LUFA/Drivers/Board/MICROSIN162/LEDs.h
index 8926e33fc66b052cf99397932348a3ae03760e4f..2fa39fd6433c4d453b57f918829c7793d03c33ed 100644
--- a/LUFA/Drivers/Board/MICROSIN162/LEDs.h
+++ b/LUFA/Drivers/Board/MICROSIN162/LEDs.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for the Microsin AVR-USB162 board.
- *
- *  Board specific LED driver header for the Microsin AVR-USB162 board (http://microsin.ru/content/view/685/44/).
+ *  \copydetails Group_LEDs_MICROSIN162
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_MICROSIN162 MICROSIN162
+ *  \brief Board specific LED driver header for the Microsin AVR-USB162 board.
  *
  *  Board specific LED driver header for the Microsin AVR-USB162 board (http://microsin.ru/content/view/685/44/).
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,8 +49,6 @@
 #define __LEDS_MICROSIN162_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/MINIMUS/Buttons.h b/LUFA/Drivers/Board/MINIMUS/Buttons.h
index 9b3016fa3fc893de083af4ca89866315cd3a43d5..518db88101a88245e66542de792b46cca1aaa396 100644
--- a/LUFA/Drivers/Board/MINIMUS/Buttons.h
+++ b/LUFA/Drivers/Board/MINIMUS/Buttons.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific Buttons driver header for the MINIMUS.
- *
- *  Board specific Buttons driver header for the MINIMUS.
+ *  \copydetails Group_Buttons_MINIMUS
  *
  *  \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.
@@ -39,12 +38,10 @@
  
 /** \ingroup Group_Buttons
  *  \defgroup Group_Buttons_MINIMUS MINIMUS
+ *  \brief Board specific Buttons driver header for the MINIMUS.
  *
  *  Board specific Buttons driver header for the MINIMUS.
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,9 +49,6 @@
 #define __BUTTONS_MINIMUS_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <stdbool.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/MINIMUS/LEDs.h b/LUFA/Drivers/Board/MINIMUS/LEDs.h
index 524e6285366ca09f8f43c27946f86d321d499ade..f921918da47b4ef647259190a8fc85f78bdab119 100644
--- a/LUFA/Drivers/Board/MINIMUS/LEDs.h
+++ b/LUFA/Drivers/Board/MINIMUS/LEDs.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for the MINIMUS.
- *
- *  Board specific LED driver header for the Minimus USB (http://www.minimususb.com/).
+ *  \copydetails Group_LEDs_MINIMUS
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_MINIMUS MINIMUS
+ *  \brief Board specific LED driver header for the MINIMUS.
  *
  *  Board specific LED driver header for the Minimus USB (http://www.minimususb.com/).
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,8 +49,6 @@
 #define __LEDS_MINIMUS_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/OLIMEX162/Buttons.h b/LUFA/Drivers/Board/OLIMEX162/Buttons.h
index e52dadf1416abf4ea94d5347782bf09c76375fc6..33fee16785606689c69212a0a8102e34edb085e0 100644
--- a/LUFA/Drivers/Board/OLIMEX162/Buttons.h
+++ b/LUFA/Drivers/Board/OLIMEX162/Buttons.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific Buttons driver header for the Olimex AVR-USB-162 Development Board.
- *
- *  Board specific Buttons driver header for the Olimex AVR-USB-162 Development Board (http://www.olimex.com/dev/avr-usb-162.html).
+ *  \copydetails Group_Buttons_OLIMEX162
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_Buttons
  *  \defgroup Group_Buttons_OLIMEX162 OLIMEX162
+ *  \brief Board specific Buttons driver header for the Olimex AVR-USB-162 Development Board.
  *
  *  Board specific Buttons driver header for the Olimex AVR-USB-162 Development Board (http://www.olimex.com/dev/avr-usb-162.html).
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,9 +49,6 @@
 #define __BUTTONS_OLIMEX162_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <stdbool.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/OLIMEX162/LEDs.h b/LUFA/Drivers/Board/OLIMEX162/LEDs.h
index d13418a3cf72984c3b963376f2834c6c6efb0fed..971c08a2617d8184000ed398df20b406170247c4 100644
--- a/LUFA/Drivers/Board/OLIMEX162/LEDs.h
+++ b/LUFA/Drivers/Board/OLIMEX162/LEDs.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for the Olimex AVR-USB-162.
- *
- *  Board specific LED driver header for the Olimex AVR-USB-162 (http://www.olimex.com/dev/avr-usb-162.html).
+ *  \copydetails Group_LEDs_OLIMEX162
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_OLIMEX162 OLIMEX162
+ *  \brief Board specific LED driver header for the Olimex AVR-USB-162.
  *
  *  Board specific LED driver header for the Olimex AVR-USB-162 (http://www.olimex.com/dev/avr-usb-162.html).
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,8 +49,6 @@
 #define __LEDS_OLIMEX162_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/RZUSBSTICK/LEDs.h b/LUFA/Drivers/Board/RZUSBSTICK/LEDs.h
index adaa9cd9a3218e15eab90336cb68c28ab800f7c9..af8ff8cef946ee24ab6a90b0ea18dc81d10da18c 100644
--- a/LUFA/Drivers/Board/RZUSBSTICK/LEDs.h
+++ b/LUFA/Drivers/Board/RZUSBSTICK/LEDs.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for the Atmel RZUSBSTICK.
- *
- *  Board specific LED driver header for the Atmel RZUSBSTICK.
+ *  \copydetails Group_LEDs_RZUSBSTICK
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_RZUSBSTICK RZUSBSTICK
+ *  \brief Board specific LED driver header for the Atmel RZUSBSTICK.
  *
  *  Board specific LED driver header for the Atmel RZUSBSTICK.
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,8 +49,6 @@
 #define __LEDS_RZUSBSTICK_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/SPARKFUN8U2/LEDs.h b/LUFA/Drivers/Board/SPARKFUN8U2/LEDs.h
index 2a3961edb27411f17707df387539ed5f52729fbe..1d52913111802a7a1bc131f886ce6eb770acc141 100644
--- a/LUFA/Drivers/Board/SPARKFUN8U2/LEDs.h
+++ b/LUFA/Drivers/Board/SPARKFUN8U2/LEDs.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for the Sparkfun ATMEGA8U2 breakout board.
- *
- *  Board specific LED driver header for the Sparkfun ATMEGA8U2 breakout board (http://www.sparkfun.com/products/10277).
+ *  \copydetails Group_LEDs_SPARKFUN8U2
  *
  *  \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.
@@ -39,11 +38,9 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_SPARKFUN8U2 SPARKFUN8U2
+ *  \brief Board specific LED driver header for the Sparkfun ATMEGA8U2 breakout board.
  *
- * Board specific LED driver header for the Sparkfun ATMEGA8U2 breakout board (http://www.sparkfun.com/products/10277).
- *
- *  \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.
+ *  Board specific LED driver header for the Sparkfun ATMEGA8U2 breakout board (http://www.sparkfun.com/products/10277).
  *
  *  @{
  */
@@ -52,8 +49,6 @@
 #define __LEDS_SPARKFUN8U2_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/STK525/Buttons.h b/LUFA/Drivers/Board/STK525/Buttons.h
index f18c2a1a8e762a5779cd78ab5bfa671d125c6724..7e079f9a432b7cd124a411e1d38bc073152f9137 100644
--- a/LUFA/Drivers/Board/STK525/Buttons.h
+++ b/LUFA/Drivers/Board/STK525/Buttons.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific Buttons driver header for the Atmel STK525.
- *
- *  Board specific Buttons driver header for the Atmel STK525.
+ *  \copydetails Group_Buttons_STK525
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_Buttons
  *  \defgroup Group_Buttons_STK525 STK525
+ *  \brief Board specific Buttons driver header for the Atmel STK525.
  *
  *  Board specific Buttons driver header for the Atmel STK525.
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,15 +49,6 @@
 #define __BUTTONS_STK525_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <stdbool.h>
-
-		#include "../../../Common/Common.h"
-
-	/* Includes: */
-		#include <avr/io.h>
-		#include <stdbool.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/STK525/Dataflash.h b/LUFA/Drivers/Board/STK525/Dataflash.h
index 08917099421e29abf6ebd6945b05a8960632eb96..687b194bd094e8da6508641d58e0ca0d3ab22dfd 100644
--- a/LUFA/Drivers/Board/STK525/Dataflash.h
+++ b/LUFA/Drivers/Board/STK525/Dataflash.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific Dataflash driver header for the Atmel STK525.
- *
- *  Board specific Dataflash driver header for the Atmel STK525.
+ *  \copydetails Group_Dataflash_STK525
  *
  *  \note This file should not be included directly. It is automatically included as needed by the dataflash driver
  *        dispatch header located in LUFA/Drivers/Board/Dataflash.h.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_Dataflash
  *  \defgroup Group_Dataflash_STK525 STK525
+ *  \brief Board specific Dataflash driver header for the Atmel STK525.
  *
  *  Board specific Dataflash driver header for the Atmel STK525.
  *
- *  \note This file should not be included directly. It is automatically included as needed by the dataflash driver
- *        dispatch header located in LUFA/Drivers/Board/Dataflash.h.
- *
  *  @{
  */
 
diff --git a/LUFA/Drivers/Board/STK525/Joystick.h b/LUFA/Drivers/Board/STK525/Joystick.h
index 2baedb0b954df4571c0a0612e1afb4a0adba2958..c1dd3623ea9cd5d8844bd6685b86b516b7378269 100644
--- a/LUFA/Drivers/Board/STK525/Joystick.h
+++ b/LUFA/Drivers/Board/STK525/Joystick.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific joystick driver header for the Atmel STK525.
- *
- *  Board specific joystick driver header for the Atmel STK525.
+ *  \copydetails Group_Joystick_STK525
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_Joystick
  *  \defgroup Group_Joystick_STK525 STK525
+ *  \brief Board specific joystick driver header for the Atmel STK525.
  *
  *  Board specific joystick driver header for the Atmel STK525.
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,8 +49,6 @@
 #define __JOYSTICK_STK525_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/STK525/LEDs.h b/LUFA/Drivers/Board/STK525/LEDs.h
index cacd3195f8945c110b424248e6da3bea60660200..98cbb2fff8df40ead2ef9c95191e6f6d9a9f5cd4 100644
--- a/LUFA/Drivers/Board/STK525/LEDs.h
+++ b/LUFA/Drivers/Board/STK525/LEDs.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for the Atmel STK525.
- *
- *  Board specific LED driver header for the Atmel STK525.
+ *  \copydetails Group_LEDs_STK525
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_STK525 STK525
+ *  \brief Board specific LED driver header for the Atmel STK525.
  *
  *  Board specific LED driver header for the Atmel STK525.
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,8 +49,6 @@
 #define __LEDS_STK525_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/STK526/Buttons.h b/LUFA/Drivers/Board/STK526/Buttons.h
index afbb3fab532c9c55a05f04b9972ba1734e68343d..2f8b0648574eb974f29a8cc59b75f4e1f0cbfb8e 100644
--- a/LUFA/Drivers/Board/STK526/Buttons.h
+++ b/LUFA/Drivers/Board/STK526/Buttons.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific Buttons driver header for the Atmel STK526.
- *
- *  Board specific Buttons driver header for the Atmel STK526.
+ *  \copydetails Group_Buttons_STK526
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_Buttons
  *  \defgroup Group_Buttons_STK526 STK526
+ *  \brief Board specific Buttons driver header for the Atmel STK526.
  *
  *  Board specific Buttons driver header for the Atmel STK526.
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,15 +49,6 @@
 #define __BUTTONS_STK526_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <stdbool.h>
-
-		#include "../../../Common/Common.h"
-
-	/* Includes: */
-		#include <avr/io.h>
-		#include <stdbool.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/STK526/Dataflash.h b/LUFA/Drivers/Board/STK526/Dataflash.h
index b5c33340a4f7b0fcbafef716fdfe61126236a87d..626946a0e7da288751c6583bf7415f4c290258d1 100644
--- a/LUFA/Drivers/Board/STK526/Dataflash.h
+++ b/LUFA/Drivers/Board/STK526/Dataflash.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific Dataflash driver header for the Atmel STK525.
- *
- *  Board specific Dataflash driver header for the Atmel STK525.
+ *  \copydetails Group_Dataflash_STK526
  *
  *  \note This file should not be included directly. It is automatically included as needed by the dataflash driver
  *        dispatch header located in LUFA/Drivers/Board/Dataflash.h.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_Dataflash
  *  \defgroup Group_Dataflash_STK526 STK526
+ *  \brief Board specific Dataflash driver header for the Atmel STK525.
  *
  *  Board specific Dataflash driver header for the Atmel STK525.
  *
- *  \note This file should not be included directly. It is automatically included as needed by the dataflash driver
- *        dispatch header located in LUFA/Drivers/Board/Dataflash.h.
- *
  *  @{
  */
 
diff --git a/LUFA/Drivers/Board/STK526/Joystick.h b/LUFA/Drivers/Board/STK526/Joystick.h
index 6d54545e8bb6832c1105b694fde46a8edaf59dbd..96063846d3baef0c279fd28d5b647700345b5b9b 100644
--- a/LUFA/Drivers/Board/STK526/Joystick.h
+++ b/LUFA/Drivers/Board/STK526/Joystick.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific joystick driver header for the Atmel STK526.
- *
- *  Board specific joystick driver header for the Atmel STK526.
+ *  \copydetails Group_Joystick_STK526
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_Joystick
  *  \defgroup Group_Joystick_STK526 STK526
+ *  \brief Board specific joystick driver header for the Atmel STK526.
  *
  *  Board specific joystick driver header for the Atmel STK526.
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,8 +49,6 @@
 #define __JOYSTICK_STK526_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/STK526/LEDs.h b/LUFA/Drivers/Board/STK526/LEDs.h
index 3ec9bd394c9bd2b80626fe4dc67a3769b93e3429..d8ccab1ec170e53dd93393eabdece58a848555a9 100644
--- a/LUFA/Drivers/Board/STK526/LEDs.h
+++ b/LUFA/Drivers/Board/STK526/LEDs.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for the Atmel STK526.
- *
- *  Board specific LED driver header for the Atmel STK526.
+ *  \copydetails Group_LEDs_STK526
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_STK526 STK526
+ *  \brief Board specific LED driver header for the Atmel STK526.
  *
  *  Board specific LED driver header for the Atmel STK526.
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,8 +49,6 @@
 #define __LEDS_STK526_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/TEENSY/LEDs.h b/LUFA/Drivers/Board/TEENSY/LEDs.h
index 551cdc2c65931a1d6d24813aba2cba449b65bf05..9ff3506f056365afeadf29b859195b7e54881865 100644
--- a/LUFA/Drivers/Board/TEENSY/LEDs.h
+++ b/LUFA/Drivers/Board/TEENSY/LEDs.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for the PJRC Teensy boards.
- *
- *  Board specific LED driver header for the PJRC Teensy boards (http://www.pjrc.com/teensy/index.html).
+ *  \copydetails Group_LEDs_TEENSY
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_TEENSY TEENSY
+ *  \brief Board specific LED driver header for the PJRC Teensy boards.
  *
  *  Board specific LED driver header for the PJRC Teensy boards (http://www.pjrc.com/teensy/index.html).
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,8 +49,6 @@
 #define __LEDS_TEENSY_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/UDIP/Buttons.h b/LUFA/Drivers/Board/UDIP/Buttons.h
index 6a232bd1b87c15c0d9df38a259493bfde8eaab92..d1fd4192bbdb67e105c6342fab9299ee2379e361 100644
--- a/LUFA/Drivers/Board/UDIP/Buttons.h
+++ b/LUFA/Drivers/Board/UDIP/Buttons.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific Buttons driver header for the UDIP.
- *
- *  Board specific Buttons driver header for the Linnix UDIP (http://linnix.com/udip/).
+ *  \copydetails Group_Buttons_UDIP
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_Buttons
  *  \defgroup Group_Buttons_UDIP UDIP
+ *  \brief Board specific Buttons driver header for the UDIP.
  *
  *  Board specific Buttons driver header for the Linnix UDIP (http://linnix.com/udip/).
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,9 +49,6 @@
 #define __BUTTONS_UDIP_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <stdbool.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/UDIP/LEDs.h b/LUFA/Drivers/Board/UDIP/LEDs.h
index 6f0e56971d5e3f1888d1f21d7a357ad7fa099c11..8c5fe7d51f92efe2b31814916735c5572f782295 100644
--- a/LUFA/Drivers/Board/UDIP/LEDs.h
+++ b/LUFA/Drivers/Board/UDIP/LEDs.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for the Linnix UDIP.
- *
- *  Board specific LED driver header for the Linnix UDIP (http://linnix.com/udip/).
+ *  \copydetails Group_LEDs_UDIP
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_UDIP UDIP
+ *  \brief Board specific LED driver header for the Linnix UDIP.
  *
  *  Board specific LED driver header for the Linnix UDIP (http://linnix.com/udip/).
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,8 +49,6 @@
 #define __LEDS_UDIP_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/UNO/LEDs.h b/LUFA/Drivers/Board/UNO/LEDs.h
index 0b5413d90512efebac63bdf18071c5cc1ae20482..8f709df2343cc330a15100c7326f36a08030a758 100644
--- a/LUFA/Drivers/Board/UNO/LEDs.h
+++ b/LUFA/Drivers/Board/UNO/LEDs.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for the Arduino Uno.
- *
- *  Board specific LED driver header for the Arduino Uno (http://arduino.cc/en/Main/ArduinoBoardUno).
+ *  \copydetails Group_LEDs_UNO
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_UNO UNO
+ *  \brief Board specific LED driver header for the Arduino Uno.
  *
  *  Board specific LED driver header for the Arduino Uno (http://arduino.cc/en/Main/ArduinoBoardUno).
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,7 +49,7 @@
 #define __LEDS_UNO_H__
 
 	/* Includes: */
-		#include <avr/io.h>
+		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
 		#if defined(__cplusplus)
diff --git a/LUFA/Drivers/Board/USBFOO/Buttons.h b/LUFA/Drivers/Board/USBFOO/Buttons.h
index 8f79a92e995899602b590af1f87da2a6c9d702db..da3f5e1a8279ba3a0f299f67eafcd464e5a3b8c0 100644
--- a/LUFA/Drivers/Board/USBFOO/Buttons.h
+++ b/LUFA/Drivers/Board/USBFOO/Buttons.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific Buttons driver header for the Kernel Concepts USBFOO.
- *
- *  Board specific Buttons driver header for the Kernel Concepts USBFOO (http://shop.kernelconcepts.de/product_info.php?products_id=102).
+ *  \copydetails Group_Buttons_USBFOO
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_Buttons
  *  \defgroup Group_Buttons_USBFOO USBFOO
+ *  \brief Board specific Buttons driver header for the Kernel Concepts USBFOO.
  *
  *  Board specific Buttons driver header for the Kernel Concepts USBFOO (http://shop.kernelconcepts.de/product_info.php?products_id=102).
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,9 +49,6 @@
 #define __BUTTONS_USBFOO_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <stdbool.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/USBFOO/LEDS.h b/LUFA/Drivers/Board/USBFOO/LEDS.h
index 07346e498c358503a2140ec71c38e50cbdac5b04..d82b76a49cafec6d789394c13979add154392818 100644
--- a/LUFA/Drivers/Board/USBFOO/LEDS.h
+++ b/LUFA/Drivers/Board/USBFOO/LEDS.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for the Kernel Concepts USBFOO.
- *
- *  Board specific LED driver header for the Kernel Concepts USBFOO (http://shop.kernelconcepts.de/product_info.php?products_id=102).
+ *  \copydetails Group_LEDs_USBFOO
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_USBFOO USBFOO
+ *  \brief Board specific LED driver header for the Kernel Concepts USBFOO.
  *
  *  Board specific LED driver header for the Kernel Concepts USBFOO (http://shop.kernelconcepts.de/product_info.php?products_id=102).
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,8 +49,6 @@
 #define __LEDS_USBFOO_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/USBKEY/Buttons.h b/LUFA/Drivers/Board/USBKEY/Buttons.h
index 2018cb0c38f23662b6cfb05fa0b3ed3089f3135f..e495318ec60d13b1bcbd688503cbba8a8388f9ea 100644
--- a/LUFA/Drivers/Board/USBKEY/Buttons.h
+++ b/LUFA/Drivers/Board/USBKEY/Buttons.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific Buttons driver header for the Atmel USBKEY.
- *
- *  Board specific Buttons driver header for the Atmel USBKEY.
+ *  \copydetails Group_Buttons_USBKEY
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_Buttons
  *  \defgroup Group_Buttons_USBKEY USBKEY
+ *  \brief Board specific Buttons driver header for the Atmel USBKEY.
  *
  *  Board specific Buttons driver header for the Atmel USBKEY.
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,9 +49,6 @@
 #define __BUTTONS_USBKEY_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <stdbool.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/USBKEY/Dataflash.h b/LUFA/Drivers/Board/USBKEY/Dataflash.h
index 26711178f75973cad03b0db3de03460b50ba95a7..19040cf5c81703c06359b6886c376755d1839a30 100644
--- a/LUFA/Drivers/Board/USBKEY/Dataflash.h
+++ b/LUFA/Drivers/Board/USBKEY/Dataflash.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific Dataflash driver header for the Atmel USBKEY.
- *
- *  Board specific Dataflash driver header for the Atmel USBKEY.
+ *  \copydetails Group_Dataflash_USBKEY
  *
  *  \note This file should not be included directly. It is automatically included as needed by the dataflash driver
  *        dispatch header located in LUFA/Drivers/Board/Dataflash.h.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_Dataflash
  *  \defgroup Group_Dataflash_USBKEY USBKEY
+ *  \brief Board specific Dataflash driver header for the Atmel USBKEY.
  *
  *  Board specific Dataflash driver header for the Atmel USBKEY board.
  *
- *  \note This file should not be included directly. It is automatically included as needed by the dataflash driver
- *        dispatch header located in LUFA/Drivers/Board/Dataflash.h.
- *
  *  @{
  */
 
diff --git a/LUFA/Drivers/Board/USBKEY/Joystick.h b/LUFA/Drivers/Board/USBKEY/Joystick.h
index 90cbf7f69ff186662d9926e3af4f007b512d1185..8ca5bc45f6c24102ee62ffb5baad78527c2e5ab0 100644
--- a/LUFA/Drivers/Board/USBKEY/Joystick.h
+++ b/LUFA/Drivers/Board/USBKEY/Joystick.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific joystick driver header for the Atmel USBKEY.
- *
- *  Board specific joystick driver header for the Atmel USBKEY.
+ *  \copydetails Group_Joystick_USBKEY
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_Joystick
  *  \defgroup Group_Joystick_USBKEY USBKEY
+ *  \brief Board specific joystick driver header for the Atmel USBKEY.
  *
  *  Board specific joystick driver header for the Atmel USBKEY.
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,8 +49,6 @@
 #define __JOYSTICK_USBKEY_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/USBKEY/LEDs.h b/LUFA/Drivers/Board/USBKEY/LEDs.h
index 31722319eebef7f551b2dc9975b4cf1a02f956eb..25cfabdf4fb41206174a964a68f9ab046308c213 100644
--- a/LUFA/Drivers/Board/USBKEY/LEDs.h
+++ b/LUFA/Drivers/Board/USBKEY/LEDs.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for the Atmel USBKEY.
- *
- *  Board specific LED driver header for the Atmel USBKEY.
+ *  \copydetails Group_LEDs_USBKEY
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_USBKEY USBKEY
+ *  \brief Board specific LED driver header for the Atmel USBKEY.
  *
  *  Board specific LED driver header for the Atmel USBKEY.
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,8 +49,6 @@
 #define __LEDS_USBKEY_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/USBTINYMKII/Buttons.h b/LUFA/Drivers/Board/USBTINYMKII/Buttons.h
index b5493ab2d225ce0a002ad2f2298cb933361e31fd..06f98feafe90bd41e8bbaca6ba597e2327bebd67 100644
--- a/LUFA/Drivers/Board/USBTINYMKII/Buttons.h
+++ b/LUFA/Drivers/Board/USBTINYMKII/Buttons.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific Buttons driver header for Tom's USBTINY MKII.
- *
- *  Board specific Buttons driver header for Tom's USBTINY MKII (http://tom-itx.dyndns.org:81/~webpage/).
+ *  \copydetails Group_Buttons_USBTINYMKII
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_Buttons
  *  \defgroup Group_Buttons_USBTINYMKII USBTINYMKII
+ *  \brief Board specific Buttons driver header for Tom's USBTINY MKII.
  *
  *  Board specific Buttons driver header for Tom's USBTINY MKII (http://tom-itx.dyndns.org:81/~webpage/).
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,9 +49,6 @@
 #define __BUTTONS_USBTINYMKII_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-		#include <stdbool.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Board/USBTINYMKII/LEDs.h b/LUFA/Drivers/Board/USBTINYMKII/LEDs.h
index 65f1117e299a4d369fe7519153604e3cf1407409..4abc1879a484eb1e19e2cbdda0fc8757565b1a2f 100644
--- a/LUFA/Drivers/Board/USBTINYMKII/LEDs.h
+++ b/LUFA/Drivers/Board/USBTINYMKII/LEDs.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for Tom's USBTINY MKII.
- *
- *  Board specific LED driver header for Tom's USBTINY MKII (http://tom-itx.dyndns.org:81/~webpage/).
+ *  \copydetails Group_LEDs_USBTINYMKII
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_USBTINYMKII USBTINYMKII
+ *  \brief Board specific LED driver header for Tom's USBTINY MKII.
  *
  *  Board specific LED driver header for Tom's USBTINY MKII (http://tom-itx.dyndns.org:81/~webpage/).
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,7 +49,7 @@
 #define __LEDS_USBTINYMKII_H__
 
 	/* Includes: */
-		#include <avr/io.h>
+		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
 		#if defined(__cplusplus)
diff --git a/LUFA/Drivers/Board/XPLAIN/Dataflash.h b/LUFA/Drivers/Board/XPLAIN/Dataflash.h
index d5c7527a120521b7e49973e22cc48a4fe048f42c..069512aeca2a19cbca92ca170614d2dc1f263e43 100644
--- a/LUFA/Drivers/Board/XPLAIN/Dataflash.h
+++ b/LUFA/Drivers/Board/XPLAIN/Dataflash.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific Dataflash driver header for the Atmel XPLAIN.
- *
- *  Board specific Dataflash driver header for the Atmel XPLAIN.
+ *  \copydetails Group_Dataflash_XPLAIN
  *
  *  \note This file should not be included directly. It is automatically included as needed by the dataflash driver
  *        dispatch header located in LUFA/Drivers/Board/Dataflash.h.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_Dataflash
  *  \defgroup Group_Dataflash_XPLAIN XPLAIN
+ *  \brief Board specific Dataflash driver header for the Atmel XPLAIN.
  *
  *  Board specific Dataflash driver header for the Atmel XPLAIN.
  *
- *  \note This file should not be included directly. It is automatically included as needed by the dataflash driver
- *        dispatch header located in LUFA/Drivers/Board/Dataflash.h.
- *
  *  @{
  */
 
diff --git a/LUFA/Drivers/Board/XPLAIN/LEDs.h b/LUFA/Drivers/Board/XPLAIN/LEDs.h
index 953c77e1a8703f58e71273b8b0f353c988ce2861..75d4a7bc9d5c0c20a5db1a7308ec7780aaaf65fa 100644
--- a/LUFA/Drivers/Board/XPLAIN/LEDs.h
+++ b/LUFA/Drivers/Board/XPLAIN/LEDs.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief Board specific LED driver header for the Atmel XPLAIN.
- *
- *  Board specific LED driver header for the Atmel XPLAIN.
+ *  \copydetails Group_LEDs_XPLAIN
  *
  *  \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.
@@ -39,12 +38,10 @@
 
 /** \ingroup Group_LEDs
  *  \defgroup Group_LEDs_XPLAIN XPLAIN
+ *  \brief Board specific LED driver header for the Atmel XPLAIN.
  *
  *  Board specific LED driver header for the Atmel XPLAIN.
  *
- *  \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.
- *
  *  @{
  */
 
@@ -52,8 +49,6 @@
 #define __LEDS_XPLAIN_H__
 
 	/* Includes: */
-		#include <avr/io.h>
-
 		#include "../../../Common/Common.h"
 
 	/* Enable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/Misc/AT45DB321C.h b/LUFA/Drivers/Misc/AT45DB321C.h
index 083268ddc010e130f482c424438a0651767c807e..725738bcfdaf4ee5ff95e5d615c9b517026ec998 100644
--- a/LUFA/Drivers/Misc/AT45DB321C.h
+++ b/LUFA/Drivers/Misc/AT45DB321C.h
@@ -29,13 +29,13 @@
 */
 
 /** \file
- *  \brief Dataflash command constants for the the Atmel AT45DB321C Dataflash IC
- *
- *  Dataflash command constants for the Atmel AT45DB321C Dataflash IC.
+ *  \brief Command constants for the Atmel AT45DB321C Dataflash.
+ *  \copydetails Group_AT45DB321C
  */
 
 /** \ingroup Group_MiscDrivers
- *  \defgroup Group_AT45DB321C AT45DB321C Commands
+ *  \defgroup Group_AT45DB321C Atmel AT45DB321C Dataflash Commands
+ *  \brief Command constants for the Atmel AT45DB321C Dataflash.
  *
  *  Dataflash command constants for the Atmel AT45DB321C Dataflash IC.
  *
diff --git a/LUFA/Drivers/Misc/AT45DB642D.h b/LUFA/Drivers/Misc/AT45DB642D.h
index 923a3b7c4a0af17919bb54e715861b4427547eb6..98041167e57d3ab848ec1f8a2f2145704d15ca12 100644
--- a/LUFA/Drivers/Misc/AT45DB642D.h
+++ b/LUFA/Drivers/Misc/AT45DB642D.h
@@ -29,13 +29,13 @@
 */
 
 /** \file
- *  \brief Dataflash command constants for the the Atmel AT45DB642D Dataflash IC
- *
- *  Dataflash command constants for the Atmel AT45DB642D Dataflash IC.
+ *  \brief Command constants for the Atmel AT45DB642D Dataflash.
+ *  \copydetails Group_AT45DB642D
  */
 
 /** \ingroup Group_MiscDrivers
- *  \defgroup Group_AT45DB642D AT45DB642D Commands
+ *  \defgroup Group_AT45DB642D Atmel AT45DB642D Dataflash Commands
+ *  \brief Command constants for the Atmel AT45DB642D Dataflash.
  *
  *  Dataflash command constants for the Atmel AT45DB642D Dataflash IC.
  *
diff --git a/LUFA/Drivers/Misc/RingBuffer.h b/LUFA/Drivers/Misc/RingBuffer.h
index 8ca5d2a0a54466a9f942e6c887499e89204d89f6..ea82651fd6c1550aaca4fc2de545f939dd9b6d36 100644
--- a/LUFA/Drivers/Misc/RingBuffer.h
+++ b/LUFA/Drivers/Misc/RingBuffer.h
@@ -93,10 +93,6 @@
 #define __RING_BUFFER_H__
 
 	/* Includes: */
-		#include <util/atomic.h>
-		#include <stdint.h>
-		#include <stdbool.h>
-
 		#include "../../Common/Common.h"
 
 	/* Type Defines: */
diff --git a/LUFA/Drivers/USB/Class/Common/Audio.h b/LUFA/Drivers/USB/Class/Common/Audio.h
index be899bb2fca30a65318f8f07a7fbd191027f1d8f..ab642802254f5ee7f19f79c47c37cb172709eb92 100644
--- a/LUFA/Drivers/USB/Class/Common/Audio.h
+++ b/LUFA/Drivers/USB/Class/Common/Audio.h
@@ -53,8 +53,6 @@
 	/* Includes: */
 		#include "../../Core/StdDescriptors.h"
 
-		#include <string.h>
-
 	/* Enable C linkage for C++ Compilers: */
 		#if defined(__cplusplus)
 			extern "C" {
diff --git a/LUFA/Drivers/USB/Class/Common/CDC.h b/LUFA/Drivers/USB/Class/Common/CDC.h
index 5a4c2c21ca8139159f452eaaf55060363375146b..cfaebb858183668dcf1a3a947788e1fd001b25fe 100644
--- a/LUFA/Drivers/USB/Class/Common/CDC.h
+++ b/LUFA/Drivers/USB/Class/Common/CDC.h
@@ -53,8 +53,6 @@
 	/* Includes: */
 		#include "../../Core/StdDescriptors.h"
 
-		#include <string.h>
-
 	/* Enable C linkage for C++ Compilers: */
 		#if defined(__cplusplus)
 			extern "C" {
diff --git a/LUFA/Drivers/USB/Class/Common/HID.h b/LUFA/Drivers/USB/Class/Common/HID.h
index 7b0c34d9f7949954e2deab05cc666bb94121bc18..f9684ed25ab7f48cf707bb8ccd6c844e0fa2e060 100644
--- a/LUFA/Drivers/USB/Class/Common/HID.h
+++ b/LUFA/Drivers/USB/Class/Common/HID.h
@@ -54,8 +54,6 @@
 		#include "../../Core/StdDescriptors.h"
 		#include "HIDParser.h"
 
-		#include <string.h>
-
 	/* Preprocessor Checks: */
 		#if !defined(__INCLUDE_FROM_HID_DRIVER)
 			#error Do not include this file directly. Include LUFA/Drivers/USB.h instead.
diff --git a/LUFA/Drivers/USB/Class/Common/HIDParser.h b/LUFA/Drivers/USB/Class/Common/HIDParser.h
index 98544a05dade80040f530a102f3494392578a6c6..7ae6bb243d0589f565fb0da10ad553f3fdc4281c 100644
--- a/LUFA/Drivers/USB/Class/Common/HIDParser.h
+++ b/LUFA/Drivers/USB/Class/Common/HIDParser.h
@@ -70,8 +70,6 @@
 
 		#include "HIDReportData.h"
 		#include "../Common/HID.h"
-
-		#include <string.h>
 		
 	/* Enable C linkage for C++ Compilers: */
 		#if defined(__cplusplus)
diff --git a/LUFA/Drivers/USB/Class/Common/MIDI.h b/LUFA/Drivers/USB/Class/Common/MIDI.h
index c72ca5afe24e5030d0c5b43de7a9dfbed0c3f532..d2e884a9716cc6ce4943745c0ae8b9f009e7cdd8 100644
--- a/LUFA/Drivers/USB/Class/Common/MIDI.h
+++ b/LUFA/Drivers/USB/Class/Common/MIDI.h
@@ -57,8 +57,6 @@
 		#include "../../Core/StdDescriptors.h"
 		#include "Audio.h"
 
-		#include <string.h>
-
 	/* Enable C linkage for C++ Compilers: */
 		#if defined(__cplusplus)
 			extern "C" {
diff --git a/LUFA/Drivers/USB/Class/Common/MassStorage.h b/LUFA/Drivers/USB/Class/Common/MassStorage.h
index 1acd68212e52194a7441ca1bf820d2e389e6a6f3..ae22f5312cebf40713b9a3e92f8d6b8f9dddc7c8 100644
--- a/LUFA/Drivers/USB/Class/Common/MassStorage.h
+++ b/LUFA/Drivers/USB/Class/Common/MassStorage.h
@@ -53,8 +53,6 @@
 	/* Includes: */
 		#include "../../Core/StdDescriptors.h"
 
-		#include <string.h>
-
 	/* Enable C linkage for C++ Compilers: */
 		#if defined(__cplusplus)
 			extern "C" {
diff --git a/LUFA/Drivers/USB/Class/Common/Printer.h b/LUFA/Drivers/USB/Class/Common/Printer.h
index 092cd8f0306449b4f7982f7ed56424e83e63613a..3d52be30633b0d43908a712cf7106f6794886a72 100644
--- a/LUFA/Drivers/USB/Class/Common/Printer.h
+++ b/LUFA/Drivers/USB/Class/Common/Printer.h
@@ -53,8 +53,6 @@
 	/* Includes: */
 		#include "../../Core/StdDescriptors.h"
 
-		#include <string.h>
-
 	/* Enable C linkage for C++ Compilers: */
 		#if defined(__cplusplus)
 			extern "C" {
diff --git a/LUFA/Drivers/USB/Class/Common/RNDIS.h b/LUFA/Drivers/USB/Class/Common/RNDIS.h
index cb806ec56b83d4d4271f4e57922731f4b67d1812..64f080ae363723a349e8895b11d80543429261fb 100644
--- a/LUFA/Drivers/USB/Class/Common/RNDIS.h
+++ b/LUFA/Drivers/USB/Class/Common/RNDIS.h
@@ -57,8 +57,6 @@
 		#include "../../Core/StdDescriptors.h"
 		#include "CDC.h"
 
-		#include <string.h>
-
 	/* Enable C linkage for C++ Compilers: */
 		#if defined(__cplusplus)
 			extern "C" {
diff --git a/LUFA/Drivers/USB/Class/Common/StillImage.h b/LUFA/Drivers/USB/Class/Common/StillImage.h
index 7ef04d8cbf2d912f7bf22675ceb7d1d34a244a13..e440265b1429983ca974dd1a552809aa24c97c34 100644
--- a/LUFA/Drivers/USB/Class/Common/StillImage.h
+++ b/LUFA/Drivers/USB/Class/Common/StillImage.h
@@ -53,8 +53,6 @@
 	/* Includes: */
 		#include "../../Core/StdDescriptors.h"
 
-		#include <string.h>
-
 	/* Enable C linkage for C++ Compilers: */
 		#if defined(__cplusplus)
 			extern "C" {
diff --git a/LUFA/Drivers/USB/Class/Device/Audio.h b/LUFA/Drivers/USB/Class/Device/Audio.h
index d82beabc691fb8ed5a58a4565255c29d25ae5d82..cf63c65b017b93d23b7bd1a41bd185703e155e1c 100644
--- a/LUFA/Drivers/USB/Class/Device/Audio.h
+++ b/LUFA/Drivers/USB/Class/Device/Audio.h
@@ -57,8 +57,6 @@
 		#include "../../USB.h"
 		#include "../Common/Audio.h"
 
-		#include <string.h>
-
 	/* Enable C linkage for C++ Compilers: */
 		#if defined(__cplusplus)
 			extern "C" {
diff --git a/LUFA/Drivers/USB/Class/Device/CDC.h b/LUFA/Drivers/USB/Class/Device/CDC.h
index bf388819f619d75cf283bd97e60f62c5c2691178..9eb7b48fc6284be883b2ca892214fcf6653b3ea2 100644
--- a/LUFA/Drivers/USB/Class/Device/CDC.h
+++ b/LUFA/Drivers/USB/Class/Device/CDC.h
@@ -75,7 +75,6 @@
 		#include "../Common/CDC.h"
 
 		#include <stdio.h>
-		#include <string.h>
 
 	/* Enable C linkage for C++ Compilers: */
 		#if defined(__cplusplus)
diff --git a/LUFA/Drivers/USB/Class/Device/HID.h b/LUFA/Drivers/USB/Class/Device/HID.h
index 545baddf3b67e3421bbd47bdd3dda6be9dac4b0d..133e4f5d8b310abf1244a022ca068c4f769a668a 100644
--- a/LUFA/Drivers/USB/Class/Device/HID.h
+++ b/LUFA/Drivers/USB/Class/Device/HID.h
@@ -57,8 +57,6 @@
 		#include "../../USB.h"
 		#include "../Common/HID.h"
 
-		#include <string.h>
-
 	/* Enable C linkage for C++ Compilers: */
 		#if defined(__cplusplus)
 			extern "C" {
diff --git a/LUFA/Drivers/USB/Class/Device/MIDI.h b/LUFA/Drivers/USB/Class/Device/MIDI.h
index 4016d8a9a322275a8a3c7b4c754e768bd6622f4f..13751367651ae6b54a565121bd0addb8de81ab29 100644
--- a/LUFA/Drivers/USB/Class/Device/MIDI.h
+++ b/LUFA/Drivers/USB/Class/Device/MIDI.h
@@ -57,8 +57,6 @@
 		#include "../../USB.h"
 		#include "../Common/MIDI.h"
 
-		#include <string.h>
-
 	/* Enable C linkage for C++ Compilers: */
 		#if defined(__cplusplus)
 			extern "C" {
diff --git a/LUFA/Drivers/USB/Class/Device/MassStorage.h b/LUFA/Drivers/USB/Class/Device/MassStorage.h
index aceeb6261c43810d55bb607219cb6a6e4ac83c56..3ad259d86c8703c9ed77c3f2439716bb098c2913 100644
--- a/LUFA/Drivers/USB/Class/Device/MassStorage.h
+++ b/LUFA/Drivers/USB/Class/Device/MassStorage.h
@@ -57,8 +57,6 @@
 		#include "../../USB.h"
 		#include "../Common/MassStorage.h"
 
-		#include <string.h>
-
 	/* Enable C linkage for C++ Compilers: */
 		#if defined(__cplusplus)
 			extern "C" {
diff --git a/LUFA/Drivers/USB/Class/Device/RNDIS.h b/LUFA/Drivers/USB/Class/Device/RNDIS.h
index cdc6fbad0a2efc841db9e21e1c5d974f08bd7583..f53a8e01fea97d511ad01c07e33db2322c978f7f 100644
--- a/LUFA/Drivers/USB/Class/Device/RNDIS.h
+++ b/LUFA/Drivers/USB/Class/Device/RNDIS.h
@@ -57,8 +57,6 @@
 		#include "../../USB.h"
 		#include "../Common/RNDIS.h"
 
-		#include <string.h>
-
 	/* Enable C linkage for C++ Compilers: */
 		#if defined(__cplusplus)
 			extern "C" {
diff --git a/LUFA/Drivers/USB/Class/Host/CDC.h b/LUFA/Drivers/USB/Class/Host/CDC.h
index bba94fe81c65abc7e4d902d184afc84dbcb1a183..8e799709e6cf55d0d6729bd6b3254678f8c193cb 100644
--- a/LUFA/Drivers/USB/Class/Host/CDC.h
+++ b/LUFA/Drivers/USB/Class/Host/CDC.h
@@ -58,7 +58,6 @@
 		#include "../Common/CDC.h"
 
 		#include <stdio.h>
-		#include <string.h>
 
 	/* Enable C linkage for C++ Compilers: */
 		#if defined(__cplusplus)
diff --git a/LUFA/Drivers/USB/Class/Host/RNDIS.h b/LUFA/Drivers/USB/Class/Host/RNDIS.h
index 68aa347ec1889c09cc04ca2d1de9ca675a39f794..376cc592527088882d5e6d2db58f54319b29fd95 100644
--- a/LUFA/Drivers/USB/Class/Host/RNDIS.h
+++ b/LUFA/Drivers/USB/Class/Host/RNDIS.h
@@ -58,9 +58,6 @@
 		#include "../../USB.h"
 		#include "../Common/RNDIS.h"
 
-		#include <stdio.h>
-		#include <string.h>
-
 	/* Enable C linkage for C++ Compilers: */
 		#if defined(__cplusplus)
 			extern "C" {
diff --git a/LUFA/Drivers/USB/Core/AVR8/Device.h b/LUFA/Drivers/USB/Core/AVR8/Device.h
index 30088f1d9b192919a460de78f9c142f298d6803a..d1ced57d4c507b7d2fe335162d8ed1eb01c66635 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Device.h
+++ b/LUFA/Drivers/USB/Core/AVR8/Device.h
@@ -29,9 +29,8 @@
 */
 
 /** \file
- *  \brief USB device mode definitions (AVR8)
- *
- *  This file contains structures, function prototypes and macros related to USB device mode.
+ *  \brief USB Device definitions for the AVR8 microcontrollers.
+ *  \copydetails Group_Device_AVR8
  *
  *  \note This file should not be included directly. It is automatically included as needed by the USB driver
  *        dispatch header located in LUFA/Drivers/USB/USB.h.
@@ -39,9 +38,9 @@
 
 /** \ingroup Group_Device
  *  \defgroup Group_Device_AVR8 Device Management (AVR8)
+ *  \brief USB Device definitions for the AVR8 microcontrollers.
  *
- *  USB Device mode related macros and enums. This module contains macros and enums which are used when
- *  the USB controller is initialized in device mode.
+ *  Architecture specific USB Device definitions for the Atmel 8-bit AVR microcontrollers.
  *
  *  @{
  */
@@ -55,17 +54,15 @@
 		#include "../USBInterrupt.h"
 		#include "../Endpoint.h"
 		
-		#include <avr/boot.h>
-
 	/* Preprocessor Checks: */
-		#if (defined(USE_RAM_DESCRIPTORS) && defined(USE_EEPROM_DESCRIPTORS))
-			#error USE_RAM_DESCRIPTORS and USE_EEPROM_DESCRIPTORS are mutually exclusive.
-		#endif
-
 		#if !defined(__INCLUDE_FROM_USB_DRIVER)
 			#error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.
 		#endif
 
+		#if (defined(USE_RAM_DESCRIPTORS) && defined(USE_EEPROM_DESCRIPTORS))
+			#error USE_RAM_DESCRIPTORS and USE_EEPROM_DESCRIPTORS are mutually exclusive.
+		#endif
+
 	/* Public Interface - May be used in end-application: */
 		/* Macros: */
 			/** \name USB Device Mode Option Masks */
@@ -125,7 +122,7 @@
 			 *        the \ref USB_OPT_MANUAL_PLL option enabled, the user must ensure that the PLL is running
 			 *        before attempting to call this function.
 			 *
-			 *  \see \ref Group_Descriptors for more information on the RMWAKEUP feature and device descriptors.
+			 *  \see \ref Group_StdDescriptors for more information on the RMWAKEUP feature and device descriptors.
 			 */
 			void USB_Device_SendRemoteWakeup(void);
 
@@ -192,40 +189,6 @@
 				}
 			#endif
 
-		/* Function Prototypes: */
-			/** Function to retrieve a given descriptor's size and memory location from the given descriptor type value,
-			 *  index and language ID. This function MUST be overridden in the user application (added with full, identical
-			 *  prototype and name so that the library can call it to retrieve descriptor data.
-			 *
-			 *  \param[in] wValue               The type of the descriptor to retrieve in the upper byte, and the index in the
-			 *                                  lower byte (when more than one descriptor of the given type exists, such as the
-			 *                                  case of string descriptors). The type may be one of the standard types defined
-			 *                                  in the DescriptorTypes_t enum, or may be a class-specific descriptor type value.
-			 *  \param[in] wIndex               The language ID of the string to return if the \c wValue type indicates
-			 *                                  \ref DTYPE_String, otherwise zero for standard descriptors, or as defined in a
-			 *                                  class-specific standards.
-			 *  \param[out] DescriptorAddress   Pointer to the descriptor in memory. This should be set by the routine to
-			 *                                  the address of the descriptor.
-			 *  \param[out] MemoryAddressSpace  A value from the \ref USB_DescriptorMemorySpaces_t enum to indicate the memory
-			 *                                  space in which the descriptor is stored. This parameter does not exist when one
-			 *                                  of the \c USE_*_DESCRIPTORS compile time options is used.
-			 *
-			 *  \note By default, the library expects all descriptors to be located in flash memory via the \c PROGMEM attribute.
-			 *        If descriptors should be located in RAM or EEPROM instead (to speed up access in the case of RAM, or to
-			 *        allow the descriptors to be changed dynamically at runtime) either the \c USE_RAM_DESCRIPTORS or the
-			 *        \c USE_EEPROM_DESCRIPTORS tokens may be defined in the project makefile and passed to the compiler by the -D
-			 *        switch.
-			 *
-			 *  \return Size in bytes of the descriptor if it exists, zero or \ref NO_DESCRIPTOR otherwise.
-			 */
-			uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
-			                                    const uint8_t wIndex,
-			                                    const void** const DescriptorAddress
-			#if !defined(USE_FLASH_DESCRIPTORS) && !defined(USE_EEPROM_DESCRIPTORS) && !defined(USE_RAM_DESCRIPTORS)
-			                                    , uint8_t* MemoryAddressSpace
-			#endif
-			                                    ) ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);
-
 	/* Private Interface - For use in library only: */
 	#if !defined(__DOXYGEN__)
 		/* Inline Functions: */
diff --git a/LUFA/Drivers/USB/Core/AVR8/Endpoint.h b/LUFA/Drivers/USB/Core/AVR8/Endpoint.h
index 1feadd3c846c087618c9b9357d4cc75f2724d514..2a07747929aa7f489d28c839a9d0cfa5b2e3b5cb 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Endpoint.h
+++ b/LUFA/Drivers/USB/Core/AVR8/Endpoint.h
@@ -29,10 +29,8 @@
 */
 
 /** \file
- *  \brief USB device endpoint management definitions.
- *
- *  This file contains structures, function prototypes and macros related to the management of the device's
- *  data endpoints when the library is initialized in USB device mode.
+ *  \brief USB Endpoint definitions for the AVR8 microcontrollers.
+ *  \copydetails Group_EndpointManagement_AVR8
  *
  *  \note This file should not be included directly. It is automatically included as needed by the USB driver
  *        dispatch header located in LUFA/Drivers/USB/USB.h.
@@ -40,6 +38,7 @@
 
 /** \ingroup Group_EndpointRW
  *  \defgroup Group_EndpointRW_AVR8 Endpoint Data Reading and Writing (AVR8)
+ *  \brief USB Endpoint definitions for the AVR8 microcontrollers.
  *
  *  Functions, macros, variables, enums and types related to data reading and writing from and to endpoints.
  */
diff --git a/LUFA/Drivers/USB/Core/AVR8/Host.h b/LUFA/Drivers/USB/Core/AVR8/Host.h
index def17ee7026e186c983df45d8056458ccacd7995..0c50a39c3e15f5c0b6e68d95ef60f1839d7a0cb5 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Host.h
+++ b/LUFA/Drivers/USB/Core/AVR8/Host.h
@@ -29,9 +29,8 @@
 */
 
 /** \file
- *  \brief USB host mode definitions  (AVR8)
- *
- *  This file contains structures, function prototypes and macros related to USB host mode.
+ *  \brief USB Host definitions for the AVR8 microcontrollers.
+ *  \copydetails Group_Host_AVR8
  *
  *  \note This file should not be included directly. It is automatically included as needed by the USB driver
  *        dispatch header located in LUFA/Drivers/USB/USB.h.
@@ -39,9 +38,9 @@
 
 /** \ingroup Group_Host
  *  \defgroup Group_Host_AVR8 Host Management (AVR8)
+ *  \brief USB Host definitions for the AVR8 microcontrollers.
  *
- *  USB Host mode related macros and enums. This module contains macros and enums which are used when
- *  the USB controller is initialized in host mode.
+ *  Architecture specific USB Host definitions for the Atmel 8-bit AVR microcontrollers.
  *
  *  @{
  */
diff --git a/LUFA/Drivers/USB/Core/AVR8/OTG.h b/LUFA/Drivers/USB/Core/AVR8/OTG.h
index cc0cc3da11040422b791a6a6c8eef17975a7d1a7..a79033753b6d02a4d7a3d8dfc592e7d5fa55e2a2 100644
--- a/LUFA/Drivers/USB/Core/AVR8/OTG.h
+++ b/LUFA/Drivers/USB/Core/AVR8/OTG.h
@@ -29,10 +29,8 @@
 */
 
 /** \file
- *  \brief USB OTG mode definitions (AVR8)
- *
- *  This file contains structures, function prototypes and macros related to USB OTG mode, where two USB devices
- *  may be linked directly together and exchange host/device roles as needed.
+ *  \brief USB OTG definitions for the AVR8 microcontrollers.
+ *  \copydetails Group_OTG_AVR8
  *
  *  \note This file should not be included directly. It is automatically included as needed by the USB driver
  *        dispatch header located in LUFA/Drivers/USB/USB.h.
@@ -40,10 +38,9 @@
 
 /** \ingroup Group_OTG
  *  \defgroup Group_OTG_AVR8 USB On The Go (OTG) Management (AVR8)
+ *  \brief USB OTG definitions for the AVR8 microcontrollers.
  *
- *  This module contains macros for embedded USB hosts with dual role On The Go capabilities, for managing role
- *  exchange. OTG is a way for two USB dual role devices to talk to one another directly without fixed device/host
- *  roles.
+ *  Architecture specific USB OTG definitions for the Atmel 8-bit AVR microcontrollers.
  *
  *  @{
  */
diff --git a/LUFA/Drivers/USB/Core/AVR8/Pipe.h b/LUFA/Drivers/USB/Core/AVR8/Pipe.h
index 3f62ec5d1756d1d1e193f23c44af52df25513e44..ff09f43e48f35f119d33e9f425a188df063006d1 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Pipe.h
+++ b/LUFA/Drivers/USB/Core/AVR8/Pipe.h
@@ -29,10 +29,8 @@
 */
 
 /** \file
- *  \brief USB host pipe management definitions.
- *
- *  This file contains structures, function prototypes and macros related to the management of the device's
- *  data pipes when the library is initialized in USB host mode.
+ *  \brief USB Pipe definitions for the AVR8 microcontrollers.
+ *  \copydetails Group_PipeManagement_AVR8
  *
  *  \note This file should not be included directly. It is automatically included as needed by the USB driver
  *        dispatch header located in LUFA/Drivers/USB/USB.h.
@@ -40,6 +38,7 @@
 
 /** \ingroup Group_PipeRW
  *  \defgroup Group_PipeRW_AVR8 Pipe Data Reading and Writing (AVR8)
+ *  \brief USB Pipe definitions for the AVR8 microcontrollers.
  *
  *  Functions, macros, variables, enums and types related to data reading and writing from and to pipes.
  */
diff --git a/LUFA/Drivers/USB/Core/AVR8/USBController.h b/LUFA/Drivers/USB/Core/AVR8/USBController.h
index 292b39369c8fabd857f87536b67641c240538ddc..77e92cb27f5aa39e56cb2eb89d5a21356e38beb4 100644
--- a/LUFA/Drivers/USB/Core/AVR8/USBController.h
+++ b/LUFA/Drivers/USB/Core/AVR8/USBController.h
@@ -29,10 +29,8 @@
 */
 
 /** \file
- *  \brief USB low level USB controller definitions (AVR8)
- *
- *  This file contains structures, function prototypes and macros related to the low level configuration of the
- *  USB controller, to start, stop and reset the USB library core.
+ *  \brief USB Controller definitions for the AVR8 microcontrollers.
+ *  \copydetails Group_USBManagement_AVR8
  *
  *  \note This file should not be included directly. It is automatically included as needed by the USB driver
  *        dispatch header located in LUFA/Drivers/USB/USB.h.
@@ -40,6 +38,7 @@
 
 /** \ingroup Group_USBManagement
  *  \defgroup Group_USBManagement_AVR8 USB Interface Management (AVR8)
+ *  \brief USB Controller definitions for the AVR8 microcontrollers.
  *
  *  Functions, macros, variables, enums and types related to the setup and management of the USB interface.
  *
@@ -82,7 +81,7 @@
 		#endif
 
 		#if !defined(F_CLOCK)
-			#error F_CLOCK is not defined. You must define F_CLOCK to the frequency of the unprescaled input clock in your project makefile.
+			#error F_CLOCK is not defined. You must define F_CLOCK to the frequency of the unprescaled USB controller clock in your project makefile.
 		#endif
 
 		#if (F_CLOCK == 8000000)
diff --git a/LUFA/Drivers/USB/Core/AVR8/USBInterrupt.h b/LUFA/Drivers/USB/Core/AVR8/USBInterrupt.h
index 3cb0b66becc245bc677dff4b14916aa4a7c70fd7..c681f86fb4017b690e4cd4a1b615ff699877dc6a 100644
--- a/LUFA/Drivers/USB/Core/AVR8/USBInterrupt.h
+++ b/LUFA/Drivers/USB/Core/AVR8/USBInterrupt.h
@@ -29,7 +29,7 @@
 */
 
 /** \file
- *  \brief USB controller interrupt service routine management (AVR8)
+ *  \brief USB Controller Interrupt definitions for the AVR8 microcontrollers.
  *
  *  This file contains definitions required for the correct handling of low level USB service routine interrupts
  *  from the USB controller.
@@ -63,11 +63,11 @@
 			#define USB_INT_IsEnabled(int)                 ((USB_INT_GET_EN_REG(int)   &    USB_INT_GET_EN_MASK(int)) ? true : false)
 			#define USB_INT_HasOccurred(int)               ((USB_INT_GET_INT_REG(int)  &    USB_INT_GET_INT_MASK(int)) ? true : false)
 
-			#define USB_INT_GET_EN_REG(a, b, c, d)           a
-			#define USB_INT_GET_EN_MASK(a, b, c, d)          b
-			#define USB_INT_GET_INT_REG(a, b, c, d)          c
-			#define USB_INT_GET_INT_MASK(a, b, c, d)         d
-
+			#define USB_INT_GET_EN_REG(EnableReg, EnableMask, FlagReg, FlagMask)    EnableReg
+			#define USB_INT_GET_EN_MASK(EnableReg, EnableMask, FlagReg, FlagMask)   EnableMask
+			#define USB_INT_GET_INT_REG(EnableReg, EnableMask, FlagReg, FlagMask)   FlagReg
+			#define USB_INT_GET_INT_MASK(EnableReg, EnableMask, FlagReg, FlagMask)  FlagMask
+			
 			#define USB_INT_VBUS                             USBCON, (1 << VBUSTE) , USBINT, (1 << VBUSTI)
 			#define USB_INT_IDTI                             USBCON, (1 << IDTE)   , USBINT, (1 << IDTI)
 			#define USB_INT_WAKEUPI                          UDIEN , (1 << WAKEUPE), UDINT , (1 << WAKEUPI)
diff --git a/LUFA/Drivers/USB/Core/ConfigDescriptor.h b/LUFA/Drivers/USB/Core/ConfigDescriptor.h
index 2f0ac8e028da83ca7b072156759e258916fe2883..e469987b3d95dc1690854c58d74ca066bb8ac349 100644
--- a/LUFA/Drivers/USB/Core/ConfigDescriptor.h
+++ b/LUFA/Drivers/USB/Core/ConfigDescriptor.h
@@ -29,11 +29,8 @@
 */
 
 /** \file
- *  \brief Configuration descriptor parser API.
- *
- *  This section of the library gives a friendly API which can be used in host applications to easily
- *  parse an attached device's configuration descriptor so that endpoint, interface and other descriptor
- *  data can be extracted and used as needed.
+ *  \brief USB Configuration Descriptor definitions.
+ *  \copydetails Group_ConfigDescriptorParser
  *
  *  \note This file should not be included directly. It is automatically included as needed by the USB driver
  *        dispatch header located in LUFA/Drivers/USB/USB.h.
@@ -41,8 +38,11 @@
 
 /** \ingroup Group_Descriptors
  *  \defgroup Group_ConfigDescriptorParser Configuration Descriptor Parser
+ *  \brief USB Configuration Descriptor definitions.
  *
- *  Functions, macros, variables, enums and types related to the parsing of Configuration Descriptors.
+ *  This section of the library gives a friendly API which can be used in host applications to easily
+ *  parse an attached device's configuration descriptor so that endpoint, interface and other descriptor
+ *  data can be extracted and used as needed.
  *
  *  @{
  */
diff --git a/LUFA/Drivers/USB/Core/Device.h b/LUFA/Drivers/USB/Core/Device.h
index 8c85451ac304afd3445fe6123bc2833196f7411c..6fa88d3a314bc72ac33a0856ee3ad14f24b00170 100644
--- a/LUFA/Drivers/USB/Core/Device.h
+++ b/LUFA/Drivers/USB/Core/Device.h
@@ -29,10 +29,8 @@
 */
 
 /** \file
- *  \brief Common USB device mode definitions.
- *
- *  This file contains common structures, function prototypes and macros related to USB device mode for all
- *  architectures.
+ *  \brief Common USB Device definitions for all architectures.
+ *  \copydetails Group_Device
  *
  *  \note This file should not be included directly. It is automatically included as needed by the USB driver
  *        dispatch header located in LUFA/Drivers/USB/USB.h.
@@ -40,6 +38,7 @@
 
 /** \ingroup Group_USB
  *  \defgroup Group_Device Device Management
+ *  \brief Common USB Device definitions for all architectures.
  *
  *  USB Device mode related definitions common to all architectures. This module contains definitions which
  *  are used when the USB controller is initialized in device mode.
@@ -65,6 +64,41 @@
 			#error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.
 		#endif
 
+	/* Public Interface - May be used in end-application: */
+		/* Function Prototypes: */
+			/** Function to retrieve a given descriptor's size and memory location from the given descriptor type value,
+			 *  index and language ID. This function MUST be overridden in the user application (added with full, identical
+			 *  prototype and name so that the library can call it to retrieve descriptor data.
+			 *
+			 *  \param[in] wValue               The type of the descriptor to retrieve in the upper byte, and the index in the
+			 *                                  lower byte (when more than one descriptor of the given type exists, such as the
+			 *                                  case of string descriptors). The type may be one of the standard types defined
+			 *                                  in the DescriptorTypes_t enum, or may be a class-specific descriptor type value.
+			 *  \param[in] wIndex               The language ID of the string to return if the \c wValue type indicates
+			 *                                  \ref DTYPE_String, otherwise zero for standard descriptors, or as defined in a
+			 *                                  class-specific standards.
+			 *  \param[out] DescriptorAddress   Pointer to the descriptor in memory. This should be set by the routine to
+			 *                                  the address of the descriptor.
+			 *  \param[out] MemoryAddressSpace  A value from the \ref USB_DescriptorMemorySpaces_t enum to indicate the memory
+			 *                                  space in which the descriptor is stored. This parameter does not exist when one
+			 *                                  of the \c USE_*_DESCRIPTORS compile time options is used.
+			 *
+			 *  \note By default, the library expects all descriptors to be located in flash memory via the \c PROGMEM attribute.
+			 *        If descriptors should be located in RAM or EEPROM instead (to speed up access in the case of RAM, or to
+			 *        allow the descriptors to be changed dynamically at runtime) either the \c USE_RAM_DESCRIPTORS or the
+			 *        \c USE_EEPROM_DESCRIPTORS tokens may be defined in the project makefile and passed to the compiler by the -D
+			 *        switch.
+			 *
+			 *  \return Size in bytes of the descriptor if it exists, zero or \ref NO_DESCRIPTOR otherwise.
+			 */
+			uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
+			                                    const uint8_t wIndex,
+			                                    const void** const DescriptorAddress
+			#if !defined(USE_FLASH_DESCRIPTORS) && !defined(USE_EEPROM_DESCRIPTORS) && !defined(USE_RAM_DESCRIPTORS)
+			                                    , uint8_t* MemoryAddressSpace
+			#endif
+			                                    ) ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);
+
 #endif
 
 /** @} */
diff --git a/LUFA/Drivers/USB/Core/Endpoint.h b/LUFA/Drivers/USB/Core/Endpoint.h
index 302c368e410b6baa82f0d3bec191d4b637fe1fa8..656f40cdb1997f8707c8bd8971a9fd8163c80941 100644
--- a/LUFA/Drivers/USB/Core/Endpoint.h
+++ b/LUFA/Drivers/USB/Core/Endpoint.h
@@ -29,10 +29,8 @@
 */
 
 /** \file
- *  \brief USB device endpoint management definitions.
- *
- *  This file contains structures, function prototypes and macros related to the management of the device's
- *  data endpoints when the library is initialized in USB device mode.
+ *  \brief Common USB Endpoint definitions for all architectures.
+ *  \copydetails Group_EndpointManagement
  *
  *  \note This file should not be included directly. It is automatically included as needed by the USB driver
  *        dispatch header located in LUFA/Drivers/USB/USB.h.
@@ -40,6 +38,7 @@
 
 /** \ingroup Group_EndpointManagement
  *  \defgroup Group_EndpointRW Endpoint Data Reading and Writing
+ *  \brief Common USB Endpoint definitions for all architectures.
  *
  *  Functions, macros, variables, enums and types related to data reading and writing from and to endpoints.
  */
diff --git a/LUFA/Drivers/USB/Core/EndpointStream.h b/LUFA/Drivers/USB/Core/EndpointStream.h
index 4d4f33a206fdeea4c7d17621069a54b973548202..a8fd4bc935a1accf9a7220785bcc878193bde506 100644
--- a/LUFA/Drivers/USB/Core/EndpointStream.h
+++ b/LUFA/Drivers/USB/Core/EndpointStream.h
@@ -29,10 +29,8 @@
 */
 
 /** \file
- *  \brief USB device endpoint stream function definitions.
- *
- *  This file contains structures, function prototypes and macros related to the sending and receiving of
- *  arbitrary data streams through the device's data endpoints when the library is initialized in USB device mode.
+ *  \brief Endpoint data stream transmission and reception management.
+ *  \copydetails Group_EndpointStreamRW
  *
  *  \note This file should not be included directly. It is automatically included as needed by the USB driver
  *        dispatch header located in LUFA/Drivers/USB/USB.h.
@@ -40,6 +38,7 @@
 
 /** \ingroup Group_EndpointRW  
  *  \defgroup Group_EndpointStreamRW Read/Write of Multi-Byte Streams
+ *  \brief Endpoint data stream transmission and reception management.
  *
  *  Functions, macros, variables, enums and types related to data reading and writing of data streams from
  *  and to endpoints.
diff --git a/LUFA/Drivers/USB/Core/Events.h b/LUFA/Drivers/USB/Core/Events.h
index 4a3a1a160e39ac263b5b1d26dbe4bec7adb5708a..c0a322b2619a2db1de50e45f02ec86901a94ef1c 100644
--- a/LUFA/Drivers/USB/Core/Events.h
+++ b/LUFA/Drivers/USB/Core/Events.h
@@ -29,19 +29,8 @@
 */
 
 /** \file
- *  \brief USB controller events manager.
- *
- *  This file contains macros and functions relating to the management of library events, which are small
- *  pieces of code similar to ISRs which are run when a given condition is met. Each event can be fired from
- *  multiple places in the user or library code, which may or may not be inside an ISR, thus each handler
- *  should be written to be as small and fast as possible to prevent possible problems.
- *
- *  Events can be hooked by the user application by declaring a handler function with the same name and parameters
- *  listed here. If an event with no user-associated handler is fired within the library, it by default maps to an
- *  internal empty stub function.
- *
- *  Each event must only have one associated event handler, but can be raised by multiple sources by calling the
- *  event handler function (with any required event parameters).
+ *  \brief USB Event management definitions.
+ *  \copydetails Group_Events
  *
  *  \note This file should not be included directly. It is automatically included as needed by the USB driver
  *        dispatch header located in LUFA/Drivers/USB/USB.h.
@@ -49,6 +38,7 @@
 
 /** \ingroup Group_USB
  *  \defgroup Group_Events USB Events
+ *  \brief USB Event management definitions.
  *
  *  This module contains macros and functions relating to the management of library events, which are small
  *  pieces of code similar to ISRs which are run when a given condition is met. Each event can be fired from
diff --git a/LUFA/Drivers/USB/Core/Host.h b/LUFA/Drivers/USB/Core/Host.h
index 8a6ac438d69c475fafef94cbb605082eb952411a..6a09b4055294184c75a32e1bde4e21da7d5b1722 100644
--- a/LUFA/Drivers/USB/Core/Host.h
+++ b/LUFA/Drivers/USB/Core/Host.h
@@ -29,10 +29,8 @@
 */
 
 /** \file
- *  \brief USB host mode definitions.
- *
- *  USB Host mode related macros and enums. This module contains macros and enums which are used when
- *  the USB controller is initialized in host mode.
+ *  \brief Common USB Host definitions for all architectures.
+ *  \copydetails Group_Host
  *
  *  \note This file should not be included directly. It is automatically included as needed by the USB driver
  *        dispatch header located in LUFA/Drivers/USB/USB.h.
@@ -40,6 +38,7 @@
 
 /** \ingroup Group_USB
  *  \defgroup Group_Host Host Management
+ *  \brief Common USB Host definitions for all architectures.
  *
  *  USB Host mode related macros and enums. This module contains macros and enums which are used when
  *  the USB controller is initialized in host mode.
diff --git a/LUFA/Drivers/USB/Core/OTG.h b/LUFA/Drivers/USB/Core/OTG.h
index 3b41a0fe6ebffcc8d20892dac20ceff23bad83c6..bb54e18bd31e1a990585ba8dc57b0a02f009b412 100644
--- a/LUFA/Drivers/USB/Core/OTG.h
+++ b/LUFA/Drivers/USB/Core/OTG.h
@@ -29,10 +29,8 @@
 */
 
 /** \file
- *  \brief USB OTG mode definitions.
- *
- *  This file contains structures, function prototypes and macros related to USB OTG mode, where two USB devices
- *  may be linked directly together and exchange host/device roles as needed.
+ *  \brief Common USB OTG definitions for all architectures.
+ *  \copydetails Group_OTG
  *
  *  \note This file should not be included directly. It is automatically included as needed by the USB driver
  *        dispatch header located in LUFA/Drivers/USB/USB.h.
@@ -40,6 +38,7 @@
 
 /** \ingroup Group_USB
  *  \defgroup Group_OTG USB On The Go (OTG) Management
+ *  \brief Common USB OTG definitions for all architectures.
  *
  *  This module contains macros for embedded USB hosts with dual role On The Go capabilities, for managing role
  *  exchange. OTG is a way for two USB dual role devices to talk to one another directly without fixed device/host
diff --git a/LUFA/Drivers/USB/Core/Pipe.h b/LUFA/Drivers/USB/Core/Pipe.h
index 2ab14fc6ca02ca41d0576b60cd427ad22c064b57..4edeba92eff556be07cea70b3622824be9089f4b 100644
--- a/LUFA/Drivers/USB/Core/Pipe.h
+++ b/LUFA/Drivers/USB/Core/Pipe.h
@@ -29,10 +29,8 @@
 */
 
 /** \file
- *  \brief USB host pipe management definitions.
- *
- *  This file contains structures, function prototypes and macros related to the management of the device's
- *  data pipes when the library is initialized in USB host mode.
+ *  \brief Common USB Pipe definitions for all architectures.
+ *  \copydetails Group_PipeManagement
  *
  *  \note This file should not be included directly. It is automatically included as needed by the USB driver
  *        dispatch header located in LUFA/Drivers/USB/USB.h.
@@ -40,6 +38,7 @@
 
 /** \ingroup Group_PipeManagement
  *  \defgroup Group_PipeRW Pipe Data Reading and Writing
+ *  \brief Common USB Pipe definitions for all architectures.
  *
  *  Functions, macros, variables, enums and types related to data reading and writing from and to pipes.
  */
diff --git a/LUFA/Drivers/USB/Core/PipeStream.h b/LUFA/Drivers/USB/Core/PipeStream.h
index 86c544ebe40aefe3b1c548e539c778ae21f2e8f7..5c3ab9d450fc36e489c52f7bdc42b9711cd8b6ce 100644
--- a/LUFA/Drivers/USB/Core/PipeStream.h
+++ b/LUFA/Drivers/USB/Core/PipeStream.h
@@ -29,10 +29,8 @@
 */
  
 /** \file
- *  \brief USB host pipe stream function definitions.
- *
- *  This file contains structures, function prototypes and macros related to the sending and receiving of
- *  arbitrary data streams through the device's data pipes when the library is initialized in USB host mode.
+ *  \brief Pipe data stream transmission and reception management.
+ *  \copydetails Group_PipeStreamRW
  *
  *  \note This file should not be included directly. It is automatically included as needed by the USB driver
  *        dispatch header located in LUFA/Drivers/USB/USB.h.
@@ -40,6 +38,7 @@
 
 /** \ingroup Group_PipeRW  
  *  \defgroup Group_PipeStreamRW Read/Write of Multi-Byte Streams
+ *  \brief Pipe data stream transmission and reception management.
  *
  *  Functions, macros, variables, enums and types related to data reading and writing of data streams from
  *  and to pipes.
diff --git a/LUFA/Drivers/USB/Core/StdDescriptors.h b/LUFA/Drivers/USB/Core/StdDescriptors.h
index ed4ecf91e61d38756aac3cd20b2c3592d35aabcd..d08d08348b2085bf21032d6edae5a5ee5a3b25e2 100644
--- a/LUFA/Drivers/USB/Core/StdDescriptors.h
+++ b/LUFA/Drivers/USB/Core/StdDescriptors.h
@@ -29,16 +29,16 @@
 */
 
 /** \file
- *  \brief USB standard descriptor definitions.
- *
- *  This file contains structures and macros for the easy creation of standard USB descriptors in USB device projects.
+ *  \brief Common USB Descriptor definitions for all architectures.
+ *  \copydetails Group_StdDescriptors
  *
  *  \note This file should not be included directly. It is automatically included as needed by the USB driver
  *        dispatch header located in LUFA/Drivers/USB/USB.h.
  */
 
 /** \ingroup Group_USB
- *  \defgroup Group_Descriptors USB Descriptors
+ *  \defgroup Group_StdDescriptors USB Descriptors
+ *  \brief Common USB Descriptor definitions for all architectures.
  *
  *  Standard USB device descriptor defines and retrieval routines, for USB devices. This module contains
  *  structures and macros for the easy creation of standard USB descriptors in USB device projects.
diff --git a/LUFA/Drivers/USB/Core/StdRequestType.h b/LUFA/Drivers/USB/Core/StdRequestType.h
index a8c3f091316f8826bbc5a496c503865c321c7914..83bec4f2a31d1b225778830266e3761b3739c7da 100644
--- a/LUFA/Drivers/USB/Core/StdRequestType.h
+++ b/LUFA/Drivers/USB/Core/StdRequestType.h
@@ -30,8 +30,7 @@
 
 /** \file
  *  \brief USB control endpoint request definitions.
- *
- *  This file contains structures and macros for the easy creation and parsing of standard USB control requests.
+ *  \copydetails Group_StdRequest
  *
  *  \note This file should not be included directly. It is automatically included as needed by the USB driver
  *        dispatch header located in LUFA/Drivers/USB/USB.h.
@@ -39,6 +38,7 @@
 
 /** \ingroup Group_USB
  *  \defgroup Group_StdRequest Standard USB Requests
+ *  \brief USB control endpoint request definitions.
  *
  *  This module contains definitions for the various control request parameters, so that the request
  *  details (such as data direction, request recipient, etc.) can be extracted via masking.
diff --git a/LUFA/Drivers/USB/Core/USBController.h b/LUFA/Drivers/USB/Core/USBController.h
index 475aeb1bdc9a4447150efd106cde58e053be6d30..dfd2ce1d525c3e272f8078048efeb4277eb90ecb 100644
--- a/LUFA/Drivers/USB/Core/USBController.h
+++ b/LUFA/Drivers/USB/Core/USBController.h
@@ -29,10 +29,8 @@
 */
 
 /** \file
- *  \brief USB low level USB controller definitions.
- *
- *  This file contains structures, function prototypes and macros related to the low level configuration of the
- *  USB controller, to start, stop and reset the USB library core.
+ *  \brief Common USB Controller definitions for all architectures.
+ *  \copydetails Group_USBManagement
  *
  *  \note This file should not be included directly. It is automatically included as needed by the USB driver
  *        dispatch header located in LUFA/Drivers/USB/USB.h.
@@ -40,6 +38,7 @@
 
 /** \ingroup Group_USB
  *  \defgroup Group_USBManagement USB Interface Management
+ *  \brief Common USB Controller definitions for all architectures.
  *
  *  Functions, macros, variables, enums and types related to the setup and management of the USB interface.
  *
diff --git a/LUFA/Drivers/USB/Core/USBMode.h b/LUFA/Drivers/USB/Core/USBMode.h
index 58f9927dc9ea64e3a499c1ed87b2a39522348fc8..ff95ce3d51ed262e9a8b8420831a5f40fc37fceb 100644
--- a/LUFA/Drivers/USB/Core/USBMode.h
+++ b/LUFA/Drivers/USB/Core/USBMode.h
@@ -29,11 +29,8 @@
 */
 
 /** \file
- *  \brief USB mode and capability macros.
- *
- *  This file defines macros indicating the type of USB controller the library is being compiled for, and its
- *  capabilities. These macros may then be referenced in the user application to selectively enable or disable
- *  code sections depending on if they are defined or not.
+ *  \brief USB mode and feature support definitions.
+ *  \copydetails Group_USBMode
  *
  *  \note This file should not be included directly. It is automatically included as needed by the USB driver
  *        dispatch header located in LUFA/Drivers/USB/USB.h.
@@ -41,11 +38,15 @@
 
 /** \ingroup Group_USB
  *  \defgroup Group_USBMode USB Mode Tokens
+ *  \brief USB mode and feature support definitions.
+ *
+ *  This file defines macros indicating the type of USB controller the library is being compiled for, and its
+ *  capabilities. These macros may then be referenced in the user application to selectively enable or disable
+ *  code sections depending on if they are defined or not.
  *
- *  After the inclusion of the master USB driver header, one or more of the following
- *  tokens may be defined, to allow the user code to conditionally enable or disable
- *  code based on the USB controller family and allowable USB modes. These tokens may
- *  be tested against to eliminate code relating to a USB mode which is not enabled for
+ *  After the inclusion of the master USB driver header, one or more of the following tokens may be defined, to
+ *  allow the user code to conditionally enable or disable code based on the USB controller family and allowable
+ *  USB modes. These tokens may be tested against to eliminate code relating to a USB mode which is not enabled for
  *  the given compilation.
  *
  *  @{
diff --git a/LUFA/ManPages/CompileTimeTokens.txt b/LUFA/ManPages/CompileTimeTokens.txt
index 853d7468ed19751fe7a347591c108b196b599c4c..f215ffec15276ccc26aee3f669169ee09a9a4422 100644
--- a/LUFA/ManPages/CompileTimeTokens.txt
+++ b/LUFA/ManPages/CompileTimeTokens.txt
@@ -120,17 +120,17 @@
  *  \section Sec_SummaryUSBDeviceTokens USB Device Mode Driver Related Tokens
  *  This section describes compile tokens which affect USB driver stack of the LUFA library when used in Device mode.
  *
- *  <b>USE_RAM_DESCRIPTORS</b> - ( \ref Group_Descriptors ) \n
+ *  <b>USE_RAM_DESCRIPTORS</b> - ( \ref Group_StdDescriptors ) \n
  *  Define this token to indicate to the USB driver that all device descriptors are stored in RAM, rather than being located in any one
  *  of the AVR's memory spaces. RAM descriptors may be desirable in applications where the descriptors need to be modified at runtime.
  *
- *  <b>USE_FLASH_DESCRIPTORS</b> - ( \ref Group_Descriptors ) \n
+ *  <b>USE_FLASH_DESCRIPTORS</b> - ( \ref Group_StdDescriptors ) \n
  *  Similar to USE_RAM_DESCRIPTORS, but all descriptors are stored in the AVR's FLASH memory rather than RAM.
  *
- *  <b>USE_EEPROM_DESCRIPTORS</b> - ( \ref Group_Descriptors ) \n
+ *  <b>USE_EEPROM_DESCRIPTORS</b> - ( \ref Group_StdDescriptors ) \n
  *  Similar to USE_RAM_DESCRIPTORS, but all descriptors are stored in the AVR's EEPROM memory rather than RAM.
  *
- *  <b>NO_INTERNAL_SERIAL</b> - ( \ref Group_Descriptors ) \n
+ *  <b>NO_INTERNAL_SERIAL</b> - ( \ref Group_StdDescriptors ) \n
  *  Some AVR models contain a unique 20-digit serial number which can be used as the device serial number, while in device mode. This
  *  allows the host to uniquely identify the device regardless of if it is moved between USB ports on the same computer, allowing
  *  allocated resources (such as drivers, COM Port number allocations) to be preserved. This is not needed in many apps, and so the
diff --git a/LUFA/ManPages/SoftwareBootloaderJump.txt b/LUFA/ManPages/SoftwareBootloaderJump.txt
index d0b41e1b621c52db12698c370b5f436f00681c8c..049f49c8f6ec3f5af7253f09acb0a77bbc8c2294 100644
--- a/LUFA/ManPages/SoftwareBootloaderJump.txt
+++ b/LUFA/ManPages/SoftwareBootloaderJump.txt
@@ -12,12 +12,15 @@
  *  hardware). This might be required because the device does not have any physical user input, or simply
  *  just to streamline the device upgrade process on the host PC.
  *
- *  The following C code snippet may be used to enter the bootloader upon request by the user application.
+ *  The following C code snippets may be used to enter the bootloader upon request by the user application.
  *  By using the watchdog to physically reset the controller, it is ensured that all system hardware is
  *  completely reset to their defaults before the bootloader is run. This is important; since bootloaders
  *  are written to occupy a very limited space, they usually make assumptions about the register states based
  *  on the default values after a hard-reset of the chip.
  *
+ *  \section Sec_SoftareBootAVR8 AVR8 Architecture
+ *  The following software bootloader jump code is written for the AVR8 architecture.
+ *
  *  \code
  *  #include <avr/wdt.h>
  *  #include <avr/io.h>