X-Git-Url: http://developer.intra2net.com/git/?p=libftdi;a=blobdiff_plain;f=src%2Fftdi.h;h=d42c8c2518263779249d9e749595e0b42061e3a2;hp=0b4a4879d1f6f8689c20b9e98c684e5a893a2f22;hb=38801bf8af278a43149862ab7a07128f8c4d5aab;hpb=2938669c3789b6587f6db2fa2192706d6d830580 diff --git a/src/ftdi.h b/src/ftdi.h index 0b4a487..d42c8c2 100644 --- a/src/ftdi.h +++ b/src/ftdi.h @@ -182,8 +182,9 @@ struct ftdi_eeprom int self_powered; /** remote wakeup */ int remote_wakeup; - /** release */ - int release; + + /* Suspend on DBUS7 Low */ + int suspend_dbus7; /** input in isochronous transfer mode */ int in_is_isochronous; @@ -194,8 +195,6 @@ struct ftdi_eeprom /** use serial */ int use_serial; - /** fake usb version */ - int change_usb_version; /** usb version */ int usb_version; /** maximum power */ @@ -216,16 +215,38 @@ struct ftdi_eeprom /* 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. */ + /** 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 port (2232C). */ + /** 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; + + /** 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; @@ -301,33 +322,11 @@ struct ftdi_device_list struct libusb_device *dev; }; -/** TXDEN */ -#define CBUS_TXDEN 0 -/** PWREN# */ -#define CBUS_PWREN 1 -/** RXLED# */ -#define CBUS_RXLED 2 -/** TXLED#*/ -#define CBUS_TXLED 3 -/** RXLED# & TXLED# */ -#define CBUS_TXRXLED 4 -/** SLEEP# */ -#define CBUS_SLEEP 5 -/** 48 MHz clock */ -#define CBUS_CLK48 6 -/** 24 MHz clock */ -#define CBUS_CLK24 7 -/** 12 MHz clock */ -#define CBUS_CLK12 8 -/** 6 MHz clock */ -#define CBUS_CLK6 9 -/** Bitbang IO Mode*/ -#define CBUS_IOMODE 10 -/** Bitbang IO WR#*/ -#define CBUS_BB_WR 11 -/** Bitbang IO RD#*/ -#define CBUS_BB_RD 12 - +#define USE_SERIAL_NUM 0x08 +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 = 0xa, CBUS_BB_WR = 0xb, CBUS_BB_RD = 0xc, CBUS_BB = 0xd}; /** Invert TXD# */ #define INVERT_TXD 0x01 @@ -352,11 +351,21 @@ struct ftdi_device_list #define CHANNEL_IS_CPU 0x2 #define CHANNEL_IS_OPTO 0x4 +#define DRIVE_4MA 0 +#define DRIVE_8MA 1 +#define DRIVE_12MA 2 +#define DRIVE_16MA 3 +#define SLOW_SLEW 4 +#define IS_SCHMITT 8 + /** Driver Type. */ #define DRIVER_VCP 0x08 +#define SUSPEND_DBUS7 0x80 + /** High current drive. */ -#define HIGH_CURRENT_DRIVE 0x10 +#define HIGH_CURRENT_DRIVE 0x10 +#define HIGH_CURRENT_DRIVE_R 0x04 /** \brief Progress Info for streaming read