From d38fa49cb6cb3804c9bb17601688a62ba466b535 Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Fri, 17 Apr 2009 05:04:21 +0000
Subject: [PATCH] More documentation changes for better module-level
 documentation rather than file-level documentation.

---
 Bootloaders/CDC/makefile                     | 13 +++++---
 Bootloaders/DFU/makefile                     | 13 +++++---
 Bootloaders/TeensyHID/makefile               | 13 +++++---
 Demos/Device/AudioInput/makefile             | 13 +++++---
 Demos/Device/AudioOutput/makefile            | 13 +++++---
 Demos/Device/CDC/makefile                    | 13 +++++---
 Demos/Device/DualCDC/makefile                | 13 +++++---
 Demos/Device/GenericHID/makefile             | 13 +++++---
 Demos/Device/Joystick/makefile               | 13 +++++---
 Demos/Device/Keyboard/makefile               | 13 +++++---
 Demos/Device/KeyboardMouse/makefile          | 13 +++++---
 Demos/Device/MIDI/makefile                   | 13 +++++---
 Demos/Device/MassStorage/makefile            | 13 +++++---
 Demos/Device/Mouse/makefile                  | 16 +++++----
 Demos/Device/RNDISEthernet/makefile          | 25 ++++++++------
 Demos/Device/USBtoSerial/makefile            | 14 +++++---
 Demos/Host/CDCHost/makefile                  | 12 ++++---
 Demos/Host/GenericHIDHost/makefile           | 12 ++++---
 Demos/Host/KeyboardHost/makefile             | 12 ++++---
 Demos/Host/KeyboardHostWithParser/makefile   | 15 +++++----
 Demos/Host/MassStorageHost/makefile          | 14 +++++---
 Demos/Host/MouseHost/makefile                | 12 ++++---
 Demos/Host/MouseHostWithParser/makefile      | 15 +++++----
 Demos/Host/StillImageHost/makefile           | 12 ++++---
 Demos/OTG/TestApp/makefile                   | 14 ++++----
 LUFA/Doxygen.conf                            |  3 +-
 LUFA/Drivers/Board/ATAVRUSBRF01/HWB.h        |  7 ----
 LUFA/Drivers/Board/Dataflash.h               |  8 +++++
 LUFA/Drivers/Board/HWB.h                     |  8 +++++
 LUFA/Drivers/Board/Joystick.h                |  8 +++++
 LUFA/Drivers/Board/LEDs.h                    |  8 +++++
 LUFA/Drivers/Board/STK525/HWB.h              |  7 ----
 LUFA/Drivers/Board/STK526/HWB.h              |  8 -----
 LUFA/Drivers/Board/Temperature.h             |  5 +++
 LUFA/Drivers/Board/USBKEY/HWB.h              |  7 ----
 LUFA/Drivers/Misc/TerminalCodes.h            | 18 +++++++----
 LUFA/Drivers/Peripheral/ADC.h                | 34 +++++---------------
 LUFA/Drivers/Peripheral/SPI.h                |  7 +++-
 LUFA/Drivers/Peripheral/Serial.h             | 23 +++++++++----
 LUFA/Drivers/Peripheral/SerialStream.h       | 12 +++++--
 LUFA/Drivers/USB/Class/ConfigDescriptor.c    |  6 ++++
 LUFA/Drivers/USB/Class/HIDParser.h           | 15 +++++----
 LUFA/Drivers/USB/HighLevel/Events.h          | 17 ++++------
 LUFA/Drivers/USB/HighLevel/StdDescriptors.h  |  9 ++----
 LUFA/Drivers/USB/HighLevel/StdRequestType.h  |  9 ++----
 LUFA/Drivers/USB/HighLevel/StreamCallbacks.h | 11 ++-----
 LUFA/Drivers/USB/HighLevel/USBInterrupt.h    | 10 ++----
 LUFA/Drivers/USB/HighLevel/USBTask.h         |  6 ----
 LUFA/Drivers/USB/LowLevel/DevChapter9.h      |  8 -----
 LUFA/Drivers/USB/LowLevel/Device.h           |  9 ++----
 LUFA/Drivers/USB/LowLevel/Endpoint.h         |  9 ++----
 LUFA/Drivers/USB/LowLevel/Host.h             |  9 ++----
 LUFA/Drivers/USB/LowLevel/HostChapter9.h     |  8 -----
 LUFA/Drivers/USB/LowLevel/LowLevel.h         |  6 ----
 LUFA/Drivers/USB/LowLevel/OTG.h              | 12 ++-----
 LUFA/Drivers/USB/LowLevel/Pipe.h             | 18 +++++------
 LUFA/Drivers/USB/USB.h                       | 19 +++++++++--
 LUFA/Groups.txt                              |  2 +-
 LUFA/MemoryAllocator/DynAlloc.h              | 19 +++++++----
 LUFA/Scheduler/Scheduler.h                   | 16 ++++++---
 Projects/Magstripe/makefile                  | 13 +++++---
 61 files changed, 414 insertions(+), 322 deletions(-)

diff --git a/Bootloaders/CDC/makefile b/Bootloaders/CDC/makefile
index 10f94984b..022742720 100644
--- a/Bootloaders/CDC/makefile
+++ b/Bootloaders/CDC/makefile
@@ -113,13 +113,18 @@ LUFA_PATH = ../..
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
diff --git a/Bootloaders/DFU/makefile b/Bootloaders/DFU/makefile
index 3bed40d59..d93836fe1 100644
--- a/Bootloaders/DFU/makefile
+++ b/Bootloaders/DFU/makefile
@@ -113,13 +113,18 @@ LUFA_PATH = ../..
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
  
 # List C++ source files here. (C dependencies are automatically generated.)
diff --git a/Bootloaders/TeensyHID/makefile b/Bootloaders/TeensyHID/makefile
index 561ada56a..6ef9f3a38 100644
--- a/Bootloaders/TeensyHID/makefile
+++ b/Bootloaders/TeensyHID/makefile
@@ -113,13 +113,18 @@ LUFA_PATH = ../..
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
diff --git a/Demos/Device/AudioInput/makefile b/Demos/Device/AudioInput/makefile
index 95297d798..31e609db6 100644
--- a/Demos/Device/AudioInput/makefile
+++ b/Demos/Device/AudioInput/makefile
@@ -126,13 +126,18 @@ LUFA_PATH = ../../..
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
 	  $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
diff --git a/Demos/Device/AudioOutput/makefile b/Demos/Device/AudioOutput/makefile
index 7ecd9009c..997abe6af 100644
--- a/Demos/Device/AudioOutput/makefile
+++ b/Demos/Device/AudioOutput/makefile
@@ -126,13 +126,18 @@ LUFA_PATH = ../../..
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
 	  $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
