ftdi.h - description
-------------------
begin : Fri Apr 4 2003
- copyright : (C) 2003 by Intra2net AG
+ copyright : (C) 2003-2011 by Intra2net AG and the libftdi developers
email : opensource@intra2net.com
***************************************************************************/
#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 };
+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() */
enum ftdi_parity_type { NONE=0, ODD=1, EVEN=2, MARK=3, SPACE=4 };
/** Number of stop bits for ftdi_set_line_property() */
INTERFACE_D = 4
};
+/** Automatic loading / unloading of kernel modules */
+enum ftdi_module_detach_mode
+{
+ AUTO_DETACH_SIO_MODULE = 0,
+ DONT_DETACH_SIO_MODULE = 1
+};
+
/* Shifting commands IN MPSSE Mode*/
#define MPSSE_WRITE_NEG 0x01 /* Write TDI/DO on negative TCK/SK edge*/
#define MPSSE_BITMODE 0x02 /* Write bits, not bytes */
#define LOOPBACK_START 0x84
#define LOOPBACK_END 0x85
#define TCK_DIVISOR 0x86
+/* H Type specific commands */
+#define DIS_DIV_5 0x8a
+#define EN_DIV_5 0x8b
+#define EN_3_PHASE 0x8c
+#define DIS_3_PHASE 0x8d
+#define CLK_BITS 0x8e
+#define CLK_BYTES 0x8f
+#define CLK_WAIT_HIGH 0x94
+#define CLK_WAIT_LOW 0x95
+#define EN_ADAPTIVE 0x96
+#define DIS_ADAPTIVE 0x97
+#define CLK_BYTES_OR_HIGH 0x9c
+#define CLK_BYTES_OR_LOW 0x0d
+/*FT232H specific commands */
+#define DRIVE_OPEN_COLLECTOR 0x9e
/* Value Low */
/* Value HIGH */ /*rate is 12000000/((1+value)*2) */
#define DIV_VALUE(rate) (rate > 6000000)?0:((6000000/rate -1) > 0xffff)? 0xffff: (6000000/rate -1)
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;
/** String representation of last error */
char *error_str;
+
+ /** Defines behavior in case a kernel module is already attached to the device */
+ enum ftdi_module_detach_mode module_detach_mode;
};
/**
GROUP3_SCHMITT = 36,
GROUP3_SLEW = 37,
CHIP_SIZE = 38,
- CHIP_TYPE = 39
+ CHIP_TYPE = 39,
+ POWER_SAVE = 40,
+ CLOCK_POLARITY = 41,
+ DATA_ORDER = 42,
+ FLOW_CONTROL = 43
};
/**
/** pointer to libusb's usb_device */
struct libusb_device *dev;
};
+#define FT1284_CLK_IDLE_STATE 0x01
+#define FT1284_DATA_LSB 0x02
+#define FT1284_FLOW_CONTROL 0x04
+#define POWER_SAVE_DISABLE_H 0x80
#define USE_SERIAL_NUM 0x08
enum ftdi_cbus_func {/* FIXME: Recheck value, especially the last */
/** Driver Type. */
#define DRIVER_VCP 0x08
+#define DRIVER_VCPH 0x10 /* FT232H has moved the VCP bit */
#define USE_USB_VERSION_BIT 0x10