diff --git a/BuildTests/BootloaderTest/BootloaderDeviceMap.cfg b/BuildTests/BootloaderTest/BootloaderDeviceMap.cfg
index 8a023f55c5b02c50f400d4c29a122c93a4503d67..a95793ccc340074eac48ad826f017cd433c7fb67 100644
--- a/BuildTests/BootloaderTest/BootloaderDeviceMap.cfg
+++ b/BuildTests/BootloaderTest/BootloaderDeviceMap.cfg
@@ -5,6 +5,7 @@ CDC = avr8 : at90usb1287 : NONE : 128 : 8 :
 CDC = avr8 : at90usb647  : NONE :  64 : 4 :
 CDC = avr8 : at90usb1286 : NONE : 128 : 8 :
 CDC = avr8 : at90usb646  : NONE :  64 : 4 :
+CDC = avr8 : atmega32u6  : NONE :  32 : 4 :
 CDC = avr8 : atmega32u4  : NONE :  32 : 4 :
 CDC = avr8 : atmega16u4  : NONE :  16 : 4 :
 CDC = avr8 : atmega32u2  : NONE :  32 : 4 :
diff --git a/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.c b/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.c
index 4216d56319e3379660f069848d426761cb7441cf..6a8727f82904d4ae595defaee1ce10cf287f6043 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.c
+++ b/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.c
@@ -30,6 +30,7 @@
 
 #if defined(TEMPLATE_FUNC_NAME)
 
+// cppcheck-suppress unusedFunction
 uint8_t TEMPLATE_FUNC_NAME (void* const Buffer,
                             uint16_t Length)
 {
diff --git a/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.c b/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.c
index 1c0d5260e7313d2fcfb02b36cdede8f273946595..a8efc67fc27b36ede0fcaff31477c3e81f89f8c3 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.c
+++ b/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.c
@@ -30,6 +30,7 @@
 
 #if defined(TEMPLATE_FUNC_NAME)
 
+// cppcheck-suppress unusedFunction
 uint8_t TEMPLATE_FUNC_NAME (const void* const Buffer,
                             uint16_t Length)
 {
diff --git a/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.c b/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.c
index bc685ab6c6d0f82ea57dc5a66f79f7f0fb990133..bcb35610f3c695f97278d16b93fd8b458598e88e 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.c
+++ b/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.c
@@ -30,6 +30,7 @@
 
 #if defined(TEMPLATE_FUNC_NAME)
 
+// cppcheck-suppress unusedFunction
 uint8_t TEMPLATE_FUNC_NAME (TEMPLATE_BUFFER_TYPE const Buffer,
                             uint16_t Length,
                             uint16_t* const BytesProcessed)
diff --git a/LUFA/Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.c b/LUFA/Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.c
index a49102b48b679211bee68915ba39629ea1d6ba78..7d77957b7cedf210a7c13081d29ebf700ea1561d 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.c
+++ b/LUFA/Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.c
@@ -30,6 +30,7 @@
 
 #if defined(TEMPLATE_FUNC_NAME)
 
+// cppcheck-suppress unusedFunction
 uint8_t TEMPLATE_FUNC_NAME (TEMPLATE_BUFFER_TYPE const Buffer,
                             uint16_t Length,
                             uint16_t* const BytesProcessed)
diff --git a/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.c b/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.c
index 4216d56319e3379660f069848d426761cb7441cf..6a8727f82904d4ae595defaee1ce10cf287f6043 100644
--- a/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.c
+++ b/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.c
@@ -30,6 +30,7 @@
 
 #if defined(TEMPLATE_FUNC_NAME)
 
+// cppcheck-suppress unusedFunction
 uint8_t TEMPLATE_FUNC_NAME (void* const Buffer,
                             uint16_t Length)
 {
diff --git a/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.c b/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.c
index 1c0d5260e7313d2fcfb02b36cdede8f273946595..a8efc67fc27b36ede0fcaff31477c3e81f89f8c3 100644
--- a/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.c
+++ b/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.c
@@ -30,6 +30,7 @@
 
 #if defined(TEMPLATE_FUNC_NAME)
 
+// cppcheck-suppress unusedFunction
 uint8_t TEMPLATE_FUNC_NAME (const void* const Buffer,
                             uint16_t Length)
 {
diff --git a/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.c b/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.c
index bc685ab6c6d0f82ea57dc5a66f79f7f0fb990133..bcb35610f3c695f97278d16b93fd8b458598e88e 100644
--- a/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.c
+++ b/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.c
@@ -30,6 +30,7 @@
 
 #if defined(TEMPLATE_FUNC_NAME)
 
+// cppcheck-suppress unusedFunction
 uint8_t TEMPLATE_FUNC_NAME (TEMPLATE_BUFFER_TYPE const Buffer,
                             uint16_t Length,
                             uint16_t* const BytesProcessed)
diff --git a/LUFA/Drivers/USB/Core/UC3/Template/Template_Pipe_RW.c b/LUFA/Drivers/USB/Core/UC3/Template/Template_Pipe_RW.c
index a49102b48b679211bee68915ba39629ea1d6ba78..7d77957b7cedf210a7c13081d29ebf700ea1561d 100644
--- a/LUFA/Drivers/USB/Core/UC3/Template/Template_Pipe_RW.c
+++ b/LUFA/Drivers/USB/Core/UC3/Template/Template_Pipe_RW.c
@@ -30,6 +30,7 @@
 
 #if defined(TEMPLATE_FUNC_NAME)
 
+// cppcheck-suppress unusedFunction
 uint8_t TEMPLATE_FUNC_NAME (TEMPLATE_BUFFER_TYPE const Buffer,
                             uint16_t Length,
                             uint16_t* const BytesProcessed)
diff --git a/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.c b/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.c
index d0d684d0aed1479535ab101c9f5912bcd47825e6..15e1d24f04952f2d9aabb96380d6f27e60e062df 100644
--- a/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.c
+++ b/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.c
@@ -30,6 +30,7 @@
 
 #if defined(TEMPLATE_FUNC_NAME)
 
+// cppcheck-suppress unusedFunction
 uint8_t TEMPLATE_FUNC_NAME (void* const Buffer,
                             uint16_t Length)
 {
diff --git a/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.c b/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.c
index 59252b02e6c2a0d3d52b78d9241c226dca1d2e18..10590b4012e282f6d745c9a36820fbb94ced7ef4 100644
--- a/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.c
+++ b/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.c
@@ -30,6 +30,7 @@
 
 #if defined(TEMPLATE_FUNC_NAME)
 
+// cppcheck-suppress unusedFunction
 uint8_t TEMPLATE_FUNC_NAME (const void* const Buffer,
                             uint16_t Length)
 {
diff --git a/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.c b/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.c
index bc685ab6c6d0f82ea57dc5a66f79f7f0fb990133..bcb35610f3c695f97278d16b93fd8b458598e88e 100644
--- a/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.c
+++ b/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.c
@@ -30,6 +30,7 @@
 
 #if defined(TEMPLATE_FUNC_NAME)
 
+// cppcheck-suppress unusedFunction
 uint8_t TEMPLATE_FUNC_NAME (TEMPLATE_BUFFER_TYPE const Buffer,
                             uint16_t Length,
                             uint16_t* const BytesProcessed)