X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Modules%2FUSB%2Fusb.h;h=a867c112f84405054f0014d73922bc2aae14f363;hb=6bc21db109c4d8d3219ad58fc5cc76ec76e6c6b7;hp=3e503ec4b4b43c09cafb5a3e044e936758c947cb;hpb=6c5a509b5e14e097ca537c539bc9babe3b8f0c4c;p=tpg%2Facess2.git diff --git a/Modules/USB/usb.h b/Modules/USB/usb.h index 3e503ec4..a867c112 100644 --- a/Modules/USB/usb.h +++ b/Modules/USB/usb.h @@ -9,6 +9,68 @@ typedef struct sUSBHost tUSBHost; typedef struct sUSBDevice tUSBDevice; +// === CONSTANTS === +enum eUSB_PIDs +{ + /** + * \name Token + * \{ + */ + PID_OUT = 0xE1, + PID_IN = 0x69, + PID_SOF = 0xA5, + PID_SETUP = 0x2D, + /** + * \} + */ + + /** + * \name Data + * \{ + */ + PID_DATA0 = 0xC3, + PID_DATA1 = 0x4B, + PID_DATA2 = 0x87, // USB2 only + PID_MDATA = 0x0F, // USB2 only + /** + * \} + */ + + /** + * \name Handshake + * \{ + */ + PID_ACK = 0xD2, + PID_NAK = 0x5A, + PID_STALL = 0x1E, + PID_NYET = 0x96, + /** + * \} + */ + + /** + * \name Special + * \{ + */ + PID_PRE = 0x3C, PID_ERR = 0x3C, + PID_SPLIT = 0x78, + PID_PING = 0xB4, + PID_RESVD = 0xF0, + /** + * \} + */ +}; + +// === FUNCTIONS === +/** + * \note 00101 - X^5+X^2+1 + */ +Uint8 USB_TokenCRC(void *Data, int len); +/** + * \note X^16 + X15 + X^2 + 1 + */ +Uint16 USB_DataCRC(void *Data, int len); + // === STRUCTURES === /** * \brief Defines a USB Host Controller