/* ES1 AP Bridge Chip USB descriptor definitions */ static const u8 es1_dev_descriptor[] = { 0x12, /* __u8 bLength */ 0x01, /* __u8 bDescriptorType; Device */ 0x00, 0x02 /* __le16 bcdUSB v2.0 */ 0x00, /* __u8 bDeviceClass */ 0x00, /* __u8 bDeviceClass */ 0x00, /* __u8 bDeviceSubClass; */ 0x00, /* __u8 bDeviceProtocol; */ 0x40, /* __u8 bMaxPacketSize0; 2^64 = 512 Bytes */ 0xff, 0xff, /* __le16 idVendor; 0xffff made up for now */ 0x01, 0x00, /* __le16 idProduct; 0x0001 made up for now */ 0x01, 0x00, /* __le16 bcdDevice; ES1 */ 0x03, /* __u8 iManufacturer; */ 0x02, /* __u8 iProduct; */ 0x01, /* __u8 iSerialNumber; */ 0x01 /* __u8 bNumConfigurations; */ }; static const u8 es1_config_descriptor[] = { /* one configuration */ 0x09, /* __u8 bLength; */ 0x02, /* __u8 bDescriptorType; Configuration */ 0x19, 0x00, /* __le16 wTotalLength; */ 0x01, /* __u8 bNumInterfaces; (1) */ 0x01, /* __u8 bConfigurationValue; */ 0x00, /* __u8 iConfiguration; */ 0xc0, /* __u8 bmAttributes; Bit 7: must be set, 6: Self-powered, 5: Remote wakeup, 4..0: resvd */ 0x00, /* __u8 MaxPower; */ /* one interface */ 0x09, /* __u8 if_bLength; */ 0x04, /* __u8 if_bDescriptorType; Interface */ 0x00, /* __u8 if_bInterfaceNumber; */ 0x00, /* __u8 if_bAlternateSetting; */ 0x03, /* __u8 if_bNumEndpoints; */ 0xff, /* __u8 if_bInterfaceClass; Vendor-specific */ 0xff, /* __u8 if_bInterfaceSubClass; Vendor-specific */ 0xff, /* __u8 if_bInterfaceProtocol; Vendor-specific */ 0x00, /* __u8 if_iInterface; */ /* three endpoints */ 0x07, /* __u8 ep_bLength; */ 0x05, /* __u8 ep_bDescriptorType; Endpoint */ 0x81, /* __u8 ep_bEndpointAddress; IN Endpoint 1 */ 0x03, /* __u8 ep_bmAttributes; Interrupt */ 0x00, 0x04, /* __le16 ep_wMaxPacketSize; 1024 */ 0x40, /* __u8 ep_bInterval; 64ms */ 0x07, /* __u8 ep_bLength; */ 0x05, /* __u8 ep_bDescriptorType; Endpoint */ 0x82, /* __u8 ep_bEndpointAddress; IN Endpoint 2 */ 0x02, /* __u8 ep_bmAttributes; Bulk */ 0x00, 0x04, /* __le16 ep_wMaxPacketSize; 1024 */ 0x40 /* __u8 ep_bInterval; */ 0x07, /* __u8 ep_bLength; */ 0x05, /* __u8 ep_bDescriptorType; Endpoint */ 0x02, /* __u8 ep_bEndpointAddress; Out Endpoint 2 */ 0x02, /* __u8 ep_bmAttributes; Bulk */ 0x00, 0x04, /* __le16 ep_wMaxPacketSize; 1024 */ 0x40 /* __u8 ep_bInterval; */ };