X-Git-Url: http://developer.intra2net.com/git/?p=libftdi;a=blobdiff_plain;f=src%2Fftdi.h;h=0b4a4879d1f6f8689c20b9e98c684e5a893a2f22;hp=d186ee19c4168f7a4b540bc0d2bd386a721eacd7;hb=e107f5092fa731fad1aa900b5c736fcb97c76d47;hpb=2d543486ed96287e3d0f8f33d82321dfc2f835d0 diff --git a/src/ftdi.h b/src/ftdi.h index d186ee1..0b4a487 100644 --- a/src/ftdi.h +++ b/src/ftdi.h @@ -182,8 +182,8 @@ struct ftdi_eeprom int self_powered; /** remote wakeup */ int remote_wakeup; - /** chip type */ - int chip_type; + /** release */ + int release; /** input in isochronous transfer mode */ int in_is_isochronous; @@ -208,17 +208,29 @@ struct ftdi_eeprom /** serial number */ char *serial; + /* 2232D/H(/FT4432H?) specific */ + /* Hardware type, 0 = RS232 Uart, 1 = 245 FIFO, 2 = CPU FIFO, + 4 = OPTO Isolate */ + int channel_a_type; + int channel_b_type; + /* Driver Type, 1 = VCP */ + int channel_a_driver; + int channel_b_driver; /* Special function of FT232R devices (and possibly others as well) */ /** CBUS pin function. See CBUS_xxx defines. */ int cbus_function[5]; /** Select hight current drive. */ - int high_current; + int high_current_a; + /** Select hight current drive on B port (2232C). */ + int high_current_b; /** Select inversion of data lines (bitmask). */ int invert; /** 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*/ + int chip; }; /** @@ -334,8 +346,17 @@ struct ftdi_device_list /** Invert RI# */ #define INVERT_RI 0x80 +/** Interface Mode. */ +#define CHANNEL_IS_UART 0x0 +#define CHANNEL_IS_245 0x1 +#define CHANNEL_IS_CPU 0x2 +#define CHANNEL_IS_OPTO 0x4 + +/** Driver Type. */ +#define DRIVER_VCP 0x08 + /** High current drive. */ -#define HIGH_CURRENT_DRIVE 0x04 +#define HIGH_CURRENT_DRIVE 0x10 /** \brief Progress Info for streaming read @@ -445,7 +466,7 @@ extern "C" 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 ftdi_eeprom_decode(struct ftdi_context *ftdi, unsigned char *output, int size, int verbose); /* "eeprom" needs to be valid 128 byte eeprom (generated by the eeprom generator) the checksum of the eeprom is valided */