diff --git a/Demos/Device/CDC/makefile b/Demos/Device/CDC/makefile
index 6f27fb926..d9df583d4 100644
--- a/Demos/Device/CDC/makefile
+++ b/Demos/Device/CDC/makefile
@@ -126,13 +126,18 @@ LUFA_PATH = ../../..
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
 	  $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
diff --git a/Demos/Device/DualCDC/makefile b/Demos/Device/DualCDC/makefile
index b2a8d9e04..c45601254 100644
--- a/Demos/Device/DualCDC/makefile
+++ b/Demos/Device/DualCDC/makefile
@@ -126,13 +126,18 @@ LUFA_PATH = ../../..
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
 	  $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
diff --git a/Demos/Device/GenericHID/makefile b/Demos/Device/GenericHID/makefile
index c36808628..4972121bc 100644
--- a/Demos/Device/GenericHID/makefile
+++ b/Demos/Device/GenericHID/makefile
@@ -126,13 +126,18 @@ LUFA_PATH = ../../..
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
 	  $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
diff --git a/Demos/Device/Joystick/makefile b/Demos/Device/Joystick/makefile
index 8c645747d..dd4495447 100644
--- a/Demos/Device/Joystick/makefile
+++ b/Demos/Device/Joystick/makefile
@@ -126,13 +126,18 @@ LUFA_PATH = ../../..
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
 	  $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
diff --git a/Demos/Device/Keyboard/makefile b/Demos/Device/Keyboard/makefile
index 9f738ce08..945a6f8fc 100644
--- a/Demos/Device/Keyboard/makefile
+++ b/Demos/Device/Keyboard/makefile
@@ -126,13 +126,18 @@ LUFA_PATH = ../../..
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
 	  $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
diff --git a/Demos/Device/KeyboardMouse/makefile b/Demos/Device/KeyboardMouse/makefile
index 59d676f09..e11238c17 100644
--- a/Demos/Device/KeyboardMouse/makefile
+++ b/Demos/Device/KeyboardMouse/makefile
@@ -126,13 +126,18 @@ LUFA_PATH = ../../..
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
 	  $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
diff --git a/Demos/Device/MIDI/makefile b/Demos/Device/MIDI/makefile
index 09bd0c28f..08c303ec0 100644
--- a/Demos/Device/MIDI/makefile
+++ b/Demos/Device/MIDI/makefile
@@ -126,13 +126,18 @@ LUFA_PATH = ../../..
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
 	  $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
diff --git a/Demos/Device/MassStorage/makefile b/Demos/Device/MassStorage/makefile
index a25c2335d..f263c5a7b 100644
--- a/Demos/Device/MassStorage/makefile
+++ b/Demos/Device/MassStorage/makefile
@@ -128,13 +128,18 @@ SRC = $(TARGET).c                                                 \
 	  SCSI.c                                                      \
 	  DataflashManager.c                                          \
 	  $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
diff --git a/Demos/Device/Mouse/makefile b/Demos/Device/Mouse/makefile
index 1dc0c663f..b788b5a73 100644
--- a/Demos/Device/Mouse/makefile
+++ b/Demos/Device/Mouse/makefile
@@ -126,15 +126,19 @@ LUFA_PATH = ../../..
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
 	  $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
-
-
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
+ 
 # List C++ source files here. (C dependencies are automatically generated.)
 CPPSRC = 
 
diff --git a/Demos/Device/RNDISEthernet/makefile b/Demos/Device/RNDISEthernet/makefile
index 2b104641e..845c20873 100644
--- a/Demos/Device/RNDISEthernet/makefile
+++ b/Demos/Device/RNDISEthernet/makefile
@@ -135,16 +135,21 @@ SRC = $(TARGET).c                                                 \
 	  ARP.c                                                       \
 	  IP.c                                                        \
 	  Webserver.c                                                 \
-      $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \
-      $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-      $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
-      $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
-      $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-      $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
-      $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
-      $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
-      $(LUFA_PATH)/LUFA/Drivers/Peripheral/SerialStream.c         \
-      $(LUFA_PATH)/LUFA/Drivers/Peripheral/Serial.c               \
+	  $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \
+	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/SerialStream.c         \
+	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/Serial.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
diff --git a/Demos/Device/USBtoSerial/makefile b/Demos/Device/USBtoSerial/makefile
index 650a67704..8b7e70163 100644
--- a/Demos/Device/USBtoSerial/makefile
+++ b/Demos/Device/USBtoSerial/makefile
@@ -127,14 +127,18 @@ SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
 	  RingBuff.c                                                  \
 	  $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \
-	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/Serial.c               \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
diff --git a/Demos/Host/CDCHost/makefile b/Demos/Host/CDCHost/makefile
index 9d36b0d1f..954fc583f 100644
--- a/Demos/Host/CDCHost/makefile
+++ b/Demos/Host/CDCHost/makefile
@@ -128,14 +128,18 @@ SRC = $(TARGET).c                                                 \
 	  $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \
 	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/SerialStream.c         \
 	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/Serial.c               \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
diff --git a/Demos/Host/GenericHIDHost/makefile b/Demos/Host/GenericHIDHost/makefile
index 49d4867d5..1b0f6d232 100644
--- a/Demos/Host/GenericHIDHost/makefile
+++ b/Demos/Host/GenericHIDHost/makefile
@@ -128,14 +128,18 @@ SRC = $(TARGET).c                                                 \
 	  $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \
 	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/SerialStream.c         \
 	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/Serial.c               \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
diff --git a/Demos/Host/KeyboardHost/makefile b/Demos/Host/KeyboardHost/makefile
index e74cc4d70..47acfa6bc 100644
--- a/Demos/Host/KeyboardHost/makefile
+++ b/Demos/Host/KeyboardHost/makefile
@@ -128,14 +128,18 @@ SRC = $(TARGET).c                                                 \
 	  $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \
 	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/SerialStream.c         \
 	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/Serial.c               \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
diff --git a/Demos/Host/KeyboardHostWithParser/makefile b/Demos/Host/KeyboardHostWithParser/makefile
index 9768b4bbd..0e6658c33 100644
--- a/Demos/Host/KeyboardHostWithParser/makefile
+++ b/Demos/Host/KeyboardHostWithParser/makefile
@@ -129,15 +129,18 @@ SRC = $(TARGET).c                                                 \
 	  $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \
 	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/SerialStream.c         \
 	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/Serial.c               \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
diff --git a/Demos/Host/MassStorageHost/makefile b/Demos/Host/MassStorageHost/makefile
index dbd0d3285..849511443 100644
--- a/Demos/Host/MassStorageHost/makefile
+++ b/Demos/Host/MassStorageHost/makefile
@@ -129,14 +129,18 @@ SRC = $(TARGET).c                                                 \
 	  $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \
 	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/SerialStream.c         \
 	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/Serial.c               \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
