altos/kernel: Add USB descriptors for IN3
authorKeith Packard <keithp@keithp.com>
Mon, 7 May 2018 04:17:32 +0000 (21:17 -0700)
committerKeith Packard <keithp@keithp.com>
Mon, 7 May 2018 16:22:01 +0000 (09:22 -0700)
This adds the necessary descriptor information to support another IN
endpoint for applications.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/kernel/ao_product.c

index c4df9f264aa6f0d284ddb53e26896f4535cf2c16..4c2d83efcaba5ebb3bc224c5bae5261c28f17460 100644 (file)
@@ -55,7 +55,7 @@ const char ao_product[] = AO_iProduct_STRING;
 
 #define HEADER_LEN             9
 #define CONTROL_CLASS_LEN      35
-#define DATA_LEN               (9 + 7 * AO_USB_HAS_OUT + 7 * AO_USB_HAS_IN + 7 * AO_USB_HAS_IN2)
+#define DATA_LEN               (9 + 7 * AO_USB_HAS_OUT + 7 * AO_USB_HAS_IN + 7 * AO_USB_HAS_IN2 + 7 * AO_USB_HAS_IN3)
 
 #define TOTAL_LENGTH           (HEADER_LEN + AO_USB_HAS_INT * CONTROL_CLASS_LEN + DATA_LEN)
 #define NUM_INTERFACES         (AO_USB_HAS_INT + 1)
@@ -141,7 +141,7 @@ AO_ROMCONFIG_SYMBOL(0x00aa) uint8_t ao_usb_descriptors [] =
        AO_USB_DESC_INTERFACE,
        AO_USB_HAS_INT,                 /* bInterfaceNumber */
        0x00,                           /* bAlternateSetting */
-       AO_USB_HAS_OUT + AO_USB_HAS_IN + AO_USB_HAS_IN2       /* bNumEndPoints */
+       AO_USB_HAS_OUT + AO_USB_HAS_IN + AO_USB_HAS_IN2 + AO_USB_HAS_IN3,       /* bNumEndPoints */
        AO_USB_INTERFACE_CLASS_DATA,    /* bInterfaceClass = data */
        0x00,                           /* bInterfaceSubClass */
        0x00,                           /* bInterfaceProtocol */
@@ -177,6 +177,16 @@ AO_ROMCONFIG_SYMBOL(0x00aa) uint8_t ao_usb_descriptors [] =
        0x00,                   /* bInterval */
 #endif
 
+#if AO_USB_HAS_IN3
+       /* Data EP in 3 */
+       0x07,
+       AO_USB_DESC_ENDPOINT,
+       AO_USB_IN3_EP|0x80,     /* bEndpointAddress */
+       0x02,                   /* bmAttributes = bulk */
+       LE_WORD(AO_USB_IN_SIZE),/* wMaxPacketSize */
+       0x00,                   /* bInterval */
+#endif
+
        /* String descriptors */
        0x04,
        AO_USB_DESC_STRING,