summaryrefslogtreecommitdiff
path: root/firmware/src/os/pcd_enumerate.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/src/os/pcd_enumerate.c')
-rw-r--r--firmware/src/os/pcd_enumerate.c101
1 files changed, 4 insertions, 97 deletions
diff --git a/firmware/src/os/pcd_enumerate.c b/firmware/src/os/pcd_enumerate.c
index 5fc47a3..ab000c7 100644
--- a/firmware/src/os/pcd_enumerate.c
+++ b/firmware/src/os/pcd_enumerate.c
@@ -85,106 +85,13 @@ static const struct dfuapi *dfu = DFU_API_LOCATION;
#error non-DFU builds currently not supported (yet) again
#endif
-static struct udp_pcd upcd;
-
-const struct usb_device_descriptor dev_descriptor = {
- .bLength = USB_DT_DEVICE_SIZE,
- .bDescriptorType = USB_DT_DEVICE,
- .bcdUSB = 0x0100,
- .bDeviceClass = USB_CLASS_VENDOR_SPEC,
- .bDeviceSubClass = 0xff,
- .bDeviceProtocol = 0xff,
- .bMaxPacketSize0 = 0x08,
- .idVendor = USB_VENDOR_ID,
- .idProduct = USB_PRODUCT_ID,
- .bcdDevice = 0x0030, /* Version 0.3 */
-#ifdef CONFIG_USB_STRING
- .iManufacturer = 3,
- .iProduct = 4,
- .iSerialNumber = 0,
+#ifdef CONFIG_USB_HID
+#include "usb_descriptors_hid.h"
#else
- .iManufacturer = 0,
- .iProduct = 0,
- .iSerialNumber = 0,
-#endif
- .bNumConfigurations = 0x01,
-};
-
-struct _desc {
- struct usb_config_descriptor ucfg;
- struct usb_interface_descriptor uif;
- struct usb_endpoint_descriptor ep[3];
-#ifdef CONFIG_DFU
- struct usb_interface_descriptor uif_dfu[2];
+#include "usb_descriptors_openpcd.h"
#endif
-};
-const struct _desc cfg_descriptor = {
- .ucfg = {
- .bLength = USB_DT_CONFIG_SIZE,
- .bDescriptorType = USB_DT_CONFIG,
- .wTotalLength = USB_DT_CONFIG_SIZE +
-#ifdef CONFIG_DFU
- 3 * USB_DT_INTERFACE_SIZE +
- 3 * USB_DT_ENDPOINT_SIZE,
- .bNumInterfaces = 3,
-#else
- 1 * USB_DT_INTERFACE_SIZE +
- 3 * USB_DT_ENDPOINT_SIZE,
- .bNumInterfaces = 1,
-#endif
- .bConfigurationValue = 1,
-#ifdef CONFIG_USB_STRING
- .iConfiguration = 5,
-#else
- .iConfiguration = 0,
-#endif
- .bmAttributes = USB_CONFIG_ATT_ONE,
- .bMaxPower = 250, /* 500mA */
- },
- .uif = {
- .bLength = USB_DT_INTERFACE_SIZE,
- .bDescriptorType = USB_DT_INTERFACE,
- .bInterfaceNumber = 0,
- .bAlternateSetting = 0,
- .bNumEndpoints = 3,
- .bInterfaceClass = USB_CLASS_VENDOR_SPEC,
- .bInterfaceSubClass = 0,
- .bInterfaceProtocol = 0xff,
-#ifdef CONFIG_SB_STRING
- .iInterface = 6,
-#else
- .iInterface = 0,
-#endif
- },
- .ep= {
- {
- .bLength = USB_DT_ENDPOINT_SIZE,
- .bDescriptorType = USB_DT_ENDPOINT,
- .bEndpointAddress = OPENPCD_OUT_EP,
- .bmAttributes = USB_ENDPOINT_XFER_BULK,
- .wMaxPacketSize = AT91C_EP_OUT_SIZE,
- .bInterval = 0x00,
- }, {
- .bLength = USB_DT_ENDPOINT_SIZE,
- .bDescriptorType = USB_DT_ENDPOINT,
- .bEndpointAddress = OPENPCD_IN_EP,
- .bmAttributes = USB_ENDPOINT_XFER_BULK,
- .wMaxPacketSize = AT91C_EP_IN_SIZE,
- .bInterval = 0x00,
- }, {
- .bLength = USB_DT_ENDPOINT_SIZE,
- .bDescriptorType = USB_DT_ENDPOINT,
- .bEndpointAddress = OPENPCD_IRQ_EP,
- .bmAttributes = USB_ENDPOINT_XFER_INT,
- .wMaxPacketSize = AT91C_EP_IN_SIZE,
- .bInterval = 0xff, /* FIXME */
- },
- },
-#ifdef CONFIG_DFU
- .uif_dfu = DFU_RT_IF_DESC,
-#endif
-};
+static struct udp_pcd upcd;
struct epstate {
u_int32_t state_busy;
personal git repositories of Harald Welte. Your mileage may vary