#include <libusb.h>
-/* Even on 93xx66 at max 256 bytes are used (AN_121)*/
-#define FTDI_MAX_EEPROM_SIZE 256
-
/** FTDI chip type */
enum ftdi_chip_type { TYPE_AM=0, TYPE_BM=1, TYPE_2232C=2, TYPE_R=3, TYPE_2232H=4, TYPE_4232H=5, TYPE_232H=6 };
/** Parity mode for ftdi_set_line_property() */
};
/**
- \brief FTDI eeprom structure
-*/
-struct ftdi_eeprom
-{
- /** vendor id */
- 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;
- /** remote wakeup */
- int remote_wakeup;
-
- int is_not_pnp;
-
- /* Suspend on DBUS7 Low */
- int suspend_dbus7;
-
- /** input in isochronous transfer mode */
- int in_is_isochronous;
- /** output in isochronous transfer mode */
- int out_is_isochronous;
- /** suspend pull downs */
- int suspend_pull_downs;
-
- /** use serial */
- int use_serial;
- /** usb version */
- int usb_version;
- /** Use usb version on FT2232 devices*/
- int use_usb_version;
- /** maximum power */
- int max_power;
-
- /** manufacturer name */
- char *manufacturer;
- /** product name */
- char *product;
- /** 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/FT232H devices (and possibly others as well) */
- /** CBUS pin function. See CBUS_xxx defines. */
- int cbus_function[10];
- /** Select hight current drive on R devices. */
- int high_current;
- /** Select hight current drive on A channel (2232C */
- int high_current_a;
- /** Select hight current drive on B channel (2232C). */
- int high_current_b;
- /** Select inversion of data lines (bitmask). */
- int invert;
-
- /*2232H/4432H Group specific values */
- /* Group0 is AL on 2322H and A on 4232H
- Group1 is AH on 2232H and B on 4232H
- Group2 is BL on 2322H and C on 4232H
- Group3 is BH on 2232H and C on 4232H*/
- int group0_drive;
- int group0_schmitt;
- int group0_slew;
- int group1_drive;
- int group1_schmitt;
- int group1_slew;
- int group2_drive;
- int group2_schmitt;
- int group2_slew;
- int group3_drive;
- int group3_schmitt;
- int group3_slew;
-
- int powersave;
-
- int clock_polarity;
- int data_order;
- int flow_control;
-
- /** 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 0x46 for 93xx46, 0x56 for 93xx56 and 0x66 for 93xx66*/
- int chip;
- unsigned char buf[FTDI_MAX_EEPROM_SIZE];
-};
-
-/**
\brief Main context structure for all libftdi functions.
Do not access directly if possible.