diff --git a/Demos/Host/MouseHost/makefile b/Demos/Host/MouseHost/makefile
index 61d6437d5..5ab0338ea 100644
--- a/Demos/Host/MouseHost/makefile
+++ b/Demos/Host/MouseHost/makefile
@@ -128,14 +128,18 @@ SRC = $(TARGET).c                                                 \
 	  $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \
 	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/SerialStream.c         \
 	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/Serial.c               \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
diff --git a/Demos/Host/MouseHostWithParser/makefile b/Demos/Host/MouseHostWithParser/makefile
index 598ecf30a..d2f06a212 100644
--- a/Demos/Host/MouseHostWithParser/makefile
+++ b/Demos/Host/MouseHostWithParser/makefile
@@ -129,15 +129,18 @@ SRC = $(TARGET).c                                                 \
 	  $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \
 	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/SerialStream.c         \
 	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/Serial.c               \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
diff --git a/Demos/Host/StillImageHost/makefile b/Demos/Host/StillImageHost/makefile
index 3b1f48679..16ec64954 100644
--- a/Demos/Host/StillImageHost/makefile
+++ b/Demos/Host/StillImageHost/makefile
@@ -128,14 +128,18 @@ SRC = $(TARGET).c                                                 \
 	  $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \
 	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/SerialStream.c         \
 	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/Serial.c               \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
diff --git a/Demos/OTG/TestApp/makefile b/Demos/OTG/TestApp/makefile
index c4b436df4..43981a4f2 100644
--- a/Demos/OTG/TestApp/makefile
+++ b/Demos/OTG/TestApp/makefile
@@ -131,16 +131,18 @@ SRC = $(TARGET).c                                                 \
 	  $(LUFA_PATH)/LUFA/Drivers/Board/Temperature.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/SerialStream.c         \
 	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/Serial.c               \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
diff --git a/LUFA/Doxygen.conf b/LUFA/Doxygen.conf
index 136a72335..3b94c4bac 100644
--- a/LUFA/Doxygen.conf
+++ b/LUFA/Doxygen.conf
@@ -580,7 +580,6 @@ INPUT_ENCODING         = UTF-8
 # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
 
 FILE_PATTERNS          = *.h \
-                         *.c \
 						 *.txt
 
 # The RECURSIVE tag can be used to turn specify whether or not subdirectories 
@@ -615,7 +614,7 @@ EXCLUDE_PATTERNS       =
 # wildcard * is used, a substring. Examples: ANamespace, AClass, 
 # AClass::ANamespace, ANamespace::*Test
 
-EXCLUDE_SYMBOLS        = __*
+EXCLUDE_SYMBOLS        = __* INCLUDE_FROM_*
 
 # The EXAMPLE_PATH tag can be used to specify one or more files or 
 # directories that contain example code fragments that are included (see 
diff --git a/LUFA/Drivers/Board/ATAVRUSBRF01/HWB.h b/LUFA/Drivers/Board/ATAVRUSBRF01/HWB.h
index 9d9982ba2..87426de16 100644
--- a/LUFA/Drivers/Board/ATAVRUSBRF01/HWB.h
+++ b/LUFA/Drivers/Board/ATAVRUSBRF01/HWB.h
@@ -36,12 +36,6 @@
  *        dispatch header located in LUFA/Drivers/Board/HWB.h.
  */
 
-/** \ingroup Group_HWB
- *  @defgroup Group_HWB_ATAVRUSBRF01 ATAVRUSBRF01
- *
- *  @{
- */
- 
 #ifndef __HWB_ATAVRUSBRF01_H__
 #define __HWB_ATAVRUSBRF01_H__
 
@@ -84,4 +78,3 @@
 			
 #endif
 
-/** @} */
diff --git a/LUFA/Drivers/Board/Dataflash.h b/LUFA/Drivers/Board/Dataflash.h
index c235cf319..9f5d0756d 100644
--- a/LUFA/Drivers/Board/Dataflash.h
+++ b/LUFA/Drivers/Board/Dataflash.h
@@ -43,8 +43,16 @@
 /** \ingroup Group_BoardDrivers
  *  @defgroup Group_Dataflash Dataflash Driver - LUFA/Drivers/Board/Dataflash.h
  *
+ *  \section Sec_Dependencies Module Source Dependencies
+ *  The following files must be built with any user project that uses this module:
+ *    - None
+ *
+ *  \section Module Description
  *  Functions, macros, variables, enums and types related to the control of board Dataflash ICs.
  *
+ *  If the BOARD value is set to BOARD_USER, this will include the /Board/Dataflash.h file in the user project
+ *  directory. Otherwise, it will include the appropriate built in board driver header file.
+ *
  *  @{
  */
  
diff --git a/LUFA/Drivers/Board/HWB.h b/LUFA/Drivers/Board/HWB.h
index 049fd2378..f6221afd3 100644
--- a/LUFA/Drivers/Board/HWB.h
+++ b/LUFA/Drivers/Board/HWB.h
@@ -43,8 +43,16 @@
 /** \ingroup Group_BoardDrivers
  *  @defgroup Group_HWB HWB Driver - LUFA/Drivers/Board/HWB.h
  *
+ *  \section Sec_Dependencies Module Source Dependencies
+ *  The following files must be built with any user project that uses this module:
+ *    - None
+ *
+ *  \section Module Description
  *  Functions, macros, variables, enums and types related to the control of board HWB.
  *
+ *  If the BOARD value is set to BOARD_USER, this will include the /Board/Dataflash.h file in the user project
+ *  directory. Otherwise, it will include the appropriate built in board driver header file.
+ *
  *  @{
  */
 
diff --git a/LUFA/Drivers/Board/Joystick.h b/LUFA/Drivers/Board/Joystick.h
index 86a02cfe7..c7eb313b8 100644
--- a/LUFA/Drivers/Board/Joystick.h
+++ b/LUFA/Drivers/Board/Joystick.h
@@ -43,8 +43,16 @@
 /** \ingroup Group_BoardDrivers
  *  @defgroup Group_Joystick Joystick Driver - LUFA/Drivers/Board/Joystick.h
  *
+ *  \section Sec_Dependencies Module Source Dependencies
+ *  The following files must be built with any user project that uses this module:
+ *    - None
+ *
+ *  \section Module Description
  *  Functions, macros, variables, enums and types related to the control of board joystick.
  *
+ *  If the BOARD value is set to BOARD_USER, this will include the /Board/Dataflash.h file in the user project
+ *  directory. Otherwise, it will include the appropriate built in board driver header file.
+ *
  *  @{
  */
 
