#include <usb.h>
/// FTDI chip type
-enum ftdi_chip_type { TYPE_AM=0, TYPE_BM=1, TYPE_2232C=2 };
+enum ftdi_chip_type { TYPE_AM=0, TYPE_BM=1, TYPE_2232C=2, TYPE_R=3 };
/// Parity mode for ftdi_set_line_property()
enum ftdi_parity_type { NONE=0, ODD=1, EVEN=2, MARK=3, SPACE=4 };
/// Number of stop bits for ftdi_set_line_property()
BITMODE_MPSSE = 0x02,
BITMODE_SYNCBB = 0x04,
BITMODE_MCU = 0x08,
- BITMODE_OPTO = 0x10
+ // CPU-style fifo mode gets set via EEPROM
+ BITMODE_OPTO = 0x10,
+ BITMODE_CBUS = 0x20
};
/// Port interface for FT2232C
#define SIO_RTS_CTS_HS (0x1 << 8)
/**
- Main context structure for all libftdi functions.
+ \brief Main context structure for all libftdi functions.
Do not access directly if possible.
*/
};
/**
- Single linked list of usb devices created by ftdi_usb_find_all()
+ \brief list of usb devices created by ftdi_usb_find_all()
*/
struct ftdi_device_list {
/// pointer to next entry
};
/**
- FTDI eeprom structure
+ \brief FTDI eeprom structure
*/
struct ftdi_eeprom {
/// vendor id
int ftdi_usb_find_all(struct ftdi_context *ftdi, struct ftdi_device_list **devlist,
int vendor, int product);
void ftdi_list_free(struct ftdi_device_list **devlist);
+ int ftdi_usb_get_strings(struct ftdi_context *ftdi, struct usb_device *dev,
+ char * manufacturer, int mnf_len,
+ char * description, int desc_len,
+ char * serial, int serial_len);
int ftdi_usb_open(struct ftdi_context *ftdi, int vendor, int product);
int ftdi_usb_open_desc(struct ftdi_context *ftdi, int vendor, int product,
int ftdi_read_data_get_chunksize(struct ftdi_context *ftdi, unsigned int *chunksize);
int ftdi_write_data(struct ftdi_context *ftdi, unsigned char *buf, int size);
+ int ftdi_write_data_async(struct ftdi_context *ftdi, unsigned char *buf, int size);
int ftdi_write_data_set_chunksize(struct ftdi_context *ftdi, unsigned int chunksize);
int ftdi_write_data_get_chunksize(struct ftdi_context *ftdi, unsigned int *chunksize);
// "eeprom" needs to be valid 128 byte eeprom (generated by the eeprom generator)
// the checksum of the eeprom is valided
int ftdi_read_eeprom(struct ftdi_context *ftdi, unsigned char *eeprom);
+ int ftdi_read_chipid(struct ftdi_context *ftdi, unsigned int *chipid);
int ftdi_write_eeprom(struct ftdi_context *ftdi, unsigned char *eeprom);
int ftdi_erase_eeprom(struct ftdi_context *ftdi);