X-Git-Url: http://developer.intra2net.com/git/?p=libftdi;a=blobdiff_plain;f=src%2Fftdi.h;h=6fad94b74c831356ee1498b18bb63c1a1b21dd28;hp=0d34b88aba73f9b832d920747aedd02a13f0107a;hb=caec12943241837aa054c691f49c548bc2e87145;hpb=2c2953e66c7167e76fe64633435a5b232a8efc40 diff --git a/src/ftdi.h b/src/ftdi.h index 0d34b88..6fad94b 100644 --- a/src/ftdi.h +++ b/src/ftdi.h @@ -19,7 +19,7 @@ #include -/* Evne on 93xx66 at max 256 bytes are used (AN_121)*/ +/* Even on 93xx66 at max 256 bytes are used (AN_121)*/ #define FTDI_MAX_EEPROM_SIZE 256 /** FTDI chip type */ @@ -182,8 +182,8 @@ struct ftdi_eeprom int self_powered; /** remote wakeup */ int remote_wakeup; - /** release */ - int release; + + int is_not_pnp; /* Suspend on DBUS7 Low */ int suspend_dbus7; @@ -199,7 +199,9 @@ struct ftdi_eeprom int use_serial; /** usb version */ int usb_version; - /** maximum power */ + /** Use usb version on FT2232 devices*/ + int use_usb_version; + /** maximum power */ int max_power; /** manufacturer name */ @@ -247,13 +249,13 @@ struct ftdi_eeprom int group3_drive; int group3_schmitt; int group3_slew; - /** eeprom size in bytes. This doesn't get stored in the eeprom but is the only way to pass it to ftdi_eeprom_build. */ int size; - /* EEPROM Type 46 for 93xx46, 56 for 93xx56 and 66 for 93xx66*/ + /* EEPROM Type 0x46 for 93xx46, 0x56 for 93xx56 and 0x66 for 93xx66*/ int chip; + unsigned char buf[FTDI_MAX_EEPROM_SIZE]; }; /** @@ -363,7 +365,9 @@ enum ftdi_cbus_func {/* FIXME: Recheck value, especially the last */ /** Driver Type. */ #define DRIVER_VCP 0x08 -#define SUSPEND_DBUS7 0x80 +#define USE_USB_VERSION_BIT 0x10 + +#define SUSPEND_DBUS7_BIT 0x80 /** High current drive. */ #define HIGH_CURRENT_DRIVE 0x10 @@ -470,20 +474,16 @@ extern "C" int ftdi_set_event_char(struct ftdi_context *ftdi, unsigned char eventch, unsigned char enable); int ftdi_set_error_char(struct ftdi_context *ftdi, unsigned char errorch, unsigned char enable); - /* set eeprom size */ - void ftdi_eeprom_setsize(struct ftdi_context *ftdi, struct ftdi_eeprom *eeprom, int size); - - /* init and build eeprom from ftdi_eeprom structure */ - void ftdi_eeprom_initdefaults(struct ftdi_context *ftdi); - void ftdi_eeprom_free(struct ftdi_context *ftdi); - int ftdi_eeprom_build(struct ftdi_context *ftdi, unsigned char *output); - int ftdi_eeprom_decode(struct ftdi_context *ftdi, unsigned char *output, int size, int verbose); + /* init eeprom for the given FTDI type */ + int ftdi_eeprom_initdefaults(struct ftdi_context *ftdi, + char * manufacturer, char *product, + char * serial); + int ftdi_eeprom_build(struct ftdi_context *ftdi); + int ftdi_eeprom_decode(struct ftdi_context *ftdi, int verbose); - /* "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_eeprom(struct ftdi_context *ftdi); int ftdi_read_chipid(struct ftdi_context *ftdi, unsigned int *chipid); - int ftdi_write_eeprom(struct ftdi_context *ftdi, unsigned char *eeprom); + int ftdi_write_eeprom(struct ftdi_context *ftdi); int ftdi_erase_eeprom(struct ftdi_context *ftdi); int ftdi_read_eeprom_location (struct ftdi_context *ftdi, int eeprom_addr, unsigned short *eeprom_val);