diff --git a/LUFA/Drivers/Board/LEDs.h b/LUFA/Drivers/Board/LEDs.h
index c40042ddc..1874dfde3 100644
--- a/LUFA/Drivers/Board/LEDs.h
+++ b/LUFA/Drivers/Board/LEDs.h
@@ -43,8 +43,16 @@
 /** \ingroup Group_BoardDrivers
  *  @defgroup Group_LEDs LEDs Driver - LUFA/Drivers/Board/LEDs.h
  *
+ *  \section Sec_Dependencies Module Source Dependencies
+ *  The following files must be built with any user project that uses this module:
+ *    - None
+ *
+ *  \section Module Description
  *  Functions, macros, variables, enums and types related to the control of board LEDs.
  *
+ *  If the BOARD value is set to BOARD_USER, this will include the /Board/Dataflash.h file in the user project
+ *  directory. Otherwise, it will include the appropriate built in board driver header file.
+ *
  *  @{
  */
 
diff --git a/LUFA/Drivers/Board/STK525/HWB.h b/LUFA/Drivers/Board/STK525/HWB.h
index a91890cd3..2200453ee 100644
--- a/LUFA/Drivers/Board/STK525/HWB.h
+++ b/LUFA/Drivers/Board/STK525/HWB.h
@@ -36,12 +36,6 @@
  *        dispatch header located in LUFA/Drivers/Board/HWB.h.
  */
 
-/** \ingroup Group_HWB
- *  @defgroup Group_HWB_STK525 STK525
- *
- *  @{
- */
-
 #ifndef __HWB_STK525_H__
 #define __HWB_STK525_H__
 
@@ -84,4 +78,3 @@
 				
 #endif
 
-/** @} */
diff --git a/LUFA/Drivers/Board/STK526/HWB.h b/LUFA/Drivers/Board/STK526/HWB.h
index 0d4fd7e03..6f1861bc1 100644
--- a/LUFA/Drivers/Board/STK526/HWB.h
+++ b/LUFA/Drivers/Board/STK526/HWB.h
@@ -36,12 +36,6 @@
  *        dispatch header located in LUFA/Drivers/Board/HWB.h.
  */
 
-/** \ingroup Group_HWB
- *  @defgroup Group_HWB_STK526 STK526
- *
- *  @{
- */
-
 #ifndef __HWB_STK526_H__
 #define __HWB_STK526_H__
 
@@ -83,5 +77,3 @@
 		#endif
 	
 #endif
-
-/** @} */
diff --git a/LUFA/Drivers/Board/Temperature.h b/LUFA/Drivers/Board/Temperature.h
index 7069e3e99..f21ed400d 100644
--- a/LUFA/Drivers/Board/Temperature.h
+++ b/LUFA/Drivers/Board/Temperature.h
@@ -36,6 +36,11 @@
 /** \ingroup Group_BoardDrivers
  *  @defgroup Group_Temperature Temperature Driver - LUFA/Drivers/Board/Temperature.h
  *
+ *  \section Sec_Dependencies Module Source Dependencies
+ *  The following files must be built with any user project that uses this module:
+ *    - LUFA/Drivers/Board/Temperature.c
+ *
+ *  \section Module Description
  *  Functions, macros, variables, enums and types related to the control of board temperature sensors.
  *
  *  @{
diff --git a/LUFA/Drivers/Board/USBKEY/HWB.h b/LUFA/Drivers/Board/USBKEY/HWB.h
index bfbaa4940..13af186a0 100644
--- a/LUFA/Drivers/Board/USBKEY/HWB.h
+++ b/LUFA/Drivers/Board/USBKEY/HWB.h
@@ -36,12 +36,6 @@
  *        dispatch header located in LUFA/Drivers/Board/HWB.h.
  */
 
-/** \ingroup Group_HWB
- *  @defgroup Group_HWB_USBKEY USBKEY
- *
- *  @{
- */
-
 #ifndef __HWB_USBKEY_H__
 #define __HWB_USBKEY_H__
 
@@ -84,4 +78,3 @@
 			
 #endif
 
-/** @} */
diff --git a/LUFA/Drivers/Misc/TerminalCodes.h b/LUFA/Drivers/Misc/TerminalCodes.h
index 1206ade26..b81a8d674 100644
--- a/LUFA/Drivers/Misc/TerminalCodes.h
+++ b/LUFA/Drivers/Misc/TerminalCodes.h
@@ -33,6 +33,18 @@
  *  ANSI terminal compatible escape sequences. These escape sequences are designed to be concatenated with existing
  *  strings to modify their display on a compatible terminal application.
  *
+ */
+ 
+/** \ingroup Group_MiscDrivers
+ *  @defgroup Group_Terminal ANSI Terminal Escape Codes - LUFA/Drivers/Misc/TerminalCodes.h
+ *
+ *  \section Sec_Dependencies Module Source Dependencies
+ *  The following files must be built with any user project that uses this module:
+ *    - None
+ *
+ *  \section Module Description
+ *  Escape code macros for ANSI compliant text terminals.
+ *
  *  \note If desired, the macro DISABLE_TERMINAL_CODES can be defined in the project makefile and passed to the GCC
  *        compiler via the -D switch to disable the terminal codes without modifying the source, for use with non
  *        compatible terminals (any terminal code then equate to empty strings).
@@ -41,12 +53,6 @@
  *  \code
  *      printf("Some String, " ESC_BOLD_ON " Some bold string");
  *  \endcode
- */
- 
-/** \ingroup Group_MiscDrivers
- *  @defgroup Group_Terminal ANSI Terminal Escape Codes - LUFA/Drivers/Misc/TerminalCodes.h
- *
- *  Escape code macros for ANSI compliant text terminals.
  *
  *  @{
  */
diff --git a/LUFA/Drivers/Peripheral/ADC.h b/LUFA/Drivers/Peripheral/ADC.h
index 02d2d0838..381900acc 100644
--- a/LUFA/Drivers/Peripheral/ADC.h
+++ b/LUFA/Drivers/Peripheral/ADC.h
@@ -36,8 +36,15 @@
  *  currently selected AVR model.
  */
 
-/** \ingroup Group_SubsystemDrivers
+/** \ingroup Group_PeripheralDrivers
  *  @defgroup Group_ADC ADC Driver - LUFA/Drivers/Peripheral/ADC.h
+ *
+ *  \section Sec_Dependencies Module Source Dependencies
+ *  The following files must be built with any user project that uses this module:
+ *    - None
+ *
+ *  \section Module Description
+ *  Functions, macros, variables, enums and types related to the setup of a the ADC subsystem.
  */
  
 #ifndef __ADC_H__
@@ -58,30 +65,5 @@
 		#else
 			#error "ADC is not available for the currently selected AVR model."
 		#endif
