diff options
| -rw-r--r-- | ports/nrf/common-hal/usb_hid/Device.h | 8 | ||||
| -rw-r--r-- | ports/nrf/common-hal/usb_hid/__init__.c | 2 | ||||
| -rw-r--r-- | ports/nrf/usb/usb_desc.c | 4 |
3 files changed, 10 insertions, 4 deletions
diff --git a/ports/nrf/common-hal/usb_hid/Device.h b/ports/nrf/common-hal/usb_hid/Device.h index 98328fab9..75dd37f92 100644 --- a/ports/nrf/common-hal/usb_hid/Device.h +++ b/ports/nrf/common-hal/usb_hid/Device.h @@ -41,8 +41,8 @@ #define USB_HID_DEVICE_MOUSE 1 #define USB_HID_DEVICE_CONSUMER 1 #define USB_HID_DEVICE_SYS_CONTROL 1 -#define USB_HID_DEVICE_GAMEPAD 0 -#define USB_HID_DEVICE_DIGITIZER 0 +#define USB_HID_DEVICE_GAMEPAD 1 +#define USB_HID_DEVICE_DIGITIZER 0 // not supported yet enum { USB_HID_REPORT_ID_UNUSED = 0, @@ -73,7 +73,7 @@ enum { }; #define USB_HID_NUM_DEVICES (USB_HID_DEVICE_KEYBOARD + USB_HID_DEVICE_MOUSE + USB_HID_DEVICE_CONSUMER + \ - USB_HID_REPORT_ID_SYS_CONTROL + USB_HID_DEVICE_GAMEPAD + USB_HID_DEVICE_DIGITIZER ) + USB_HID_DEVICE_SYS_CONTROL + USB_HID_DEVICE_GAMEPAD + USB_HID_DEVICE_DIGITIZER ) typedef struct { mp_obj_base_t base; @@ -85,7 +85,7 @@ typedef struct { } usb_hid_device_obj_t; -usb_hid_device_obj_t usb_hid_devices[USB_HID_NUM_DEVICES]; +extern usb_hid_device_obj_t usb_hid_devices[]; #ifdef __cplusplus } diff --git a/ports/nrf/common-hal/usb_hid/__init__.c b/ports/nrf/common-hal/usb_hid/__init__.c index 304c6a054..0085d688e 100644 --- a/ports/nrf/common-hal/usb_hid/__init__.c +++ b/ports/nrf/common-hal/usb_hid/__init__.c @@ -36,6 +36,8 @@ #define USB_HID_REPORT_LENGTH_MOUSE 4 #define USB_HID_REPORT_LENGTH_CONSUMER 2 #define USB_HID_REPORT_LENGTH_SYS_CONTROL 1 +#define USB_HID_REPORT_LENGTH_GAMEPAD 6 +#define USB_HID_REPORT_LENGTH_DIGITIZER 5 #if USB_HID_DEVICE_KEYBOARD static uint8_t keyboard_report_buffer[USB_HID_REPORT_LENGTH_KEYBOARD]; diff --git a/ports/nrf/usb/usb_desc.c b/ports/nrf/usb/usb_desc.c index b332ebc1b..20557cc02 100644 --- a/ports/nrf/usb/usb_desc.c +++ b/ports/nrf/usb/usb_desc.c @@ -154,6 +154,10 @@ uint8_t const usb_desc_hid_generic_report[] = HID_REPORT_DESC_SYSTEM_CONTROL( HID_REPORT_ID(USB_HID_REPORT_ID_SYS_CONTROL ), ), #endif +#if USB_HID_DEVICE_GAMEPAD + HID_REPORT_DESC_GAMEPAD( HID_REPORT_ID(USB_HID_REPORT_ID_GAMEPAD ), ) +#endif + }; //--------------------------------------------------------------------+ |
