/*
LUFA Library
- Copyright (C) Dean Camera, 2010.
+ Copyright (C) Dean Camera, 2011.
dean [at] fourwalledcubicle [dot] com
- www.fourwalledcubicle.com
+ www.lufa-lib.org
*/
/*
- Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
#define CDC_TXRX_EPSIZE 16
/* Type Defines: */
- /** Type define for a CDC class-specific functional header descriptor. This indicates to the host that the device
- * contains one or more CDC functional data descriptors, which give the CDC interface's capabilities and configuration.
- * See the CDC class specification for more details.
- */
- typedef struct
- {
- USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length. */
- uint8_t Subtype; /**< Sub type value used to distinguish between CDC class-specific descriptors. */
- uint16_t CDCSpecification; /**< Version number of the CDC specification implemented by the device,
- * encoded in BCD format.
- */
- } USB_Descriptor_CDC_FunctionalHeader_t;
-
- /** Type define for a CDC class-specific functional ACM descriptor. This indicates to the host that the CDC interface
- * supports the CDC ACM subclass of the CDC specification. See the CDC class specification for more details.
- */
- typedef struct
- {
- USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length. */
- uint8_t Subtype; /**< Sub type value used to distinguish between CDC class-specific descriptors. */
- uint8_t Capabilities; /**< Capabilities of the ACM interface, given as a bit mask. */
- } USB_Descriptor_CDC_FunctionalACM_t;
-
- /** Type define for a CDC class-specific functional Union descriptor. This indicates to the host that specific
- * CDC control and data interfaces are related. See the CDC class specification for more details.
- */
- typedef struct
- {
- USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length. */
- uint8_t Subtype; /**< Sub type value used to distinguish between CDC class-specific descriptors. */
- uint8_t MasterInterfaceNumber; /**< Interface number of the CDC Control interface. */
- uint8_t SlaveInterfaceNumber; /**< Interface number of the CDC Data interface. */
- } USB_Descriptor_CDC_FunctionalUnion_t;
-
/** Type define for the device configuration descriptor structure. This must be defined in the
* application code, as the configuration descriptor contains several sub-descriptors which
* vary between devices, and which describe the device's usage to the host.
typedef struct
{
USB_Descriptor_Configuration_Header_t Config;
+
+ // First CDC Control Interface
USB_Descriptor_Interface_Association_t CDC1_IAD;
USB_Descriptor_Interface_t CDC1_CCI_Interface;
- USB_Descriptor_CDC_FunctionalHeader_t CDC1_Functional_Header;
- USB_Descriptor_CDC_FunctionalACM_t CDC1_Functional_ACM;
- USB_Descriptor_CDC_FunctionalUnion_t CDC1_Functional_Union;
+ USB_CDC_Descriptor_FunctionalHeader_t CDC1_Functional_Header;
+ USB_CDC_Descriptor_FunctionalACM_t CDC1_Functional_ACM;
+ USB_CDC_Descriptor_FunctionalUnion_t CDC1_Functional_Union;
USB_Descriptor_Endpoint_t CDC1_ManagementEndpoint;
+
+ // First CDC Data Interface
USB_Descriptor_Interface_t CDC1_DCI_Interface;
USB_Descriptor_Endpoint_t CDC1_DataOutEndpoint;
USB_Descriptor_Endpoint_t CDC1_DataInEndpoint;
+
+ // Second CDC Control Interface
USB_Descriptor_Interface_Association_t CDC2_IAD;
USB_Descriptor_Interface_t CDC2_CCI_Interface;
- USB_Descriptor_CDC_FunctionalHeader_t CDC2_Functional_Header;
- USB_Descriptor_CDC_FunctionalACM_t CDC2_Functional_ACM;
- USB_Descriptor_CDC_FunctionalUnion_t CDC2_Functional_Union;
+ USB_CDC_Descriptor_FunctionalHeader_t CDC2_Functional_Header;
+ USB_CDC_Descriptor_FunctionalACM_t CDC2_Functional_ACM;
+ USB_CDC_Descriptor_FunctionalUnion_t CDC2_Functional_Union;
USB_Descriptor_Endpoint_t CDC2_ManagementEndpoint;
+
+ // Second CDC Data Interface
USB_Descriptor_Interface_t CDC2_DCI_Interface;
USB_Descriptor_Endpoint_t CDC2_DataOutEndpoint;
USB_Descriptor_Endpoint_t CDC2_DataInEndpoint;
ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);
#endif
-