-
-	/* Public Interface - May be used in end-application: */
-		/* Inline Functions: */
-			/** Starts the reading of the given channel, but does not wait until the conversion has completed.
-			 *  Once executed, the conversion status can be determined via the ADC_IsReadingComplete() macro and
-			 *  the result read via the ADC_GetResult() macro.
-			 *
-			 *  \param MUXMask  Mask comprising of an ADC channel number, reference mask and adjustment mask
-			 */
-			static inline void ADC_StartReading(const uint8_t MUXMask);
-
-			/** Performs a complete single reading from channel, including a polling spinloop to wait for the
-			 *  conversion to complete, and the returning of the converted value.
-			 *
-			 *  \param MUXMask  Mask comprising of an ADC channel number, reference mask and adjustment mask
-			 */
-			static inline uint16_t ADC_GetChannelReading(const uint8_t MUXMask) ATTR_WARN_UNUSED_RESULT;
-
-			/** Configures the given ADC channel, ready for ADC conversions. This function sets the
-			 *  associated port pin as an input and disables the digital portion of the I/O to reduce
-			 *  power consumption.
-			 *
-			 *  \param Channel  ADC channel number to set up for conversions
-			 */
-			static inline void ADC_SetupChannel(const uint8_t Channel);
 			
 #endif
diff --git a/LUFA/Drivers/Peripheral/SPI.h b/LUFA/Drivers/Peripheral/SPI.h
index 4ada7935c..d8d60ede5 100644
--- a/LUFA/Drivers/Peripheral/SPI.h
+++ b/LUFA/Drivers/Peripheral/SPI.h
@@ -33,9 +33,14 @@
  *  Hardware SPI subsystem driver for the supported USB AVRs models.
  */
 
-/** \ingroup Group_SubsystemDrivers
+/** \ingroup Group_PeripheralDrivers
  *  @defgroup Group_SPI SPI Driver - LUFA/Drivers/Peripheral/SPI.h
  *
+ *  \section Sec_Dependencies Module Source Dependencies
+ *  The following files must be built with any user project that uses this module:
+ *    - None
+ *
+ *  \section Module Description
  *  Functions, macros, variables, enums and types related to the setup of a the SPI port.
  *
  *  @{
diff --git a/LUFA/Drivers/Peripheral/Serial.h b/LUFA/Drivers/Peripheral/Serial.h
index d83761f3f..65b40a53f 100644
--- a/LUFA/Drivers/Peripheral/Serial.h
+++ b/LUFA/Drivers/Peripheral/Serial.h
@@ -33,9 +33,14 @@
  *  Driver for the USART subsystem on supported USB AVRs.
  */
  
-/** \ingroup Group_SubsystemDrivers
+/** \ingroup Group_PeripheralDrivers
  *  @defgroup Group_Serial Serial USART Driver - LUFA/Drivers/Peripheral/Serial.h
  *
+ *  \section Sec_Dependencies Module Source Dependencies
+ *  The following files must be built with any user project that uses this module:
+ *    - LUFA/Drivers/Peripheral/Serial.c
+ *
+ *  \section Module Description
  *  Functions, macros, variables, enums and types related to the setup of the USART for serial communications.
  *
  *  @{
@@ -59,11 +64,6 @@
 
 	/* Public Interface - May be used in end-application: */
 		/* Macros: */	
-			/** Indicates whether a character has been received through the USART - boolean false if no character
-			 *  has been received, or non-zero if a character is waiting to be read from the reception buffer.
-			 */
-			#define Serial_IsCharReceived() ((UCSR1A & (1 << RXC1)) ? true : false)
-
 			/** Macro for calculating the baud value from a given baud rate when the U2X (double speed) bit is
 			 *  not set.
 			 */
@@ -74,6 +74,17 @@
 			 */
 			#define SERIAL_2X_UBBRVAL(baud) (((F_CPU / 8) / baud) - 1)
 
+		/* Psuedo-Functions: */
+			#if defined(__DOXYGEN__)
+				/** Indicates whether a character has been received through the USART.
+				 *
+				 *  \return Boolean true if a character has been received, false otherwise
+				 */
+				static inline bool Serial_IsCharReceived(void);
+			#else
+				#define Serial_IsCharReceived() ((UCSR1A & (1 << RXC1)) ? true : false)
+			#endif
+
 		/* Function Prototypes: */
 			/** Initializes the USART, ready for serial data transmission and reception.
 			 *
diff --git a/LUFA/Drivers/Peripheral/SerialStream.h b/LUFA/Drivers/Peripheral/SerialStream.h
index 394fd081d..275313589 100644
--- a/LUFA/Drivers/Peripheral/SerialStream.h
+++ b/LUFA/Drivers/Peripheral/SerialStream.h
@@ -35,11 +35,17 @@
  *  USART.
  **/
 
-/** \ingroup Group_SubsystemDrivers
+/** \ingroup Group_PeripheralDrivers
  *  @defgroup Group_SerialStream Serial Stream Driver - LUFA/Drivers/Peripheral/SerialStream.h
  *
- *  Functions, macros, variables, enums and types related to the setup of a serial stream, so that standard printf and other
- *  C stream functions can be used on the serial port.
+ *  \section Sec_Dependencies Module Source Dependencies
+ *  The following files must be built with any user project that uses this module:
+ *    - LUFA/Drivers/Peripheral/SerialStream.c
+ *
+ *  \section Module Description
+ *  Serial stream driver for the USART subsystem on supported USB AVRs. This makes use of the functions in the
+ *  regular USART driver, but allows the avr-libc standard stream functions (printf, puts, etc.) to work with the
+ *  USART.
  *
  *  @{
  */
diff --git a/LUFA/Drivers/USB/Class/ConfigDescriptor.c b/LUFA/Drivers/USB/Class/ConfigDescriptor.c
index f22426bf0..ecd58791c 100644
--- a/LUFA/Drivers/USB/Class/ConfigDescriptor.c
+++ b/LUFA/Drivers/USB/Class/ConfigDescriptor.c
@@ -28,6 +28,10 @@
   this software.
 */
 
+#include "../HighLevel/USBMode.h"
+
+#if defined(USB_CAN_BE_HOST)
+
 #include "ConfigDescriptor.h"
 
 uint8_t USB_Host_GetDeviceConfigDescriptor(uint16_t* const ConfigSizePtr, void* BufferPtr)
@@ -138,3 +142,5 @@ uint8_t USB_Host_GetNextDescriptorComp_P(uint16_t* BytesRem, uint8_t** CurrConfi
 	
 	return Descriptor_Search_Comp_EndOfDescriptor;
 }
+
+#endif
diff --git a/LUFA/Drivers/USB/Class/HIDParser.h b/LUFA/Drivers/USB/Class/HIDParser.h
index ad242fe56..4d9f9db7a 100644
--- a/LUFA/Drivers/USB/Class/HIDParser.h
+++ b/LUFA/Drivers/USB/Class/HIDParser.h
@@ -33,7 +33,14 @@
  *  USB Human Interface Device (HID) Class report descriptor processing routines. This file allows for the easy
  *  parsing of the complex HID report descriptor, which describes the data that the device transmits to the host.
  *
