X-Git-Url: http://developer.intra2net.com/git/?p=libftdi;a=blobdiff_plain;f=src%2Fftdi.h;h=0348eea04fe71b300dce077ccd37b105809d1e50;hp=759e61b5c783f3c491d89558d732033528fef019;hb=b25d91651338fdf323bcfae5f66d47fec69819f7;hpb=0220adfa93f4baab153efbe71873551f0325a42f diff --git a/src/ftdi.h b/src/ftdi.h index 759e61b..0348eea 100644 --- a/src/ftdi.h +++ b/src/ftdi.h @@ -2,7 +2,7 @@ ftdi.h - description ------------------- begin : Fri Apr 4 2003 - copyright : (C) 2003-2011 by Intra2net AG and the libftdi developers + copyright : (C) 2003-2013 by Intra2net AG and the libftdi developers email : opensource@intra2net.com ***************************************************************************/ @@ -19,9 +19,6 @@ #include -/* 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() */ @@ -192,106 +189,6 @@ struct ftdi_transfer_control }; /** - \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. @@ -404,7 +301,13 @@ enum ftdi_eeprom_value POWER_SAVE = 45, CLOCK_POLARITY = 46, DATA_ORDER = 47, - FLOW_CONTROL = 48 + FLOW_CONTROL = 48, + CHANNEL_C_DRIVER = 49, + CHANNEL_D_DRIVER = 50, + CHANNEL_A_RS485 = 51, + CHANNEL_B_RS485 = 52, + CHANNEL_C_RS485 = 53, + CHANNEL_D_RS485 = 54, }; /** @@ -457,6 +360,8 @@ enum ftdi_cbush_func {/* FIXME: Recheck value, especially the last */ #define CHANNEL_IS_CPU 0x4 #define CHANNEL_IS_FT1284 0x8 +#define CHANNEL_IS_RS485 0x10 + #define DRIVE_4MA 0 #define DRIVE_8MA 1 #define DRIVE_12MA 2 @@ -569,17 +474,15 @@ extern "C" int ftdi_write_data_set_chunksize(struct ftdi_context *ftdi, unsigned int chunksize); int ftdi_write_data_get_chunksize(struct ftdi_context *ftdi, unsigned int *chunksize); - int ftdi_readstream(struct ftdi_context *ftdi, FTDIStreamCallback *callback, + int ftdi_readstream(struct ftdi_context *ftdi, FTDIStreamCallback *callback, void *userdata, int packetsPerTransfer, int numTransfers); - int ftdi_write_data_async(struct ftdi_context *ftdi, unsigned char *buf, int size); - void ftdi_async_complete(struct ftdi_context *ftdi, int wait_for_more); + struct ftdi_transfer_control *ftdi_write_data_submit(struct ftdi_context *ftdi, unsigned char *buf, int size); struct ftdi_transfer_control *ftdi_read_data_submit(struct ftdi_context *ftdi, unsigned char *buf, int size); int ftdi_transfer_data_done(struct ftdi_transfer_control *tc); - int DEPRECATED(ftdi_enable_bitbang(struct ftdi_context *ftdi, unsigned char bitmask)); - int ftdi_disable_bitbang(struct ftdi_context *ftdi); int ftdi_set_bitmode(struct ftdi_context *ftdi, unsigned char bitmask, unsigned char mode); + int ftdi_disable_bitbang(struct ftdi_context *ftdi); int ftdi_read_pins(struct ftdi_context *ftdi, unsigned char *pins); int ftdi_set_latency_timer(struct ftdi_context *ftdi, unsigned char latency);