diff --git a/.cproject b/.cproject
index 61cf9c9bb..71b2be54b 100644
--- a/.cproject
+++ b/.cproject
@@ -42,9 +42,10 @@
-
+
@@ -56,6 +57,9 @@
+
+
+
@@ -448,6 +452,9 @@
+
+
+
diff --git a/demos/device/keyboard/.cproject b/demos/device/keyboard/.cproject
index 9d00e847e..d70252934 100644
--- a/demos/device/keyboard/.cproject
+++ b/demos/device/keyboard/.cproject
@@ -37,7 +37,7 @@
-
+
@@ -65,6 +65,7 @@
+
@@ -72,6 +73,9 @@
+
+
+
@@ -472,6 +476,9 @@
+
+
+
diff --git a/tinyusb/common/common.h b/tinyusb/common/common.h
index 9fc483b5b..de87ca1a8 100644
--- a/tinyusb/common/common.h
+++ b/tinyusb/common/common.h
@@ -43,6 +43,9 @@
#endif
#include
+#include
+#include
+
#include "arch/arch.h"
#include "compiler/compiler.h"
#include "errors.h"
diff --git a/tinyusb/device/dcd.c b/tinyusb/device/dcd.c
index c41d429fb..4ae826597 100644
--- a/tinyusb/device/dcd.c
+++ b/tinyusb/device/dcd.c
@@ -36,8 +36,11 @@
*/
#include "dcd.h"
-#include "romdriver/power_api.h"
-#define USBD_API ((*(ROM **)(0x1FFF1FF8))->pUSBD) // TODO HAL
+
+// TODO refractor later
+#include "descriptors.h"
+
+
void dcd_init()
{
@@ -55,11 +58,11 @@ void dcd_init()
USB_CORE_DESCS_T DeviceDes =
{
-// .device_desc = (uint8_t*) &USB_DeviceDescriptor,
-// .string_desc = (uint8_t*) &USB_StringDescriptor,
-// .full_speed_desc = (uint8_t*) &USB_FsConfigDescriptor,
-// .high_speed_desc = (uint8_t*) &USB_FsConfigDescriptor,
-// .device_qualifier = NULL
+ .device_desc = (uint8_t*) &USB_DeviceDescriptor,
+ .string_desc = (uint8_t*) &USB_StringDescriptor,
+ .full_speed_desc = (uint8_t*) &USB_FsConfigDescriptor,
+ .high_speed_desc = (uint8_t*) &USB_FsConfigDescriptor,
+ .device_qualifier = NULL
};
USBD_HANDLE_T g_hUsb;
diff --git a/tinyusb/device/dcd.h b/tinyusb/device/dcd.h
index d9cf2fc85..836669e7e 100644
--- a/tinyusb/device/dcd.h
+++ b/tinyusb/device/dcd.h
@@ -43,9 +43,12 @@
#endif
#include "tusb_cfg.h"
+#include "common/common.h"
#ifdef DEVICE_ROMDRIVER
#include "romdriver/mw_usbd_rom_api.h"
+#include "romdriver/power_api.h"
+#define USBD_API ((*(ROM **)(0x1FFF1FF8))->pUSBD) // TODO HAL
#endif
diff --git a/tinyusb/tusb.h b/tinyusb/tusb.h
index 2c219e58d..a793e0da0 100644
--- a/tinyusb/tusb.h
+++ b/tinyusb/tusb.h
@@ -46,7 +46,11 @@
#include "tusb_cfg.h"
#ifdef CFG_TUSB_DEVICE
-#include "device/dcd.h"
+ #include "device/dcd.h"
+#endif
+
+#if CLASS_HID
+ #include "class/hid.h"
#endif
#ifdef __cplusplus
diff --git a/tinyusb/tusb_cfg.h b/tinyusb/tusb_cfg.h
index 6b991842c..deeb8e425 100644
--- a/tinyusb/tusb_cfg.h
+++ b/tinyusb/tusb_cfg.h
@@ -47,6 +47,11 @@
#define CFG_TUSB_HOST
#define CFG_TUSB_DEVICE
+#define CFG_USB_HID_KEYBOARD
+
+#define CLASS_HID (defined CFG_USB_HID_KEYBOARD)
+
+
// TODO APP
#define USB_MAX_IF_NUM 8
#define USB_MAX_EP_NUM 5