- *  The processed report is presented back to the user application as a flat structure containing each report
+ */
+ 
+/** \ingroup Group_USB
+ *  @defgroup Group_HIDParser HID Report Parser
+ *
+ *  Functions, macros, variables, enums and types related to the parsing of HID class device report descriptors.
+ *
+ *  The processed HID report is presented back to the user application as a flat structure containing each report
  *  item's IN, OUT and FEATURE (if desired) items along with each item's attributes.
  *
  *  This library portion also allows for easy setting and retrieval of data from a HID report, including devices
@@ -43,12 +50,6 @@
  *  to save on memory. This can be overridden by defining the HID_ENABLE_FEATURE_PROCESSING or
  *  HID_INCLUDE_CONSTANT_DATA_ITEMS tokens in the user project makefile, passing them to the compiler via the -D
  *  switch.
- */
- 
-/** \ingroup Group_USB
- *  @defgroup Group_HIDParser HID Report Parser
- *
- *  Functions, macros, variables, enums and types related to the parsing of HID class device report descriptors.
  *
  *  @{
  */
diff --git a/LUFA/Drivers/USB/HighLevel/Events.h b/LUFA/Drivers/USB/HighLevel/Events.h
index 480e824a7..9638afee3 100644
--- a/LUFA/Drivers/USB/HighLevel/Events.h
+++ b/LUFA/Drivers/USB/HighLevel/Events.h
@@ -28,22 +28,19 @@
   this software.
 */
 
-/** Library events module. 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 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.
+/** \ingroup Group_USB
+ *  @defgroup Group_Events USB Events
+ *
+ *  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
+ *  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 using the EVENT_HANDLER() and HANDLES_EVENT() macros. If an
  *  event with no associated handler is fired within the library, it by default fires an internal empty stub
  *  function. This is achieved through the use of the GCC compiler's "alias" attribute.
  *
  *  Each event must only have one associated event handler, but can be raised by multiple sources.
- */
-
-/** \ingroup Group_USB
- *  @defgroup Group_Events USB Events
- *
- *  Functions, macros, variables, enums and types related to the management of events from the USB kernel.
  *
  *  @{
  */
diff --git a/LUFA/Drivers/USB/HighLevel/StdDescriptors.h b/LUFA/Drivers/USB/HighLevel/StdDescriptors.h
index a1a051824..431080b72 100644
--- a/LUFA/Drivers/USB/HighLevel/StdDescriptors.h
+++ b/LUFA/Drivers/USB/HighLevel/StdDescriptors.h
@@ -28,7 +28,8 @@
   this software.
 */
 
-/** \file
+/** \ingroup Group_USB
+ *  @defgroup Group_Descriptors USB Descriptors
  *
  *  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.
@@ -42,12 +43,6 @@
  *  descriptors will contain elements named identically to the official USB specification. The alternately
  *  named descriptor elements are placed in the same order inside the descriptor structures as their officially
  *  named counterparts, thus they can be correlated easily with the official USB specification.
- */
-
-/** \ingroup Group_USB
- *  @defgroup Group_Descriptors USB Descriptors
- *
- *  Functions, macros, variables, enums and types related to standard USB descriptors.
  *
  *  @{
  */
diff --git a/LUFA/Drivers/USB/HighLevel/StdRequestType.h b/LUFA/Drivers/USB/HighLevel/StdRequestType.h
index bf9ef8aee..27c179497 100644
--- a/LUFA/Drivers/USB/HighLevel/StdRequestType.h
+++ b/LUFA/Drivers/USB/HighLevel/StdRequestType.h
@@ -28,16 +28,11 @@
   this software.
 */
 
-/** \file
- *
- *  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.
- */
- 
 /** \ingroup Group_USB
  *  @defgroup Group_StdRequest Standard USB Requests
  *
- *  Functions, macros, variables, enums and types related to standard USB requests to USB devices.
+ *  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/HighLevel/StreamCallbacks.h b/LUFA/Drivers/USB/HighLevel/StreamCallbacks.h
index 300a3f217..26f150350 100644
--- a/LUFA/Drivers/USB/HighLevel/StreamCallbacks.h
+++ b/LUFA/Drivers/USB/HighLevel/StreamCallbacks.h
@@ -27,18 +27,13 @@
   arising out of or in connection with the use or performance of
   this software.
 */
-
-/** \file
- *
- *  Macros and enums for the stream callback routines in Endpoint.h and Pipe.c. This module contains the
- *  code required to easily set up stream callback functions which can be used to force early abort of a
- *  stream read/write process.
- */
  
 /** \ingroup Group_USB
  *  @defgroup Group_StreamCallbacks Endpoint and Pipe Stream Callbacks
  *
- *  Functions, macros, variables, enums and types related to endpoint and pipe stream callback functions.
+ *  Macros and enums for the stream callback routines in Endpoint.h and Pipe.c. This module contains the
+ *  code required to easily set up stream callback functions which can be used to force early abort of a
+ *  stream read/write process.
  *
  *  @{
  */
diff --git a/LUFA/Drivers/USB/HighLevel/USBInterrupt.h b/LUFA/Drivers/USB/HighLevel/USBInterrupt.h
index 65e0b5fb1..56297e3d4 100644
--- a/LUFA/Drivers/USB/HighLevel/USBInterrupt.h
+++ b/LUFA/Drivers/USB/HighLevel/USBInterrupt.h
@@ -28,16 +28,12 @@
   this software.
 */
 
-/** \file
- *
- *  Main USB interrupt vector handler. This file manages the main USB interrupt vector, for handling such
- *  events as VBUS interrupts (on supported USB AVR models), device connections and disconnections, etc.
- */
-
 /** \ingroup Group_USB
  *  @defgroup Group_USBInterrupt Endpoint and Pipe Interrupts
  *
- *  Functions, macros, variables, enums and types related to endpoint and pipe interrupts.
+ *  Main USB interrupt vector handler. This file manages the main USB interrupt vector, for handling such
+ *  events as VBUS interrupts (on supported USB AVR models), device connections and disconnections, etc.
+ *  as well as providing easy to use macros for the management of the Endpoint/Pipe interrupt vector.
  *
  *  @{
  */
diff --git a/LUFA/Drivers/USB/HighLevel/USBTask.h b/LUFA/Drivers/USB/HighLevel/USBTask.h
index bcf117ddb..637872291 100644
--- a/LUFA/Drivers/USB/HighLevel/USBTask.h
+++ b/LUFA/Drivers/USB/HighLevel/USBTask.h
@@ -27,12 +27,6 @@
   arising out of or in connection with the use or performance of
   this software.
 */
-
-/** \file
- *
- *  Main library USB management task for both Host and Device mode operations. This contains the master
- *  USB_USBTask task which should be periodically run to service both host and device USB projects.
- */
  
 #ifndef __USBTASK_H__
 #define __USBTASK_H__
