summaryrefslogtreecommitdiff
path: root/include/qhy/usb200.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/qhy/usb200.h')
-rw-r--r--include/qhy/usb200.h111
1 files changed, 111 insertions, 0 deletions
diff --git a/include/qhy/usb200.h b/include/qhy/usb200.h
new file mode 100644
index 0000000..06f3bfb
--- /dev/null
+++ b/include/qhy/usb200.h
@@ -0,0 +1,111 @@
+#ifndef __USB200_H__
+#define __USB200_H__
+
+#include "usb100.h"
+
+
+#include <PSHPACK1.H>
+
+typedef enum _USB_DEVICE_SPEED {
+ UsbLowSpeed = 0,
+ UsbFullSpeed,
+ UsbHighSpeed
+} USB_DEVICE_SPEED;
+
+typedef enum _USB_DEVICE_TYPE {
+ Usb11Device = 0,
+ Usb20Device
+} USB_DEVICE_TYPE;
+
+// standard definiions for the port status
+// word of the HUB port register
+
+#define USB_PORT_STATUS_CONNECT 0x0001
+#define USB_PORT_STATUS_ENABLE 0x0002
+#define USB_PORT_STATUS_SUSPEND 0x0004
+#define USB_PORT_STATUS_OVER_CURRENT 0x0008
+#define USB_PORT_STATUS_RESET 0x0010
+#define USB_PORT_STATUS_POWER 0x0100
+#define USB_PORT_STATUS_LOW_SPEED 0x0200
+#define USB_PORT_STATUS_HIGH_SPEED 0x0400
+
+typedef union _BM_REQUEST_TYPE {
+ struct _BM {
+ UCHAR Recipient:2;
+ UCHAR Reserved:3;
+ UCHAR Type:2;
+ UCHAR Dir:1;
+ };
+ UCHAR B;
+} BM_REQUEST_TYPE, *PBM_REQUEST_TYPE;
+
+typedef struct _USB_DEFAULT_PIPE_SETUP_PACKET {
+ BM_REQUEST_TYPE bmRequestType;
+ UCHAR bRequest;
+
+ union _wValue {
+ struct {
+ UCHAR LowByte;
+ UCHAR HiByte;
+ };
+ USHORT W;
+ } wValue;
+
+ union _wIndex {
+ struct {
+ UCHAR LowByte;
+ UCHAR HiByte;
+ };
+ USHORT W;
+ } wIndex;
+ USHORT wLength;
+} USB_DEFAULT_PIPE_SETUP_PACKET, *PUSB_DEFAULT_PIPE_SETUP_PACKET;
+
+// setup packet is eight bytes -- defined by spec
+C_ASSERT(sizeof(USB_DEFAULT_PIPE_SETUP_PACKET) == 8);
+
+
+#define USB_DEVICE_QUALIFIER_DESCRIPTOR_TYPE 0x06
+
+typedef struct _USB_DEVICE_QUALIFIER_DESCRIPTOR {
+ UCHAR bLength;
+ UCHAR bDescriptorType;
+ USHORT bcdUSB;
+ UCHAR bDeviceClass;
+ UCHAR bDeviceSubClass;
+ UCHAR bDeviceProtocol;
+ UCHAR bMaxPacketSize0;
+ UCHAR bNumConfigurations;
+ UCHAR bReserved;
+} USB_DEVICE_QUALIFIER_DESCRIPTOR, *PUSB_DEVICE_QUALIFIER_DESCRIPTOR;
+
+
+typedef union _USB_HIGH_SPEED_MAXPACKET {
+ struct _MP {
+ USHORT MaxPacket:11; /* 0..10 */
+ USHORT HSmux:2; /* 11..12 */
+ USHORT Reserved:3; /* 13..15 */
+ };
+ USHORT us;
+} USB_HIGH_SPEED_MAXPACKET, *PUSB_HIGH_SPEED_MAXPACKET;
+
+#define USB_INTERFACE_ASSOCIATION_DESCRIPTOR_TYPE 0x0B
+
+typedef struct _USB_INTERFACE_ASSOCIATION_DESCRIPTOR {
+
+ UCHAR bLength;
+ UCHAR bDescriptorType;
+ UCHAR bFirstInterface;
+ UCHAR bInterfaceCount;
+ UCHAR bFunctionClass;
+ UCHAR bFunctionSubClass;
+ UCHAR bFunctionProtocol;
+ UCHAR iFunction;
+
+} USB_INTERFACE_ASSOCIATION_DESCRIPTOR, *PUSB_INTERFACE_ASSOCIATION_DESCRIPTOR;
+
+
+#include <POPPACK.H>
+
+#endif __USB200_H__
+