diff options
| author | René Werner <mail@renewerner.net> | 2016-08-25 12:27:29 +0200 | 
|---|---|---|
| committer | René Werner <mail@renewerner.net> | 2016-08-25 12:27:29 +0200 | 
| commit | 22ef0bbac55215965c7fc6246d20d4591fbf14f4 (patch) | |
| tree | 6ed3453403f91b273d771c9ce2141408d0f7bad6 /tmk_core/protocol/lufa/descriptor.c | |
| parent | 1bbd3c1eea78abf0b36a289fb37f80dfc4f9c8bb (diff) | |
| parent | ad206155aa6f87de3fb9f0aefe60685ec12905a8 (diff) | |
Merge remote-tracking branch 'upstream/master' into kitten_paw
Diffstat (limited to 'tmk_core/protocol/lufa/descriptor.c')
| -rw-r--r-- | tmk_core/protocol/lufa/descriptor.c | 112 | 
1 files changed, 111 insertions, 1 deletions
diff --git a/tmk_core/protocol/lufa/descriptor.c b/tmk_core/protocol/lufa/descriptor.c index 539a58d66b..6f2407f580 100644 --- a/tmk_core/protocol/lufa/descriptor.c +++ b/tmk_core/protocol/lufa/descriptor.c @@ -231,9 +231,15 @@ const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =      .Header                 = {.Size = sizeof(USB_Descriptor_Device_t), .Type = DTYPE_Device},      .USBSpecification       = VERSION_BCD(1,1,0), +#if VIRTSER_ENABLE +    .Class                  = USB_CSCP_IADDeviceClass, +    .SubClass               = USB_CSCP_IADDeviceSubclass, +    .Protocol               = USB_CSCP_IADDeviceProtocol, +#else      .Class                  = USB_CSCP_NoDeviceClass,      .SubClass               = USB_CSCP_NoDeviceSubclass,      .Protocol               = USB_CSCP_NoDeviceProtocol, +#endif      .Endpoint0Size          = FIXED_CONTROL_ENDPOINT_SIZE, @@ -643,8 +649,112 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =              .TotalEmbeddedJacks       = 0x01,              .AssociatedJackID         = {0x03} -        } +        },  #endif + +#ifdef VIRTSER_ENABLE +    .CDC_Interface_Association = +            { +                    .Header                 = {.Size = sizeof(USB_Descriptor_Interface_Association_t), .Type = DTYPE_InterfaceAssociation}, + +                    .FirstInterfaceIndex    = CCI_INTERFACE, +                    .TotalInterfaces        = 2, + +                    .Class                  = CDC_CSCP_CDCClass, +                    .SubClass               = CDC_CSCP_ACMSubclass, +                    .Protocol               = CDC_CSCP_ATCommandProtocol, + +                    .IADStrIndex            = NO_DESCRIPTOR, +            }, + +    .CDC_CCI_Interface = +            { +                    .Header                 = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, + +                    .InterfaceNumber        = CCI_INTERFACE, +                    .AlternateSetting       = 0, + +                    .TotalEndpoints         = 1, + +                    .Class                  = CDC_CSCP_CDCClass, +                    .SubClass               = CDC_CSCP_ACMSubclass, +                    .Protocol               = CDC_CSCP_ATCommandProtocol, + +                    .InterfaceStrIndex      = NO_DESCRIPTOR +            }, + +    .CDC_Functional_Header = +            { +                    .Header                 = {.Size = sizeof(USB_CDC_Descriptor_FunctionalHeader_t), .Type = DTYPE_CSInterface}, +                    .Subtype                = 0x00, + +                    .CDCSpecification       = VERSION_BCD(1,1,0), +            }, + +    .CDC_Functional_ACM = +            { +                    .Header                 = {.Size = sizeof(USB_CDC_Descriptor_FunctionalACM_t), .Type = DTYPE_CSInterface}, +                    .Subtype                = 0x02, + +                    .Capabilities           = 0x02, +            }, + +    .CDC_Functional_Union = +            { +                    .Header                 = {.Size = sizeof(USB_CDC_Descriptor_FunctionalUnion_t), .Type = DTYPE_CSInterface}, +                    .Subtype                = 0x06, + +                    .MasterInterfaceNumber  = CCI_INTERFACE, +                    .SlaveInterfaceNumber   = CDI_INTERFACE, +            }, + +    .CDC_NotificationEndpoint = +            { +                    .Header                 = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, + +                    .EndpointAddress        = CDC_NOTIFICATION_EPADDR, +                    .Attributes             = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), +                    .EndpointSize           = CDC_NOTIFICATION_EPSIZE, +                    .PollingIntervalMS      = 0xFF +            }, + +    .CDC_DCI_Interface = +            { +                    .Header                 = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, + +                    .InterfaceNumber        = CDI_INTERFACE, +                    .AlternateSetting       = 0, + +                    .TotalEndpoints         = 2, + +                    .Class                  = CDC_CSCP_CDCDataClass, +                    .SubClass               = CDC_CSCP_NoDataSubclass, +                    .Protocol               = CDC_CSCP_NoDataProtocol, + +                    .InterfaceStrIndex      = NO_DESCRIPTOR +            }, + +    .CDC_DataOutEndpoint = +            { +                    .Header                 = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, + +                    .EndpointAddress        = CDC_OUT_EPADDR, +                    .Attributes             = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), +                    .EndpointSize           = CDC_EPSIZE, +                    .PollingIntervalMS      = 0x05 +            }, + +    .CDC_DataInEndpoint = +            { +                    .Header                 = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, + +                    .EndpointAddress        = CDC_IN_EPADDR, +                    .Attributes             = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), +                    .EndpointSize           = CDC_EPSIZE, +                    .PollingIntervalMS      = 0x05 +            }, +#endif +  };  | 