diff --git a/LUFA/Drivers/USB/LowLevel/DevChapter9.h b/LUFA/Drivers/USB/LowLevel/DevChapter9.h
index 6571659c1..23b7b4620 100644
--- a/LUFA/Drivers/USB/LowLevel/DevChapter9.h
+++ b/LUFA/Drivers/USB/LowLevel/DevChapter9.h
@@ -28,14 +28,6 @@
   this software.
 */
 
-/** \file
- *
- *  Module for device mode request processing. This module allows for the processing of standard control
- *  requests to the default control endpoint while in device mode.
- *
- *  \see Chapter 9 of the USB 2.0 specification.
- */
-
 #ifndef __DEVCHAPTER9_H__
 #define __DEVCHAPTER9_H__
 
diff --git a/LUFA/Drivers/USB/LowLevel/Device.h b/LUFA/Drivers/USB/LowLevel/Device.h
index 8a2ee00c3..3c2bb3697 100644
--- a/LUFA/Drivers/USB/LowLevel/Device.h
+++ b/LUFA/Drivers/USB/LowLevel/Device.h
@@ -27,17 +27,12 @@
   arising out of or in connection with the use or performance of
   this software.
 */
-
-/** \file
- *
- *  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.
- */
  
 /** \ingroup Group_USB
  *  @defgroup Group_Device Device Management
  *
- *  Functions, macros, variables, enums and types related to the management of a USB device when in Device mode.
+ *  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.
  *
  *  @{
  */
diff --git a/LUFA/Drivers/USB/LowLevel/Endpoint.h b/LUFA/Drivers/USB/LowLevel/Endpoint.h
index a7a282258..651c0e8e6 100644
--- a/LUFA/Drivers/USB/LowLevel/Endpoint.h
+++ b/LUFA/Drivers/USB/LowLevel/Endpoint.h
@@ -28,17 +28,12 @@
   this software.
 */
 
-/** \file
+/** \ingroup Group_USB
+ *  @defgroup Group_EndpointManagement Endpoint Management
  *
  *  Functions, macros and enums related to endpoint management when in USB Device mode. This
  *  module contains the endpoint management macros, as well as endpoint interrupt and data
  *  send/recieve functions for various data types.
- */
-
-/** \ingroup Group_USB
- *  @defgroup Group_EndpointManagement Endpoint Management
- *
- *  Functions, macros, variables, enums and types related to the setup and management of endpoints while in USB Device mode.
  *
  *  @{
  */
diff --git a/LUFA/Drivers/USB/LowLevel/Host.h b/LUFA/Drivers/USB/LowLevel/Host.h
index 1ff2d7ab2..82cceb2c0 100644
--- a/LUFA/Drivers/USB/LowLevel/Host.h
+++ b/LUFA/Drivers/USB/LowLevel/Host.h
@@ -28,16 +28,11 @@
   this software.
 */
 
-/** \file
- *
- *  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.
- */
-
 /** \ingroup Group_USB
  *  @defgroup Group_Host Host Management
  *
- *  Functions, macros, variables, enums and types related to the management of a USB host when in Host mode.
+ *  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/LowLevel/HostChapter9.h b/LUFA/Drivers/USB/LowLevel/HostChapter9.h
index 8e7695b34..c2c4ece7a 100644
--- a/LUFA/Drivers/USB/LowLevel/HostChapter9.h
+++ b/LUFA/Drivers/USB/LowLevel/HostChapter9.h
@@ -28,14 +28,6 @@
   this software.
 */
 
-/** \file
- *
- *  Module for host mode request processing. This module allows for the transmission of standard, class and
- *  vendor control requests to the default control endpoint of an attached device while in host mode.
- *
- *  \see Chapter 9 of the USB 2.0 specification.
- */
-
 #ifndef __HOSTCHAPTER9_H__
 #define __HOSTCHAPTER9_H__
 
diff --git a/LUFA/Drivers/USB/LowLevel/LowLevel.h b/LUFA/Drivers/USB/LowLevel/LowLevel.h
index a6f506f3b..5c474df70 100644
--- a/LUFA/Drivers/USB/LowLevel/LowLevel.h
+++ b/LUFA/Drivers/USB/LowLevel/LowLevel.h
@@ -28,12 +28,6 @@
   this software.
 */
 
-/** \file
- *
- *  Main low level USB driver. This module manages the low level initialization and shut down of the USB AVR's
- *  USB interface in either device or (if supported) host mode.
- */
-
 /** \ingroup Group_USB
  *  @defgroup Group_USBManagement USB Interface Management
  *
diff --git a/LUFA/Drivers/USB/LowLevel/OTG.h b/LUFA/Drivers/USB/LowLevel/OTG.h
index caef82cb6..da303c909 100644
--- a/LUFA/Drivers/USB/LowLevel/OTG.h
+++ b/LUFA/Drivers/USB/LowLevel/OTG.h
@@ -27,19 +27,13 @@
   arising out of or in connection with the use or performance of
   this software.
 */
-
-/** \file
- *
- *  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.
- *
- *  \note These macros are only for AVRs which support the OTG protocol, and do not exist for device-only AVRs.
- */
  
 /** \ingroup Group_USB
  *  @defgroup Group_OTGManagement USB On The Go (OTG) Management
  *
- *  Functions, macros, variables, enums and types related to the setup and management of dual role devices.
+ *  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.
  *
  *  @{
  */
diff --git a/LUFA/Drivers/USB/LowLevel/Pipe.h b/LUFA/Drivers/USB/LowLevel/Pipe.h
index 9d8dded04..15be81e13 100644
--- a/LUFA/Drivers/USB/LowLevel/Pipe.h
+++ b/LUFA/Drivers/USB/LowLevel/Pipe.h
@@ -27,18 +27,13 @@
   arising out of or in connection with the use or performance of
   this software.
 */
-
-/** \file
- *
- *  Functions, macros and enums related to pipe management when in USB Host mode. This
- *  module contains the pipe management macros, as well as pipe interrupt and data
- *  send/recieve functions for various data types.
- */
  
 /** \ingroup Group_USB
  *  @defgroup Group_PipeManagement Pipe Management
  *
- *  Functions, macros, variables, enums and types related to the setup and management of pipes while in USB Device mode.
+ *  This module contains functions, macros and enums related to pipe management when in USB Host mode. This
+ *  module contains the pipe management macros, as well as pipe interrupt and data send/recieve functions
+ *  for various data types.
  *
  *  @{
  */
@@ -55,8 +50,11 @@
  
 /** @defgroup Group_PipeControlReq Pipe Control Request Management
  *
- *  Functions, macros, variables, enums and types related to control request management of pipes.
- */
+ *  Module for host mode request processing. This module allows for the transmission of standard, class and
+ *  vendor control requests to the default control endpoint of an attached device while in host mode.
+ *
+ *  \see Chapter 9 of the USB 2.0 specification.
+ */ 
 
 #ifndef __PIPE_H__
 #define __PIPE_H__
