Example #1
0
    {
        sizeof(HIDDescriptor1),
        HIDGenericDescriptor_HID,
        HIDDescriptor_HID1_11,
        0, /* Device is not localized, no country code */
        1, /* One HID-specific descriptor (apart from this one) */
        HIDGenericDescriptor_REPORT,
        HIDDTransferDriver_REPORTDESCRIPTORSIZE
    },
    /* Interrupt IN endpoint descriptor */

    {
        sizeof(USBEndpointDescriptor),
        USBGenericDescriptor_ENDPOINT,
        USBEndpointDescriptor_ADDRESS(
            USBEndpointDescriptor_IN,
            HIDDTransferDriverDescriptors_INTERRUPTIN),
        USBEndpointDescriptor_INTERRUPT,
        MIN(CHIP_USB_ENDPOINTS_MAXPACKETSIZE(
                        HIDDTransferDriverDescriptors_INTERRUPTIN),
            MIN(USBEndpointDescriptor_MAXINTERRUPTSIZE_FS,
                                   HIDDTransferDriver_REPORTSIZE)),
        HIDDTransferDriverDescriptors_INTERRUPTIN_POLLING
    },
    /* Interrupt OUT endpoint descriptor */

    {
        sizeof(USBEndpointDescriptor),
        USBGenericDescriptor_ENDPOINT,
        USBEndpointDescriptor_ADDRESS(
            USBEndpointDescriptor_OUT,
Example #2
0
     CDCGenericDescriptor_ABSTRACTCONTROLMANAGEMENT,
     CDCAbstractControlManagementDescriptor_LINE
 },
 /* Class-specific union functional descriptor with one slave interface */
 {
     sizeof(CDCUnionDescriptor),
     CDCGenericDescriptor_INTERFACE,
     CDCGenericDescriptor_UNION,
     CDCHIDDDriverDescriptors_CDC_INTERFACE, /* Number of master interface is #0 */
     CDCHIDDDriverDescriptors_CDC_INTERFACE + 1 /* First slave interface is #1 */
 },
 /* Notification endpoint standard descriptor */
 {
     sizeof(USBEndpointDescriptor),
     USBGenericDescriptor_ENDPOINT,
     USBEndpointDescriptor_ADDRESS(USBEndpointDescriptor_IN,
                                   CDCD_Descriptors_NOTIFICATION0),
     USBEndpointDescriptor_INTERRUPT,
     MIN(CHIP_USB_ENDPOINTS_MAXPACKETSIZE(CDCD_Descriptors_NOTIFICATION0),
         USBEndpointDescriptor_MAXINTERRUPTSIZE_FS),
     CDCDSerialPort_INTERRUPT_INTERVAL_FS
 },
 /* Data class interface standard descriptor */
 {
     sizeof(USBInterfaceDescriptor),
     USBGenericDescriptor_INTERFACE,
     CDCHIDDDriverDescriptors_CDC_INTERFACE + 1, /* This is interface #1 */
     0, /* This is alternate setting #0 for this interface */
     2, /* This interface uses 2 endpoints */
     CDCDataInterfaceDescriptor_CLASS,
     CDCDataInterfaceDescriptor_SUBCLASS,
     CDCDataInterfaceDescriptor_NOPROTOCOL,
 {
     sizeof(USBInterfaceDescriptor),
     USBGenericDescriptor_INTERFACE,
     0, // This is interface #0
     0, // This is alternate setting #0 for this interface
     3, // This interface uses 4 endpoints
     0x00,
     0xE0,
     0x00,
     0  // No string descriptor for this interface
 },
 // Bulk-IN endpoint descriptor
 {
     sizeof(USBEndpointDescriptor),
     USBGenericDescriptor_ENDPOINT,
     USBEndpointDescriptor_ADDRESS(USBEndpointDescriptor_IN, ADM8511_DATAIN),
     USBEndpointDescriptor_BULK,
     64,
     0 // Must be 0 for full-speed bulk endpoints
 },
 // Bulk-OUT endpoint standard descriptor
 {
     sizeof(USBEndpointDescriptor), 
     USBGenericDescriptor_ENDPOINT,
     USBEndpointDescriptor_ADDRESS(USBEndpointDescriptor_OUT, ADM8511_DATAOUT),
     USBEndpointDescriptor_BULK,
     64,
     0 // Must be 0 for full-speed bulk endpoints
 },
 // Interrupt-IN endpoint descriptor
 {
Example #4
0
		CDCGenericDescriptor_ABSTRACTCONTROLMANAGEMENT,
		CDCAbstractControlManagementDescriptor_LINE
	},
	// Class-specific union functional descriptor with one slave interface
	{
		sizeof(CDCUnionDescriptor),
		CDCGenericDescriptor_INTERFACE,
		CDCGenericDescriptor_UNION,
		DUALCDCDDriverDescriptors_INTERFACENUM0, // Number of master interface is #0
		DUALCDCDDriverDescriptors_INTERFACENUM0 + 1 // First slave interface is #1
	},
	// Notification endpoint standard descriptor
	{
		sizeof(USBEndpointDescriptor),
		USBGenericDescriptor_ENDPOINT,
		USBEndpointDescriptor_ADDRESS(USBEndpointDescriptor_IN,
		CDCD_Descriptors_NOTIFICATION0),
		USBEndpointDescriptor_INTERRUPT,
		MIN(CHIP_USB_ENDPOINTS_MAXPACKETSIZE(CDCD_Descriptors_NOTIFICATION0),
		USBEndpointDescriptor_MAXINTERRUPTSIZE_FS),
		CDCDSerialPort_INTERRUPT_INTERVAL_FS
	},
	// Data class interface standard descriptor
	{
		sizeof(USBInterfaceDescriptor),
		USBGenericDescriptor_INTERFACE,
		DUALCDCDDriverDescriptors_INTERFACENUM0 + 1, // This is interface #1
		0, // This is alternate setting #0 for this interface
		2, // This interface uses 2 endpoints
		CDCDataInterfaceDescriptor_CLASS,
		CDCDataInterfaceDescriptor_SUBCLASS,
		CDCDataInterfaceDescriptor_NOPROTOCOL,
Example #5
0
     CDCGenericDescriptor_ABSTRACTCONTROLMANAGEMENT,
     CDCAbstractControlManagementDescriptor_LINE
 },
 /* Class-specific union functional descriptor with one slave interface */
 {
     sizeof(CDCUnionDescriptor),
     CDCGenericDescriptor_INTERFACE,
     CDCGenericDescriptor_UNION,
     0, /* Number of master interface is #0 */
     1 /* First slave interface is #1 */
 },
 /* Notification endpoint standard descriptor */
 {
     sizeof(USBEndpointDescriptor),
     USBGenericDescriptor_ENDPOINT,
     USBEndpointDescriptor_ADDRESS(USBEndpointDescriptor_IN,
                                   CDCDSerialDriverDescriptors_NOTIFICATION),
     USBEndpointDescriptor_INTERRUPT,
     MIN(CHIP_USB_ENDPOINTS_MAXPACKETSIZE(CDCDSerialDriverDescriptors_NOTIFICATION),
         USBEndpointDescriptor_MAXINTERRUPTSIZE_FS),
     10 /* Endpoint is polled every 10ms */
 },
 /* Data class interface standard descriptor */
 {
     sizeof(USBInterfaceDescriptor),
     USBGenericDescriptor_INTERFACE,
     1, /* This is interface #1 */
     0, /* This is alternate setting #0 for this interface */
     2, /* This interface uses 2 endpoints */
     CDCDataInterfaceDescriptor_CLASS,
     CDCDataInterfaceDescriptor_SUBCLASS,
     CDCDataInterfaceDescriptor_NOPROTOCOL,
 /* HID descriptor */
 {
     sizeof(HIDDescriptor1),
     HIDGenericDescriptor_HID,
     HIDDescriptor_HID1_11,
     0, /* Device is not localized, no country code */
     1, /* One HID-specific descriptor (apart from this one) */
     HIDGenericDescriptor_REPORT,
     {HIDDKeyboard_REPORTDESCRIPTORSIZE}
 },
 /* Interrupt IN endpoint descriptor */
 {
     sizeof(USBEndpointDescriptor),
     USBGenericDescriptor_ENDPOINT,
     USBEndpointDescriptor_ADDRESS(
         USBEndpointDescriptor_IN,
         HIDDKeyboardDriverDescriptors_INTERRUPTIN),
     USBEndpointDescriptor_INTERRUPT,
     sizeof(HIDDKeyboardInputReport),
     HIDDKeyboardDriverDescriptors_INTERRUPTIN_POLLING
 },
 /* Interrupt OUT endpoint descriptor */
 {
     sizeof(USBEndpointDescriptor),
     USBGenericDescriptor_ENDPOINT,
     USBEndpointDescriptor_ADDRESS(
         USBEndpointDescriptor_OUT,
         HIDDKeyboardDriverDescriptors_INTERRUPTOUT),
     USBEndpointDescriptor_INTERRUPT,
     sizeof(HIDDKeyboardOutputReport),
     HIDDKeyboardDriverDescriptors_INTERRUPTIN_POLLING
Example #7
0
     CDCGenericDescriptor_ABSTRACTCONTROLMANAGEMENT,
     CDCAbstractControlManagementDescriptor_LINE
 },
 /* Class-specific union functional descriptor with one slave interface */
 {
     sizeof(CDCUnionDescriptor),
     CDCGenericDescriptor_INTERFACE,
     CDCGenericDescriptor_UNION,
     CDCMSDDriverDescriptors_CDC_INTERFACE, /* Number of master interface is #0 */
     CDCMSDDriverDescriptors_CDC_INTERFACE + 1 /* First slave interface is #1 */
 },
 /* Notification endpoint standard descriptor */
 {
     sizeof(USBEndpointDescriptor),
     USBGenericDescriptor_ENDPOINT,
     USBEndpointDescriptor_ADDRESS(USBEndpointDescriptor_IN,
                                   CDCD_Descriptors_NOTIFICATION0),
     USBEndpointDescriptor_INTERRUPT,
     MIN(CHIP_USB_ENDPOINTS_MAXPACKETSIZE(CDCD_Descriptors_NOTIFICATION0),
         CDCDSerialPort_INTERRUPT_MAXPACKETSIZE),
     CDCDSerialPort_INTERRUPT_INTERVAL_FS
 },
 /* Data class interface standard descriptor */
 {
     sizeof(USBInterfaceDescriptor),
     USBGenericDescriptor_INTERFACE,
     CDCMSDDriverDescriptors_CDC_INTERFACE + 1, /* This is interface #1 */
     0, /* This is alternate setting #0 for this interface */
     2, /* This interface uses 2 endpoints */
     CDCDataInterfaceDescriptor_CLASS,
     CDCDataInterfaceDescriptor_SUBCLASS,
     CDCDataInterfaceDescriptor_NOPROTOCOL,