//-----------------------------------------------------------------------
//
// Copyright © 2012 Nils Hammar and Future Technology Devices International Limited. All rights reserved.
//
//-----------------------------------------------------------------------
namespace FtdiApi
{
///
/// EEPROM structure specific to X-Series devices.
/// Inherits from FT_EEPROM_DATA.
///
[System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "SA1401:FieldsMustBePrivate", Justification = "Reviewed.")]
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Reviewed, intentional.")]
public class FT_XSERIES_EEPROM_STRUCTURE : FT_EEPROM_DATA
{
///
/// Determines if IOs are pulled down when the device is in suspend
///
public bool PullDownEnable = false;
///
/// Determines if the serial number is enabled
///
public bool SerNumEnable = true;
///
/// Determines if the USB version number is enabled
///
public bool USBVersionEnable = true;
///
/// The USB version number: 0x0200 (USB 2.0)
///
public ushort USBVersion = 0x0200;
///
/// Determines if AC pins have a slow slew rate
///
public byte ACSlowSlew;
///
/// Determines if the AC pins have a Schmitt input
///
public byte ACSchmittInput;
///
/// Determines the AC pins drive current in mA. Valid values are FT_DRIVE_CURRENT_4MA, FT_DRIVE_CURRENT_8MA, FT_DRIVE_CURRENT_12MA or FT_DRIVE_CURRENT_16MA
///
public byte ACDriveCurrent;
///
/// Determines if AD pins have a slow slew rate
///
public byte ADSlowSlew;
///
/// Determines if AD pins have a schmitt input
///
public byte ADSchmittInput;
///
/// Determines the AD pins drive current in mA. Valid values are FT_DRIVE_CURRENT_4MA, FT_DRIVE_CURRENT_8MA, FT_DRIVE_CURRENT_12MA or FT_DRIVE_CURRENT_16MA
///
public byte ADDriveCurrent;
///
/// Sets the function of the CBUS0 pin for FT232H devices.
/// Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED,
/// FT_CBUS_PWREN, FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_GPIO, FT_CBUS_TXDEN, FT_CBUS_CLK24,
/// FT_CBUS_CLK12, FT_CBUS_CLK6, FT_CBUS_BCD_CHARGER, FT_CBUS_BCD_CHARGER_N, FT_CBUS_VBUS_SENSE, FT_CBUS_BITBANG_WR,
/// FT_CBUS_BITBANG_RD, FT_CBUS_TIME_STAMP, FT_CBUS_KEEP_AWAKE
///
public byte Cbus0;
///
/// Sets the function of the CBUS1 pin for FT232H devices.
/// Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED,
/// FT_CBUS_PWREN, FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_GPIO, FT_CBUS_TXDEN, FT_CBUS_CLK24,
/// FT_CBUS_CLK12, FT_CBUS_CLK6, FT_CBUS_BCD_CHARGER, FT_CBUS_BCD_CHARGER_N, FT_CBUS_VBUS_SENSE, FT_CBUS_BITBANG_WR,
/// FT_CBUS_BITBANG_RD, FT_CBUS_TIME_STAMP, FT_CBUS_KEEP_AWAKE
///
public byte Cbus1;
///
/// Sets the function of the CBUS2 pin for FT232H devices.
/// Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED,
/// FT_CBUS_PWREN, FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_GPIO, FT_CBUS_TXDEN, FT_CBUS_CLK24,
/// FT_CBUS_CLK12, FT_CBUS_CLK6, FT_CBUS_BCD_CHARGER, FT_CBUS_BCD_CHARGER_N, FT_CBUS_VBUS_SENSE, FT_CBUS_BITBANG_WR,
/// FT_CBUS_BITBANG_RD, FT_CBUS_TIME_STAMP, FT_CBUS_KEEP_AWAKE
///
public byte Cbus2;
///
/// Sets the function of the CBUS3 pin for FT232H devices.
/// Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED,
/// FT_CBUS_PWREN, FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_GPIO, FT_CBUS_TXDEN, FT_CBUS_CLK24,
/// FT_CBUS_CLK12, FT_CBUS_CLK6, FT_CBUS_BCD_CHARGER, FT_CBUS_BCD_CHARGER_N, FT_CBUS_VBUS_SENSE, FT_CBUS_BITBANG_WR,
/// FT_CBUS_BITBANG_RD, FT_CBUS_TIME_STAMP, FT_CBUS_KEEP_AWAKE
///
public byte Cbus3;
///
/// Sets the function of the CBUS4 pin for FT232H devices.
/// Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED,
/// FT_CBUS_PWREN, FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_TXDEN, FT_CBUS_CLK24,
/// FT_CBUS_CLK12, FT_CBUS_CLK6, FT_CBUS_BCD_CHARGER, FT_CBUS_BCD_CHARGER_N, FT_CBUS_VBUS_SENSE, FT_CBUS_BITBANG_WR,
/// FT_CBUS_BITBANG_RD, FT_CBUS_TIME_STAMP, FT_CBUS_KEEP_AWAKE
///
public byte Cbus4;
///
/// Sets the function of the CBUS5 pin for FT232H devices.
/// Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED,
/// FT_CBUS_PWREN, FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_TXDEN, FT_CBUS_CLK24,
/// FT_CBUS_CLK12, FT_CBUS_CLK6, FT_CBUS_BCD_CHARGER, FT_CBUS_BCD_CHARGER_N, FT_CBUS_VBUS_SENSE, FT_CBUS_BITBANG_WR,
/// FT_CBUS_BITBANG_RD, FT_CBUS_TIME_STAMP, FT_CBUS_KEEP_AWAKE
///
public byte Cbus5;
///
/// Sets the function of the CBUS6 pin for FT232H devices.
/// Valid values are FT_CBUS_TRISTATE, FT_CBUS_RXLED, FT_CBUS_TXLED, FT_CBUS_TXRXLED,
/// FT_CBUS_PWREN, FT_CBUS_SLEEP, FT_CBUS_DRIVE_0, FT_CBUS_DRIVE_1, FT_CBUS_TXDEN, FT_CBUS_CLK24,
/// FT_CBUS_CLK12, FT_CBUS_CLK6, FT_CBUS_BCD_CHARGER, FT_CBUS_BCD_CHARGER_N, FT_CBUS_VBUS_SENSE, FT_CBUS_BITBANG_WR,
/// FT_CBUS_BITBANG_RD, FT_CBUS_TIME_STAMP, FT_CBUS_KEEP_AWAKE
///
public byte Cbus6;
///
/// Inverts the sense of the TXD line
///
public byte InvertTXD;
///
/// Inverts the sense of the RXD line
///
public byte InvertRXD;
///
/// Inverts the sense of the RTS line
///
public byte InvertRTS;
///
/// Inverts the sense of the CTS line
///
public byte InvertCTS;
///
/// Inverts the sense of the DTR line
///
public byte InvertDTR;
///
/// Inverts the sense of the DSR line
///
public byte InvertDSR;
///
/// Inverts the sense of the DCD line
///
public byte InvertDCD;
///
/// Inverts the sense of the RI line
///
public byte InvertRI;
///
/// Determines whether the Battery Charge Detection option is enabled.
///
public byte BCDEnable;
///
/// Asserts the power enable signal on CBUS when charging port detected.
///
public byte BCDForceCbusPWREN;
///
/// Forces the device never to go into sleep mode.
///
public byte BCDDisableSleep;
///
/// I2C slave device address.
///
public ushort I2CSlaveAddress;
///
/// I2C device ID
///
public uint I2CDeviceId;
///
/// Disable I2C Schmitt trigger.
///
public byte I2CDisableSchmitt;
///
/// FT1248 clock polarity - clock idle high (1) or clock idle low (0)
///
public byte FT1248Cpol;
///
/// FT1248 data is LSB (1) or MSB (0)
///
public byte FT1248Lsb;
///
/// FT1248 flow control enable.
///
public byte FT1248FlowControl;
///
/// Enable RS485 Echo Suppression
///
public byte RS485EchoSuppress;
///
/// Enable Power Save mode.
///
public byte PowerSaveEnable;
///
/// Determines whether the VCP driver is loaded.
///
public byte IsVCP;
}
}