diff --git a/LUFA/Drivers/USB/USB.h b/LUFA/Drivers/USB/USB.h
index 4d1408849..e0d812787 100644
--- a/LUFA/Drivers/USB/USB.h
+++ b/LUFA/Drivers/USB/USB.h
@@ -33,13 +33,26 @@
  *  Master include file for the library USB functionality. This file should be included in all user projects making
  *  use of the USB portions of the library, instead of including any headers in the USB/LowLevel or USB/HighLevel
  *  directories.
- *
- *  Class specific utility files in USB/Class/ must still be included manually, as they are not normally part of
- *  the USB library unless desired by the library user.
  */
 
 /** @defgroup Group_USB USB - LUFA/Drivers/USB/USB.h
  *
+ *  \section Sec_Dependencies Module Source Dependencies
+ *  The following files must be built with any user project that uses this module:
+ *    - LUFA/Drivers/USB/LowLevel/DevChapter9.c
+ *    - LUFA/Drivers/USB/LowLevel/Endpoint.c
+ *    - LUFA/Drivers/USB/LowLevel/Host.c
+ *    - LUFA/Drivers/USB/LowLevel/HostChapter9.c
+ *    - LUFA/Drivers/USB/LowLevel/LowLevel.c
+ *    - LUFA/Drivers/USB/LowLevel/Pipe.c
+ *    - LUFA/Drivers/USB/HighLevel/Events.c
+ *    - LUFA/Drivers/USB/HighLevel/StdDescriptors.c
+ *    - LUFA/Drivers/USB/HighLevel/USBInterrupt.c
+ *    - LUFA/Drivers/USB/HighLevel/USBTask.c
+ *    - LUFA/Drivers/USB/Class/ConfigDescriptor.c
+ *    - LUFA/Drivers/USB/Class/HIDParser.c
+ *
+ *  \section Module Description
  *  Functions, macros, variables, enums and types related to the management of USB communications.
  */
 
diff --git a/LUFA/Groups.txt b/LUFA/Groups.txt
index dec615bf8..f479b51db 100644
--- a/LUFA/Groups.txt
+++ b/LUFA/Groups.txt
@@ -9,7 +9,7 @@
  *  Functions, macros, variables, enums and types related to the control of physical board hardware.
  */
 
-/** @defgroup Group_ChipPeripheralDrivers On-chip Peripheral Drivers
+/** @defgroup Group_PeripheralDrivers On-chip Peripheral Drivers
  *
  *  Functions, macros, variables, enums and types related to the control of AVR subsystems.
  */
diff --git a/LUFA/MemoryAllocator/DynAlloc.h b/LUFA/MemoryAllocator/DynAlloc.h
index d53b8bb30..acbfbd18a 100644
--- a/LUFA/MemoryAllocator/DynAlloc.h
+++ b/LUFA/MemoryAllocator/DynAlloc.h
@@ -33,6 +33,18 @@
  *  Dynamic, auto-defragmenting block memory allocator library. This library provides a convenient replacement for
  *  the standard avr-libc dynamic memory allocation routines. Memory is handed out in block chunks, to reduce the
  *  management memory overhead.
+ */
+
+/** @defgroup Group_MemoryAllocator Dynamic Block Memory Allocator - LUFA/MemoryAllocator/DynAlloc.h
+ *
+ *  \section Sec_Dependencies Module Source Dependencies
+ *  The following files must be built with any user project that uses this module:
+ *    - LUFA/MemoryAllocator/DynAlloc.c
+ *
+ *  \section Module Description
+ *  Dynamic, auto-defragmenting block memory allocator library. This library provides a convenient replacement for
+ *  the standard avr-libc dynamic memory allocation routines. Memory is handed out in block chunks, to reduce the
+ *  management memory overhead.
  *
  *  Unlike the normal memory allocation routines, this library gives out handles to memory which must be dereferenced
  *  at the exact time of use, rather than handing back direct memory pointers. By using library managed handles
@@ -48,12 +60,7 @@
  *  NUM_BLOCKS indicates the number of memory blocks in the memory psudoheap which can be chained together and handed
  *  to the application via a memory handle. NUM_HANDLES is the maximum number of memory handles (pointing to one or
  *  more chained memory blocks) which can be handed out simultaneously before requiring a handle (and its associated
- *  memory) to be freed. BLOCK_SIZE gives the number of bytes in each memory block.
- */
-
-/** @defgroup Group_MemoryAllocator Dynamic Block Memory Allocator - LUFA/MemoryAllocator/DynAlloc.h
- *
- *  Dynamic auto-degragmenting memory block allocator functions. See DynAlloc.h description for more details.
+ *  memory) to be freed. BLOCK_SIZE gives the number of bytes in each memory block. 
  *
  *  @{
  */
diff --git a/LUFA/Scheduler/Scheduler.h b/LUFA/Scheduler/Scheduler.h
index 904380cd3..38e973672 100644
--- a/LUFA/Scheduler/Scheduler.h
+++ b/LUFA/Scheduler/Scheduler.h
@@ -32,6 +32,17 @@
  *
  *  Simple round-robbin cooperative scheduler for use in basic projects where non real-time tasks need
  *  to be executed. Each task is executed in sequence, and can be enabled or disabled individually or as a group.
+ */
+ 
+/** @defgroup Group_Scheduler Simple Task Scheduler - LUFA/Scheduler/Scheduler.h
+ *
+ *  \section Sec_Dependencies Module Source Dependencies
+ *  The following files must be built with any user project that uses this module:
+ *    - LUFA/Scheduler/Scheduler.c
+ *
+ *  \section Module Description
+ *  Simple round-robbin cooperative scheduler for use in basic projects where non real-time tasks need
+ *  to be executed. Each task is executed in sequence, and can be enabled or disabled individually or as a group.
  *
  *  For a task to yield it must return, thus each task should have persistent data marked with the static attribute.
  *
@@ -63,11 +74,6 @@
  *      	// Implementation Here
  *      }
  *  \endcode
- */
- 
-/** @defgroup Group_Scheduler Simple Task Scheduler - LUFA/Scheduler/Scheduler.h
- *
- *  Simple round-robbin task scheduler. See Scheduler.h description for more details.
  *
  *  @{
  */
diff --git a/Projects/Magstripe/makefile b/Projects/Magstripe/makefile
index 908a626f2..979952d42 100644
--- a/Projects/Magstripe/makefile
+++ b/Projects/Magstripe/makefile
@@ -127,13 +127,18 @@ SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
 	  CircularBitBuffer.c                                         \
 	  $(LUFA_PATH)/LUFA/Scheduler/Scheduler.c                     \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
-	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Host.c               \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/HostChapter9.c       \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/LowLevel.c           \
+ 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Pipe.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/Events.c            \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/StdDescriptors.c    \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBInterrupt.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/USBTask.c           \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/ConfigDescriptor.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/HIDParser.c             \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
-- 
GitLab