XenevaOS
Loading...
Searching...
No Matches
usb_desc.h
Go to the documentation of this file.
1
32#ifndef __USB_DESC_H__
33#define __USB_DESC_H__
34
35#include <stdint.h>
36
37#pragma pack(push,1)
54#pragma pack(pop)
55
56#pragma pack(push,1)
62#pragma pack(pop)
63
64
65#pragma pack(push,1)
77#pragma pack(pop)
78
79#pragma pack(push,1)
91#pragma pack(pop)
92
93#pragma pack(push,1)
104#pragma pack(pop)
105
106#pragma pack(push,1)
111#pragma pack(pop)
112
113#pragma pack(push,1)
122#pragma pack(pop)
123
124#pragma pack(push,1)
133#pragma pack(pop)
134
135#pragma pack(push,1)
140#pragma pack(pop)
141
142#define DESCRIPTOR_TYPE_CONFIG 2
143#define DESCRIPTOR_TYPE_INTERFACE 4
144#define DESCRIPTOR_TYPE_ENDPOINT 5
145
146#define USB_EP_TYPE_CONTROL 0x00
147#define USB_EP_TYPE_ISOC 0x01
148#define USB_EP_TYPE_BULK 0x02
149#define USB_EP_TYPE_INTERRUPT 0x03
150
151// Request Types
152#define REQUEST_OUT 0
153#define REQUEST_IN 0x80
154
155#define REQUEST_CLASS 0x20
156#define REQUEST_VENDOR 0x40
157
158#define REQUEST_TO_INTERFACE 1
159#define REQUEST_TO_OTHER 3
160
161// Standard Request Codes
162#define GET_STATUS 0
163#define CLEAR_FEATURE 1
164#define SET_FEATURE 3
165#define SET_ADDRESS 5
166#define GET_DESCRIPTOR 6
167#define SET_CONFIGURATION 9
168#define SET_INTERFACE 11
169
170// Port definitions
171#define PORT_STATUS_CONNECTION (1<<0) //1-device connected, 0- no device connected
172#define PORT_STATUS_ENABLED (1<<1)
173#define PORT_STATUS_SUSPEND (1<<2)
174#define PORT_STATUS_OVERCURRENT (1<<3)
175#define PORT_STATUS_RESET (1<<4)
176#define PORT_STATUS_POWER (1<<8)
177#define PORT_STATUS_LOW_SPEED (1<<9)
178#define PORT_STATUS_HIGH_SPEED (1<<10)
179#define PORT_STATUS_TEST (1<<11)
180#define PORT_STATUS_INDICATOR (1<<12)
181
182#define PORT_RESET 4
183#define PORT_POWER 8
184
185// Speed
186typedef enum
187{
193
200extern usb_descriptor_t* dwc2_get_descriptor(void* desc, uint8_t type);
201
202#endif
unsigned char uint8_t
Definition acefiex.h:161
unsigned short int uint16_t
Definition acefiex.h:162
Definition usb_desc.h:94
uint8_t bMaxPower
Definition usb_desc.h:102
uint8_t iConfiguration
Definition usb_desc.h:100
uint8_t bNumInterfaces
Definition usb_desc.h:98
uint8_t bLength
Definition usb_desc.h:95
uint16_t wTotalLength
Definition usb_desc.h:97
uint8_t bDescriptorType
Definition usb_desc.h:96
uint8_t bmAttributes
Definition usb_desc.h:101
uint8_t bConfigurationValue
Definition usb_desc.h:99
Definition usb_desc.h:38
uint16_t idVendor
Definition usb_desc.h:46
uint8_t bDescriptorType
Definition usb_desc.h:40
uint16_t idProduct
Definition usb_desc.h:47
uint8_t bDeviceSubClass
Definition usb_desc.h:43
uint8_t bLength
Definition usb_desc.h:39
uint8_t iManufacturer
Definition usb_desc.h:49
uint8_t bMaxPacketSize0
Definition usb_desc.h:45
uint8_t iSerialNumber
Definition usb_desc.h:51
uint16_t bcdDevice
Definition usb_desc.h:48
uint8_t bDeviceClass
Definition usb_desc.h:42
uint8_t iProduct
Definition usb_desc.h:50
uint8_t bDeviceProtocol
Definition usb_desc.h:44
uint8_t bNumConfigurations
Definition usb_desc.h:52
uint16_t bcdUSB
Definition usb_desc.h:41
Definition usb_desc.h:66
uint8_t bInterfaceSubClass
Definition usb_desc.h:73
uint8_t bAlternateSetting
Definition usb_desc.h:70
uint8_t iInterface
Definition usb_desc.h:75
uint8_t bLength
Definition usb_desc.h:67
uint8_t bDescriptorType
Definition usb_desc.h:68
uint8_t bNumEndpoints
Definition usb_desc.h:71
uint8_t bInterfaceClass
Definition usb_desc.h:72
uint8_t bInterfaceProtocol
Definition usb_desc.h:74
uint8_t bInterfaceNumber
Definition usb_desc.h:69
Definition usb_desc.h:80
uint8_t bMaxPacketSize0
Definition usb_desc.h:87
uint16_t bcdUSB
Definition usb_desc.h:83
uint8_t bNumConfigurations
Definition usb_desc.h:88
uint8_t bDeviceProtocol
Definition usb_desc.h:86
uint8_t bDeviceSubClass
Definition usb_desc.h:85
uint8_t bLength
Definition usb_desc.h:81
uint8_t bDeviceClass
Definition usb_desc.h:84
uint8_t bDescriptorType
Definition usb_desc.h:82
uint8_t bReserved
Definition usb_desc.h:89
Definition usb_desc.h:57
uint8_t bDescriptorType
Definition usb_desc.h:59
uint8_t bLength
Definition usb_desc.h:58
Definition usb_desc.h:107
uint8_t bDescriptorType
Definition usb_desc.h:109
uint8_t bLength
Definition usb_desc.h:108
Definition usb_desc.h:125
uint8_t bEndpointAddress
Definition usb_desc.h:128
uint16_t wMaxPacketSize
Definition usb_desc.h:130
uint8_t bInterval
Definition usb_desc.h:131
uint8_t bLength
Definition usb_desc.h:126
uint8_t bDescriptorType
Definition usb_desc.h:127
uint8_t bmAttributes
Definition usb_desc.h:129
Definition usb_desc.h:114
uint8_t bPwrOn2PwrGood
Definition usb_desc.h:119
uint8_t bDescriptorType
Definition usb_desc.h:116
uint16_t wHubCharacteristics
Definition usb_desc.h:118
uint8_t bNbrPorts
Definition usb_desc.h:117
uint8_t bHubContrCurrent
Definition usb_desc.h:120
uint8_t bLength
Definition usb_desc.h:115
Definition usb_desc.h:136
uint16_t wPortChange
Definition usb_desc.h:138
uint16_t wPortStatus
Definition usb_desc.h:137
@ USBSpeedLow
Definition usb_desc.h:188
@ USBSpeedFull
Definition usb_desc.h:189
@ USBSpeedHigh
Definition usb_desc.h:190
@ USBSpeedUnknown
Definition usb_desc.h:191
struct _usb_ep_desc_ usb_ep_desc_t
struct _string_desc_ usb_string_desc_t
struct _config_desc_ usb_config_desc_t
struct _usb_hub_ usb_hub_desc_t
struct _interface_desc_ usb_if_desc_t
struct _usb_desc_ usb_descriptor_t
usb_descriptor_t * dwc2_get_descriptor(void *desc, uint8_t type)
dwc2_get_descriptor – find a descriptor within descriptor config area
Definition usb_desc.cpp:41
struct _dev_desc_ usb_dev_desc_t
struct _qualifier_desc_ usb_qualifier_desc_t