Modules/USB - Working on driver support, little headache
[tpg/acess2.git] / Modules / USB / Core / usb_proto.h
index 3a98e47..2ac2781 100644 (file)
@@ -17,7 +17,7 @@ struct sDeviceRequest
 struct sDescriptor_Device
 {
        Uint8   Length;
-       Uint8   Type;   // =
+       Uint8   Type;   // = 1
        Uint16  USBVersion;     // BCD, 0x210 = 2.10
        Uint8   DeviceClass;
        Uint8   DeviceSubClass;
@@ -26,13 +26,81 @@ struct sDescriptor_Device
        
        Uint16  VendorID;
        Uint16  ProductID;
+       Uint16  DeviceID;       // BCD
        
        Uint8   ManufacturerStr;
        Uint8   ProductStr;
        Uint8   SerialNumberStr;
        
        Uint8   NumConfigurations;
-};
+} PACKED;
+
+struct sDescriptor_Configuration
+{
+       Uint8   Length;
+       Uint8   Type;   // = 2
+       
+       Uint16  TotalLength;
+       Uint8   NumInterfaces;
+       Uint8   ConfigurationValue;
+       Uint8   ConfigurationStr;
+       Uint8   AttributesBmp;
+       Uint8   MaxPower;       // in units of 2 mA
+} PACKED;
+
+struct sDescriptor_String
+{
+       Uint8   Length;
+       Uint8   Type;   // = 3
+       
+       Uint16  Data[128-1];    // (256 bytes - 2 bytes) / Uint16
+} PACKED;
+
+struct sDescriptor_Interface
+{
+       Uint8   Length;
+       Uint8   Type;   // = 4
+       
+       Uint8   InterfaceNum;
+       Uint8   AlternateSetting;
+       Uint8   NumEndpoints;   // Excludes endpoint 0
+       
+       Uint8   InterfaceClass; // 
+       Uint8   InterfaceSubClass;
+       Uint8   InterfaceProtocol;
+       
+       Uint8   InterfaceStr;
+} PACKED;
+
+struct sDescriptor_Endpoint
+{
+       Uint8   Length;
+       Uint8   Type;   // = 5
+       Uint8   Address;        // 3:0 Endpoint Num, 7: Direction (1=IN)
+       /**
+        * 1:0 - Transfer Type
+        * - 00 = Control
+        * - 01 = Isochronous
+        * - 10 = Bulk
+        * - 11 = Interrupt
+        * 3:2 - Synchronisation type (Isonchronous only)
+        * - 00 = No Synchronisation
+        * - 01 = Asynchronous
+        * - 10 = Adaptive
+        * - 11 = Synchronous
+        * 5:4 - Usage type (Isonchronous only)
+        * - 00 = Data endpoint
+        * - 01 = Feedback endpoint
+        */
+       Uint8   Attributes;
+       
+       Uint16  MaxPacketSize;
+       
+       /**
+        * 
+        */
+       Uint8   PollingInterval;
+} PACKED;
 
 #endif
 

UCC git Repository :: git.ucc.asn.au