diff --git a/include/libopencm3/usb/hid.h b/include/libopencm3/usb/hid.h
index f33c480c..92966735 100644
--- a/include/libopencm3/usb/hid.h
+++ b/include/libopencm3/usb/hid.h
@@ -55,8 +55,9 @@ LGPL License Terms @ref lgpl_license
#define USB_HID_DT_HID 0x21
#define USB_HID_DT_REPORT 0x22
#define USB_HID_DT_PHYSICAL 0x23
-/* old names without USB_HID_ prefix */
+/** @deprecated Use @ref USB_HID_DT_HID */
#define USB_DT_HID USB_HID_DT_HID
+/** @deprecated Use @ref USB_HID_DT_REPORT */
#define USB_DT_REPORT USB_HID_DT_REPORT
/* USB HID 7.2 */
diff --git a/lib/efm32/ezr32wg/Makefile b/lib/efm32/ezr32wg/Makefile
index 28026b8c..6e4e75f3 100644
--- a/lib/efm32/ezr32wg/Makefile
+++ b/lib/efm32/ezr32wg/Makefile
@@ -56,6 +56,7 @@ OBJS += usart_common.o
OBJS += wdog_common.o
OBJS += usb.o usb_control.o usb_standard.o usb_msc.o
+OBJS += usb_hid.o
OBJS += usb_efm32.o
VPATH += ../../usb:../:../../cm3:../common
diff --git a/lib/efm32/hg/Makefile b/lib/efm32/hg/Makefile
index c6f7ba5a..ebad0170 100644
--- a/lib/efm32/hg/Makefile
+++ b/lib/efm32/hg/Makefile
@@ -43,6 +43,7 @@ OBJS += gpio_common.o
OBJS += timer_common.o
OBJS += usb.o usb_control.o usb_standard.o usb_msc.o
+OBJS += usb_hid.o
OBJS += usb_dwc_common.o usb_efm32hg.o
VPATH += ../../usb:../:../../cm3:../common
diff --git a/lib/efm32/lg/Makefile b/lib/efm32/lg/Makefile
index da0ef81d..1e98e6c4 100644
--- a/lib/efm32/lg/Makefile
+++ b/lib/efm32/lg/Makefile
@@ -56,6 +56,7 @@ OBJS += usart_common.o
OBJS += wdog_common.o
OBJS += usb.o usb_control.o usb_standard.o usb_msc.o
+OBJS += usb_hid.o
OBJS += usb_efm32.o
VPATH += ../../usb:../:../../cm3:../common
diff --git a/lib/efm32/wg/Makefile b/lib/efm32/wg/Makefile
index 0df4b0b6..0f359558 100644
--- a/lib/efm32/wg/Makefile
+++ b/lib/efm32/wg/Makefile
@@ -56,6 +56,7 @@ OBJS += usart_common.o
OBJS += wdog_common.o
OBJS += usb.o usb_control.o usb_standard.o usb_msc.o
+OBJS += usb_hid.o
OBJS += usb_efm32.o
VPATH += ../../usb:../:../../cm3:../common
diff --git a/lib/lm4f/Makefile b/lib/lm4f/Makefile
index ab23f083..8d2cb21e 100644
--- a/lib/lm4f/Makefile
+++ b/lib/lm4f/Makefile
@@ -44,6 +44,7 @@ OBJS += uart.o
OBJS += vector.o
OBJS += usb.o usb_control.o usb_standard.o usb_msc.o
+OBJS += usb_hid.o
OBJS += usb_lm4f.o
VPATH += ../usb:../cm3
diff --git a/lib/stm32/f0/Makefile b/lib/stm32/f0/Makefile
index 6d832a57..da4e0326 100644
--- a/lib/stm32/f0/Makefile
+++ b/lib/stm32/f0/Makefile
@@ -55,6 +55,7 @@ OBJS += timer_common_all.o timer_common_f0234.o
OBJS += usart_common_all.o usart_common_v2.o
OBJS += usb.o usb_control.o usb_standard.o usb_msc.o
+OBJS += usb_hid.o
OBJS += st_usbfs_core.o st_usbfs_v2.o
VPATH += ../../usb:../:../../cm3:../common
diff --git a/lib/stm32/f1/Makefile b/lib/stm32/f1/Makefile
index 9154a5fe..aa3d28d0 100755
--- a/lib/stm32/f1/Makefile
+++ b/lib/stm32/f1/Makefile
@@ -56,6 +56,7 @@ OBJS += mac.o mac_stm32fxx7.o
OBJS += phy.o phy_ksz80x1.o
OBJS += usb.o usb_control.o usb_standard.o usb_msc.o
+OBJS += usb_hid.o
OBJS += usb_dwc_common.o usb_f107.o
OBJS += st_usbfs_core.o st_usbfs_v1.o
diff --git a/lib/stm32/f2/Makefile b/lib/stm32/f2/Makefile
index 290cc330..6f4a677c 100644
--- a/lib/stm32/f2/Makefile
+++ b/lib/stm32/f2/Makefile
@@ -53,6 +53,7 @@ OBJS += timer_common_all.o timer_common_f0234.o timer_common_f24.o
OBJS += usart_common_all.o usart_common_f124.o
OBJS += usb.o usb_standard.o usb_control.o usb_msc.o
+OBJS += usb_hid.o
OBJS += usb_dwc_common.o usb_f107.o usb_f207.o
VPATH += ../../usb:../:../../cm3:../common
diff --git a/lib/stm32/f3/Makefile b/lib/stm32/f3/Makefile
index c24cae90..1a56ba6a 100644
--- a/lib/stm32/f3/Makefile
+++ b/lib/stm32/f3/Makefile
@@ -53,6 +53,7 @@ OBJS += timer_common_all.o timer_common_f0234.o
OBJS += usart_common_v2.o usart_common_all.o
OBJS += usb.o usb_control.o usb_standard.o usb_msc.o
+OBJS += usb_hid.o
OBJS += st_usbfs_core.o st_usbfs_v1.o
VPATH += ../../usb:../:../../cm3:../common
diff --git a/lib/stm32/f4/Makefile b/lib/stm32/f4/Makefile
index ebcf5f78..047a72e8 100644
--- a/lib/stm32/f4/Makefile
+++ b/lib/stm32/f4/Makefile
@@ -65,6 +65,7 @@ OBJS += timer_common_all.o timer_common_f0234.o timer_common_f24.o
OBJS += usart_common_all.o usart_common_f124.o
OBJS += usb.o usb_standard.o usb_control.o usb_msc.o
+OBJS += usb_hid.o
OBJS += usb_dwc_common.o usb_f107.o usb_f207.o
OBJS += mac.o phy.o mac_stm32fxx7.o phy_ksz80x1.o
diff --git a/lib/stm32/l0/Makefile b/lib/stm32/l0/Makefile
index 764c469a..4950e602 100644
--- a/lib/stm32/l0/Makefile
+++ b/lib/stm32/l0/Makefile
@@ -54,6 +54,7 @@ OBJS += timer_common_all.o
OBJS += usart_common_all.o usart_common_v2.o
OBJS += usb.o usb_control.o usb_standard.o usb_msc.o
+OBJS += usb_hid.o
OBJS += st_usbfs_core.o st_usbfs_v2.o
VPATH += ../../usb:../:../../cm3:../common
diff --git a/lib/stm32/l1/Makefile b/lib/stm32/l1/Makefile
index b5853051..a076e5bf 100644
--- a/lib/stm32/l1/Makefile
+++ b/lib/stm32/l1/Makefile
@@ -53,6 +53,7 @@ OBJS += timer.o timer_common_all.o
OBJS += usart_common_all.o usart_common_f124.o
OBJS += usb.o usb_control.o usb_standard.o usb_msc.o
+OBJS += usb_hid.o
OBJS += st_usbfs_core.o st_usbfs_v1.o
VPATH += ../../usb:../:../../cm3:../common
diff --git a/lib/stm32/l4/Makefile b/lib/stm32/l4/Makefile
index 6a1594ff..9dc9e8d8 100644
--- a/lib/stm32/l4/Makefile
+++ b/lib/stm32/l4/Makefile
@@ -56,6 +56,7 @@ OBJS += timer_common_all.o
OBJS += usart_common_all.o usart_common_v2.o
OBJS += usb.o usb_control.o usb_standard.o usb_msc.o
+OBJS += usb_hid.o
OBJS += st_usbfs_core.o st_usbfs_v2.o
VPATH += ../../usb:../:../../cm3:../common
diff --git a/lib/usb/usb_hid.c b/lib/usb/usb_hid.c
new file mode 100644
index 00000000..ac68a3c8
--- /dev/null
+++ b/lib/usb/usb_hid.c
@@ -0,0 +1,20 @@
+/*
+ * This file is part of the libopencm3 project.
+ *
+ * This library is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library. If not, see .
+ */
+
+#include
+
+/* This stub exists just to trick doxygen. */
\ No newline at end of file