Document ftdi_eeprom_initdefaults Add return value to ftdi_eeprom_initdefaults
[libftdi] / src / ftdi.h
index 8fc235f..94d16dc 100644 (file)
@@ -182,8 +182,6 @@ struct ftdi_eeprom
     int self_powered;
     /** remote wakeup */
     int remote_wakeup;
-    /** release */
-    int release;
 
     /* Suspend on DBUS7 Low */
     int suspend_dbus7;
@@ -254,6 +252,7 @@ struct ftdi_eeprom
     int size;
     /* EEPROM Type 46 for 93xx46, 56 for 93xx56 and 66 for 93xx66*/
     int chip;
+    unsigned char buf[FTDI_MAX_EEPROM_SIZE];
 };
 
 /**
@@ -328,7 +327,7 @@ struct ftdi_device_list
 enum ftdi_cbus_func {/* FIXME: Recheck value, especially the last */
     CBUS_TXDEN = 0, CBUS_PWREN = 1, CBUS_RXLED = 2, CBUS_TXLED = 3, CBUS_TXRXLED = 4,
     CBUS_SLEEP = 5, CBUS_CLK48 = 6, CBUS_CLK24 = 7, CBUS_CLK12 = 8, CBUS_CLK6 =  9,
-    CBUS_IOMODE = 10, CBUS_BB_WR = 11, CBUS_BB_RD = 12, CBUS_BB_RXF = 13, CBUS_BB_TXE = 14};
+    CBUS_IOMODE = 0xa, CBUS_BB_WR = 0xb, CBUS_BB_RD = 0xc, CBUS_BB   = 0xd};
 
 /** Invert TXD# */
 #define INVERT_TXD 0x01
@@ -366,7 +365,7 @@ enum ftdi_cbus_func {/* FIXME: Recheck value, especially the last */
 #define SUSPEND_DBUS7 0x80
 
 /** High current drive. */
-#define HIGH_CURRENT_DRIVE 0x10
+#define HIGH_CURRENT_DRIVE   0x10
 #define HIGH_CURRENT_DRIVE_R 0x04
 
 /**
@@ -470,20 +469,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 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);
 
-    /* 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);
-
-    /* "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);