Fix channel mode specific bits, noisy output
[libftdi] / src / ftdi.h
index b02ed04..0b4a487 100644 (file)
@@ -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,13 +466,12 @@ 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 */
     int ftdi_read_eeprom(struct ftdi_context *ftdi, unsigned char *eeprom);
     int ftdi_read_chipid(struct ftdi_context *ftdi, unsigned int *chipid);
-    int ftdi_read_eeprom_getsize(struct ftdi_context *ftdi, unsigned char *eeprom, int maxsize);
     int ftdi_write_eeprom(struct ftdi_context *ftdi, unsigned char *eeprom);
     int ftdi_erase_eeprom(struct ftdi_context *ftdi);