aboutsummaryrefslogtreecommitdiffstats
path: root/core/usb/descriptors.c
blob: eca3f3fe395cc52d95e3ec10d2821f691d763e05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/* insert license */

#include "descriptors.h"

USB_Descriptor_Device usbVcomDescriptor_Device = {
 bLength:              sizeof(USB_Descriptor_Device), 
 bDescriptorType:      USB_DESCRIPTOR_TYPE_DEVICE,
 bcdUSB:               0x0200,
 bDeviceClass:         USB_DEVICE_CLASS_CDC,
 bDeviceSubClass:      USB_DEVICE_SUBCLASS_CDC,
 bDeviceProtocol:      0x00,
 bMaxPacketSize0:      0x40,
 idVendor:             VCOM_ID_VENDOR,
 idProduct:            VCOM_ID_PRODUCT,
 bcdDevice:            0x0200,
 iManufacturer:        0x00,
 iProduct:             0x00,
 iSerialNumber:        0x00,
 bNumConfigurations:   0x01
};

USB_Descriptor_Configuration usbVcomDescriptor_Config = {
 Header:
   {
   bLength:                   sizeof(USB_Descriptor_Config_Header),
   bDescriptorType:           USB_DESCRIPTOR_TYPE_CONFIGURATION,
   wTotalLength:              sizeof(USB_Descriptor_Configuration),
   bNumInterfaces:            0x02,
   bConfigurationValue:       0x01,
   iConfiguration:            0x00,
   bmAttributes:              (USB_CONFIG_ATTR_BUSPOWERED | USB_CONFIG_ATT_SELF_POWERED),
   bMaxPower:                 USB_CONFIG_POWER_MA(100)
   },

 CCI_Interface:
   {
   bLength:                  sizeof(USB_Descriptor_Interface),
   bDescriptorType:          USB_DESCRIPTOR_TYPE_INTERFACE,
   bInterfaceNumber:         0x00,
   bAlternateSetting:        0x00,
   bNumEndpoints:            0x01,
   bInterfaceClass:          0x02,
   bInterfaceSubClass:       0x02,
   bInterfaceProtocol:       0x01,
   iInterface:               0x00
   },

 CDC_Functional_IntHeader:
   {
   bLength:                  sizeof(CDC_FUNCTIONAL_DESCRIPTOR(2)),
   bDescriptorType:          0x24,
   SubType:                  0x00,
   Data:                     {0x01, 0x10}
   },

 CDC_Functional_CallManagement:
   {
   bLength:                  sizeof(CDC_FUNCTIONAL_DESCRIPTOR(2)),
   bDescriptorType:          0x24,
   SubType:                  0x01,
   Data:                     {0x03, 0x01}
   },

 CDC_Functional_ACM:
   {
   bLength:                  sizeof(CDC_FUNCTIONAL_DESCRIPTOR(1)),
   bDescriptorType:          0x24,
   SubType:                  0x02,
   Data:                     {0x06}
   },

 CDC_Functional_Union:
   {
   bLength:                  sizeof(CDC_FUNCTIONAL_DESCRIPTOR(2)),
   bDescriptorType:          0x24,
   SubType:                  0x06,
   Data:                     {0x00, 0x01}
   },

 ManagementEndpoint: 
   {
   bLength:                 sizeof(USB_Descriptor_Endpoint),
   bDescriptorType:         USB_DESCRIPTOR_TYPE_ENDPOINT,
   bEndpointAddress:        CDC_NOTIFICATION_EPNUM,
   bmAttributes:            EP_TYPE_INTERRUPT,
   wMaxPacketSize:          CDC_NOTIFICATION_EPSIZE,
   bInterval:               0xFF
   },

 DCI_Interface:
   {
   bLength:                sizeof(USB_Descriptor_Interface),
   bDescriptorType:        USB_DESCRIPTOR_TYPE_INTERFACE,
   bInterfaceNumber:       0x01,
   bAlternateSetting:      0x00,
   bNumEndpoints:          0x02,
   bInterfaceClass:        0x0A,
   bInterfaceSubClass:     0x00,
   bInterfaceProtocol:     0x00,
   iInterface:             0x00
   }.

 DataOutEndpoint:
   {
   bLength:               sizeof(USB_Descriptor_Endpoint),
   bDescriptorType:       USB_DESCRIPTOR_TYPE_ENDPOINT,
   bEndpointAddress:      VCOM_RX_EPNUM,
   bmAttributes:          EP_TYPE_BULK,
   wMaxPacketSize:        VCOM_RX_EPSIZE,
   bInterval:             0x00
   },

 DataInPoiint:
   {
   bLength:               sizeof(USB_Descriptor_Endpoint),
   bDescriptorType:       USB_DESCRIPTOR_TYPE_ENDPOINT,
   bEndpointAddress:      VCOM_TX_EPNUM,
   bmAttributes:          EP_TYPE_BULK,
   wMaxPacketSize:        VCOM_TX_EPSIZE,
   bInterval:             0x00
   },
};