greybus: add es1_ap_desc.c to describe the ES1 USB device descriptors
authorGreg Kroah-Hartman <greg@kroah.com>
Sat, 6 Sep 2014 20:13:13 +0000 (13:13 -0700)
committerGreg Kroah-Hartman <greg@kroah.com>
Sat, 6 Sep 2014 20:13:13 +0000 (13:13 -0700)
drivers/staging/greybus/es1_ap_desc.c [new file with mode: 0644]

diff --git a/drivers/staging/greybus/es1_ap_desc.c b/drivers/staging/greybus/es1_ap_desc.c
new file mode 100644 (file)
index 0000000..eec7349
--- /dev/null
@@ -0,0 +1,63 @@
+
+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; */
+       0x02,           /*  __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; */
+
+       /* two endpoints */
+       0x07,           /*  __u8   ep_bLength; */
+       0x05,           /*  __u8   ep_bDescriptorType; Endpoint */
+       0x81,           /*  __u8   ep_bEndpointAddress; IN Endpoint 1 */
+       0x02,           /*  __u8   ep_bmAttributes; Bulk */
+       0x40, 0x00,     /*  __le16 ep_wMaxPacketSize; 64??? */
+       0x00            /*  __u8   ep_bInterval; */
+
+       0x07,           /*  __u8   ep_bLength; */
+       0x05,           /*  __u8   ep_bDescriptorType; Endpoint */
+       0x02,           /*  __u8   ep_bEndpointAddress; Out Endpoint 2 */
+       0x02,           /*  __u8   ep_bmAttributes; Bulk */
+       0x40, 0x00,     /*  __le16 ep_wMaxPacketSize; 64??? */
+       0x00            /*  __u8   ep_bInterval; */
+
+};