#define SIO_SET_BAUD_RATE 3 /* Set baud rate */
#define SIO_SET_DATA 4 /* Set the data characteristics of the port */
-#define SIO_RESET_REQUEST_TYPE 0x40
-#define SIO_RESET_REQUEST SIO_RESET
+#define FTDI_DEVICE_OUT_REQTYPE (USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_OUT)
+#define FTDI_DEVICE_IN_REQTYPE (USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN)
+
+/* Requests */
+#define SIO_RESET_REQUEST SIO_RESET
+#define SIO_SET_BAUDRATE_REQUEST SIO_SET_BAUD_RATE
+#define SIO_SET_DATA_REQUEST SIO_SET_DATA
+#define SIO_SET_FLOW_CTRL_REQUEST SIO_SET_FLOW_CTRL
+#define SIO_SET_MODEM_CTRL_REQUEST SIO_MODEM_CTRL
+#define SIO_POLL_MODEM_STATUS_REQUEST 0x05
+#define SIO_SET_EVENT_CHAR_REQUEST 0x06
+#define SIO_SET_ERROR_CHAR_REQUEST 0x07
+#define SIO_SET_LATENCY_TIMER_REQUEST 0x09
+#define SIO_GET_LATENCY_TIMER_REQUEST 0x0A
+#define SIO_SET_BITMODE_REQUEST 0x0B
+#define SIO_READ_PINS_REQUEST 0x0C
+#define SIO_READ_EEPROM_REQUEST 0x90
+#define SIO_WRITE_EEPROM_REQUEST 0x91
+#define SIO_ERASE_EEPROM_REQUEST 0x92
+
+
#define SIO_RESET_SIO 0
#define SIO_RESET_PURGE_RX 1
#define SIO_RESET_PURGE_TX 2
-#define SIO_SET_BAUDRATE_REQUEST_TYPE 0x40
-#define SIO_SET_BAUDRATE_REQUEST SIO_SET_BAUD_RATE
-
-#define SIO_SET_DATA_REQUEST_TYPE 0x40
-#define SIO_SET_DATA_REQUEST SIO_SET_DATA
-
-#define SIO_SET_FLOW_CTRL_REQUEST SIO_SET_FLOW_CTRL
-#define SIO_SET_FLOW_CTRL_REQUEST_TYPE 0x40
-
#define SIO_DISABLE_FLOW_CTRL 0x0
#define SIO_RTS_CTS_HS (0x1 << 8)
#define SIO_DTR_DSR_HS (0x2 << 8)
#define SIO_XON_XOFF_HS (0x4 << 8)
-#define SIO_SET_MODEM_CTRL_REQUEST_TYPE 0x40
-#define SIO_SET_MODEM_CTRL_REQUEST SIO_MODEM_CTRL
-
#define SIO_SET_DTR_MASK 0x1
#define SIO_SET_DTR_HIGH ( 1 | ( SIO_SET_DTR_MASK << 8))
#define SIO_SET_DTR_LOW ( 0 | ( SIO_SET_DTR_MASK << 8))
/* init and build eeprom from ftdi_eeprom structure */
void ftdi_eeprom_initdefaults(struct ftdi_eeprom *eeprom);
int ftdi_eeprom_build(struct ftdi_eeprom *eeprom, unsigned char *output);
+ void ftdi_eeprom_decode(struct ftdi_eeprom *eeprom, unsigned char *output);
/* "eeprom" needs to be valid 128 byte eeprom (generated by the eeprom generator)
the checksum of the eeprom is valided */