int vendor_id;
/** product id */
int product_id;
+
+ /** Was the eeprom structure initialized for the actual
+ connected device? **/
+ int initialized_for_connected_device;
/** self powered */
int self_powered;
/* Special function of FT232R/FT232H devices (and possibly others as well) */
/** CBUS pin function. See CBUS_xxx defines. */
- int cbus_function[9];
+ int cbus_function[10];
/** Select hight current drive on R devices. */
int high_current;
/** Select hight current drive on A channel (2232C */
/** Interface Mode. */
#define CHANNEL_IS_UART 0x0
-#define CHANNEL_IS_245 0x1
-#define CHANNEL_IS_CPU 0x2
-#define CHANNEL_IS_OPTO 0x3
-#define CHANNEL_IS_FT1284 0x4
+#define CHANNEL_IS_FIFO 0x1
+#define CHANNEL_IS_OPTO 0x2
+#define CHANNEL_IS_CPU 0x4
+#define CHANNEL_IS_FT1284 0x8
#define DRIVE_4MA 0
#define DRIVE_8MA 1
typedef int (FTDIStreamCallback)(uint8_t *buffer, int length,
FTDIProgressInfo *progress, void *userdata);
+/**
+ * Provide libftdi version information
+ * major: Library major version
+ * minor: Library minor version
+ * micro: Currently unused, ight get used for hotfixes.
+ * version_str: Version as (static) string
+ * snapshot_str: Git snapshot version if known. Otherwise "unknown" or empty string.
+*/
+struct ftdi_version_info
+{
+ int major;
+ int minor;
+ int micro;
+ const char *version_str;
+ const char *snapshot_str;
+};
+
#ifdef __cplusplus
extern "C"
void ftdi_free(struct ftdi_context *ftdi);
void ftdi_set_usbdev (struct ftdi_context *ftdi, struct libusb_device_handle *usbdev);
+ struct ftdi_version_info ftdi_get_library_version();
+
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_set_eeprom_value(struct ftdi_context *ftdi, enum ftdi_eeprom_value value_name, int value);
int ftdi_get_eeprom_buf(struct ftdi_context *ftdi, unsigned char * buf, int size);
+ int ftdi_set_eeprom_buf(struct ftdi_context *ftdi, const unsigned char * buf, int size);
int ftdi_read_eeprom(struct ftdi_context *ftdi);
int ftdi_read_chipid(struct ftdi_context *ftdi, unsigned int *chipid);