X-Git-Url: http://developer.intra2net.com/git/?a=blobdiff_plain;f=src%2Fftdi.h;h=759e61b5c783f3c491d89558d732033528fef019;hb=92cbae17a56ce3c6e5f01ea89dafaec75d865be7;hp=c0a3d3db3c9c6a6c17ce98d612b2e96bd0d9bb75;hpb=7a172cafefbfccdc0f93916947bac74c758ae1d6;p=libftdi diff --git a/src/ftdi.h b/src/ftdi.h index c0a3d3d..759e61b 100644 --- a/src/ftdi.h +++ b/src/ftdi.h @@ -200,6 +200,10 @@ struct ftdi_eeprom 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; @@ -245,7 +249,7 @@ struct ftdi_eeprom /* 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 */ @@ -448,10 +452,10 @@ enum ftdi_cbush_func {/* FIXME: Recheck value, especially the last */ /** 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 @@ -494,6 +498,23 @@ typedef struct 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" @@ -508,6 +529,8 @@ 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); @@ -584,6 +607,7 @@ extern "C" 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);