40 lines
1.3 KiB
C
40 lines
1.3 KiB
C
#include "usb_device_config.h"
|
|
#include "usb.h"
|
|
#include "usb_device.h"
|
|
#include "include/usb/usb_device_class.h"
|
|
#include "include/usb/usb_device_hid.h"
|
|
#include "usb_descriptor_device.h"
|
|
#include "usb_class_keyboard.h"
|
|
|
|
static usb_device_endpoint_struct_t UsbKeyboardEndpoints[USB_KEYBOARD_ENDPOINT_COUNT] = {{
|
|
USB_KEYBOARD_ENDPOINT_ID | (USB_IN << USB_DESCRIPTOR_ENDPOINT_ADDRESS_DIRECTION_SHIFT),
|
|
USB_ENDPOINT_INTERRUPT,
|
|
USB_KEYBOARD_INTERRUPT_IN_PACKET_SIZE,
|
|
}};
|
|
|
|
static usb_device_interface_struct_t UsbKeyboardInterface[] = {{
|
|
USB_KEYBOARD_INTERFACE_ALTERNATE_SETTING,
|
|
{USB_KEYBOARD_ENDPOINT_COUNT, UsbKeyboardEndpoints},
|
|
NULL,
|
|
}};
|
|
|
|
static usb_device_interfaces_struct_t UsbKeyboardInterfaces[USB_KEYBOARD_INTERFACE_COUNT] = {{
|
|
USB_KEYBOARD_CLASS,
|
|
USB_KEYBOARD_SUBCLASS,
|
|
USB_KEYBOARD_PROTOCOL,
|
|
USB_KEYBOARD_INTERFACE_INDEX,
|
|
UsbKeyboardInterface,
|
|
sizeof(UsbKeyboardInterface) / sizeof(usb_device_interfaces_struct_t),
|
|
}};
|
|
|
|
static usb_device_interface_list_t UsbKeyboardInterfaceList[USB_DEVICE_CONFIGURATION_COUNT] = {{
|
|
USB_KEYBOARD_INTERFACE_COUNT,
|
|
UsbKeyboardInterfaces,
|
|
}};
|
|
|
|
usb_device_class_struct_t UsbKeyboardClass = {
|
|
UsbKeyboardInterfaceList,
|
|
kUSB_DeviceClassTypeHid,
|
|
USB_DEVICE_CONFIGURATION_COUNT,
|
|
};
|