libftdi Archives

Subject: [PATCH 4/4] doc: document all EEPROM config options and drive settings

From: Vincent Jardin <vjardin@xxxxxxx>
To: libftdi@xxxxxxxxxxxxxxxxxxxxxxx
Cc: thomas.jarosch@xxxxxxxxxxxxx, Vincent Jardin <vjardin@xxxxxxx>
Date: Sat, 7 Mar 2026 00:15:49 +0100
Update all documentation to reflect the full set of ftdi_eeprom
config file options:

example.conf:
  - Add all missing options: release_number, is_not_pnp, group0-3
    drive/schmitt/slew, high_current_a/b, suspend_dbus7,
    external_oscillator, power_save, clock_polarity, data_order,
    flow_control
  - Document %UUID% serial auto-generation
  - Add per-chip group-to-bus mapping table and nibble encoding
  - Add I2C drive settings example
  - Reorganize into logical sections with consistent formatting

doc/EEPROM-structure:
  - Add FT232H column (was missing entirely)
  - Add FT230X column for drive bytes
  - Add I/O drive settings section for bytes 0x0C-0x0D with nibble
    encoding and per-chip group layout
  - Document FT232H byte 0x01 (FT1284, power save) and CBUS range

README, ChangeLog:
  - Add entries for drive settings, boolean fix, FT230X, UUID serial

README.build:
  - Add uuid-dev to optional build dependencies
---
 ChangeLog                |   6 +
 README                   |   6 +
 README.build             |   1 +
 doc/EEPROM-structure     |  64 +++++++----
 ftdi_eeprom/example.conf | 243 ++++++++++++++++++++++++---------------
 5 files changed, 207 insertions(+), 113 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 6d3099a..c695030 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -9,6 +9,12 @@ New in 1.6rc1 - 2026-01-XX
   * ftdi_eeprom_initdefaults() now takes const arguments
   * Don't spam stderr when flashing FT232H eeprom
   * EEPROM decoder: Show C/D channel mode for FT4232, B channel mode for 
FT2232C
+  * Expose all I/O drive settings: group0-3 drive/schmitt/slew for all 
Hi-Speed chips
+  * Add per-chip boolean options: power_save, clock_polarity, data_order, 
flow_control,
+    high_current_a/b, suspend_dbus7, external_oscillator, is_not_pnp
+  * Fix boolean options so they can be explicitly disabled (e.g. 
group0_schmitt=false)
+  * Make FT230X DBUS/CBUS drive settings configurable (group0/group1)
+  * Add UUID auto-generation for serial numbers (serial="%UUID%", requires 
libuuid)
 * CMake build system:
   * Bump minimal required version to 3.15
   * Fix building as a subproject
diff --git a/README b/README
index ea15ee4..9d9b0b1 100644
--- a/README
+++ b/README
@@ -29,6 +29,12 @@ Changes
   * ftdi_eeprom_initdefaults() now takes const arguments
   * Don't spam stderr when flashing FT232H eeprom
   * EEPROM decoder: Show C/D channel mode for FT4232, B channel mode for 
FT2232C
+  * Expose all I/O drive settings: group0-3 drive/schmitt/slew for all 
Hi-Speed chips
+  * Add per-chip boolean options: power_save, clock_polarity, data_order, 
flow_control,
+    high_current_a/b, suspend_dbus7, external_oscillator, is_not_pnp
+  * Fix boolean options so they can be explicitly disabled (e.g. 
group0_schmitt=false)
+  * Make FT230X DBUS/CBUS drive settings configurable (group0/group1)
+  * Add UUID auto-generation for serial numbers (serial="%UUID%", requires 
libuuid)
 * CMake build system:
   * Bump minimal required version to 3.15
   * Fix building as a subproject
diff --git a/README.build b/README.build
index 54c253f..408cad3 100644
--- a/README.build
+++ b/README.build
@@ -13,6 +13,7 @@ sudo apt-get install libusb-1.0-devel (yum install 
libusb-devel)
 earlier, it is recommended you build libusbx-1.0.14 or later).
 
 sudo apt-get install libconfuse-dev (for ftdi-eeprom) (yum install 
libconfuse-devel)
+sudo apt-get install uuid-dev (for ftdi-eeprom UUID serial support, optional) 
(yum install libuuid-devel)
 sudo apt-get install swig python-dev (for python bindings) (yum install swig 
python-devel)
 sudo apt-get install libboost-all-dev (for unit test) (yum install boost-devel)
 
diff --git a/doc/EEPROM-structure b/doc/EEPROM-structure
index 4a590b6..a58f8ee 100644
--- a/doc/EEPROM-structure
+++ b/doc/EEPROM-structure
@@ -3,32 +3,32 @@ Here we try to document what we know about the EEPROM 
Structure.
 Even with a 93xx66 EEPROM, at maximum 256 Bytes are used
 
 All important things happen in the first
-0x14(FT232/245), 0x16(FT2232CD), 0x18(FT232/245R) or 0x1a (FT2232H/4432H) bytes
+0x14(FT232/245), 0x16(FT2232CD), 0x18(FT232/245R) or 0x1a (FT2232H/4232H) bytes
 
 Type   |  Use extra EEPROM space
 FT2XXB |  No
 
-Byte.BIT| TYPE_AM TYPE_BM   TYPE_2232C       TYPE_R          TYPE_2232H       
TYPE_4232H
-00.0    |      0       0   channel_a_type   232R/245R        channel_a_type   0
-00.1    |      0       0   channel_a_type                    channel_a_type   0
-00.2    |      0       0   channel_a_type   high_current     channel_a_type   0
-00.3    |      0       0   channel_a_driver channel_a_driver channel_a_driver 
channel_a_driver
-00.4    |      0       0   high_current_a   0                0                0
-00.5    |      0       0   0                0                0                0
-00.6    |      0       0   0                0                0                0
-00.7    |      0       0   0                0                SUSPEND_DBUS7    
channel_c_driver
+Byte.BIT| TYPE_AM TYPE_BM   TYPE_2232C       TYPE_R          TYPE_2232H       
TYPE_4232H       TYPE_232H
+00.0    |      0       0   channel_a_type   232R/245R        channel_a_type   
0                channel_a_type
+00.1    |      0       0   channel_a_type                    channel_a_type   
0                channel_a_type
+00.2    |      0       0   channel_a_type   high_current     channel_a_type   
0                channel_a_type
+00.3    |      0       0   channel_a_driver channel_a_driver channel_a_driver 
channel_a_driver channel_a_type
+00.4    |      0       0   high_current_a   0                0                
channel_c_driver channel_a_driver(VCPH)
+00.5    |      0       0   0                0                0                
0                0
+00.6    |      0       0   0                0                0                
0                0
+00.7    |      0       0   0                0                SUSPEND_DBUS7    
0                0
 
 On TYPE_R 00.0 is set for the FT245R and cleared for the FT232R
 On TYPE_R 00.3 set means D2XX, on other devices VCP
 
-01.0    |      0       0   channel_b_type                    channel_b_type   0
-01.1    |      0       0   channel_b_type                    channel_b_type   0
-01.2    |      0       0   channel_b_type   0                channel_b_type   0
-01.3    |      0       0   channel_b_driver 0                channel_b_driver 
channel_b_driver
-01.4    |      0       0   high_current_b   0                0                0
-01.5    |      0       0   0                0                0                0
-01.6    |      0       0   0                                 0                0
-01.7    |      0       0   0                0                0                
channel_d_driver
+01.0    |      0       0   channel_b_type                    channel_b_type   
0                FT1284_CLK_IDLE
+01.1    |      0       0   channel_b_type                    channel_b_type   
0                FT1284_DATA_LSB
+01.2    |      0       0   channel_b_type   0                channel_b_type   
0                FT1284_FLOW_CTRL
+01.3    |      0       0   channel_b_driver 0                channel_b_driver 
channel_b_driver 0
+01.4    |      0       0   high_current_b   0                0                
channel_d_driver 0
+01.5    |      0       0   0                0                0                
0                0
+01.6    |      0       0   0                                 0                
0                0
+01.7    |      0       0   0                0                0                
0                POWER_SAVE
 
 Fixme: Missing 4232H validation
 
@@ -63,9 +63,22 @@ Byte.BIT| TYPE_4232H
 0b.6    | channel_c_rs485enable
 0b.7    | channel_d_rs485enable
 
-Byte   | TYPE_AM TYPE_BM     TYPE_2232C   TYPE_R       TYPE_2232H       
TYPE_4232H
-0c     | 0       USB-VER-LSB USB-VER-LSB  0            ?                ?
-0d     | 0       USB-VER-MSB USB-VER-MSB  0            ?                ?
+I/O Drive Settings (bytes 0x0C-0x0D)
+-------------------------------------
+Hi-Speed chips store pin drive strength, Schmitt trigger, and slew rate
+in bytes 0x0C and 0x0D. Each group occupies one nibble (4 bits):
+
+  Nibble encoding:
+    bits[1:0] = drive strength: 00=4mA, 01=8mA, 10=12mA, 11=16mA
+    bit[2]    = slow slew rate (1=slow, 0=fast)
+    bit[3]    = Schmitt trigger input (1=enabled, 0=disabled)
+
+Byte   | TYPE_AM TYPE_BM     TYPE_2232C   TYPE_R       TYPE_2232H       
TYPE_4232H       TYPE_232H        TYPE_230X
+0c.3:0 | 0       USB-VER-LSB USB-VER-LSB  0            group0 (AL)      group0 
(A)       group0 (ACBUS)   group0 (DBUS)
+0c.7:4 | 0       USB-VER-LSB USB-VER-LSB  0            group1 (AH)      group1 
(B)       0                group1 (CBUS)
+0d.3:0 | 0       USB-VER-MSB USB-VER-MSB  0            group2 (BL)      group2 
(C)       group1 (ADBUS)   0
+0d.7:4 | 0       USB-VER-MSB USB-VER-MSB  0            group3 (BH)      group3 
(D)       0                0
+
 (On several FT2232H different values were observed -> The value is unused
  if change USB version is not set, so it might contain garbage)
 
@@ -93,8 +106,17 @@ CHIP values:
 
 17        UA      UA        UA           0            0                0
 18        UA      UA        UA           VENDOR       CHIP             CHIP
+
+FT232H additional fields (bytes 0x18-0x1E):
+  0x18-0x1C: CBUS functions (cbush0-cbush9), 2 per byte, low/high nibble
+  0x1E:      CHIP type
+
 19        UA      UA        UA           VENDOR       0                0
 
+FT230X additional fields:
+  0x0b:      Invert bitmask (same as TYPE_R)
+  0x1a-0x20: CBUS functions (cbusx0-cbusx6), 1 per byte
+
 1a        UA (all)
 
 
diff --git a/ftdi_eeprom/example.conf b/ftdi_eeprom/example.conf
index a397dd1..5c951a9 100644
--- a/ftdi_eeprom/example.conf
+++ b/ftdi_eeprom/example.conf
@@ -8,16 +8,17 @@
 # Filename #
 ############
 filename=eeprom.new                                                            
        # Filename of the EE file to be generated. Leave empty to skip file 
writing
-#flash_raw=false                                                               
                # Boolean: 
+#flash_raw=false                                                               
                # Boolean: Write raw eeprom file without building
 
 ## Include another config file?
-#include
+#include "other.conf"
 
 ############
 #   IDs    #
 ############
 vendor_id="0x0403"                                                             
        # Integer: Vendor ID. FT245R factory default 0x0403
 product_id="0x6001"                                                            
        # Integer: Product ID. FT245R factory default 0x6001
+#release_number=0x0000                                                         
        # Integer: Device release number (BCD). -1 = auto
 
 ##############################
 # Device and Serial Strings  #
@@ -31,7 +32,7 @@ use_serial=true                                               
                                # Boolean: Use the serial number string
 ############
 # Options  #
 ############
-max_power=500                                                                  
                # Integer: Max. power consumption: value * 2 mA(?). Use 0 if 
self_powered = true. FT245R factory default 90
+max_power=500                                                                  
                # Integer: Max. power consumption: value * 2 mA. Use 0 if 
self_powered = true
 self_powered=false                                                             
                # Boolean: Turn this off for bus powered
 remote_wakeup=true                                                             
                # Boolean: Turn this on for remote wakeup feature
 
@@ -40,93 +41,151 @@ remote_wakeup=true                                         
                                        # Boolean: Turn this on for remote 
wakeup feature
 #out_is_isochronous=false                                                      
        # Boolean: Out Endpoint is Isochronous
 #suspend_pull_downs=false                                                      
        # Boolean: Enable suspend pull downs for lower power
 #change_usb_version=false                                                      
        # Boolean: Change USB Version
-#usb_version=0x00                                                              
                # Integer: Only used when change_usb_version is enabled
-
-#default_pid=0x6001                                                            
                # Integer: Default Pid.
-
-#eeprom_type                                                                   
                # Integer: Chip Type / EEPROM Type. Corresponds to 
ftdi_chip_type struct in ftdi.h
-#high_current=false                                                            
                # Boolean: High Current Drive
-
-##Type_R chips
-# Only used on FT-R chips (when omitted, use chip defaults)
-# Possible values correspond to enum ftdi_cbus_func in ftdi.h and strings are 
defined in function parse_cbus in ftdi_eeprom/main.c
-# Values in the struct are (see current ftid.h for an up to date list):
-# 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
-# Strings to be used here are: 
-# "TXDEN", "PWREN", "RXLED", "TXLED", "TXRXLED", "SLEEP", "CLK48", "CLK24", 
"CLK12", "CLK6", "IOMODE", "BB_WR", "BB_RD"
-cbus0=TXLED                                                                    
                # String parsed to integer: FT245R factory default TXLED
-cbus1=RXLED                                                                    
                # String parsed to integer: FT245R factory default RXLED
-cbus2=TXDEN                                                                    
                # String parsed to integer: FT245R factory default TXDEN
-cbus3=PWREN                                                                    
                # String parsed to integer: FT245R factory default PWREN
-cbus4=SLEEP                                                                    
                # String parsed to integer: FT245R factory default SLEEP
-
-## Only used on FT232H chips (when omitted, use chip defaults)
-# Possible values correspond to enum ftdi_cbush_func in ftdi.h and strings are 
defined in function parse_cbush in ftdi_eeprom/main.c.
-# Values are (see current ftid.h for an up to date list):
-# CBUSH_TRISTATE = 0, CBUSH_TXLED = 1, CBUSH_RXLED = 2, CBUSH_TXRXLED = 3, 
CBUSH_PWREN = 4, CBUSH_SLEEP = 5, CBUSH_DRIVE_0 = 6, CBUSH_DRIVE1 = 7, 
CBUSH_IOMODE = 8, CBUSH_TXDEN =  9,     CBUSH_CLK30 = 10, CBUSH_CLK15 = 11, 
CBUSH_CLK7_5 = 12
-# Strings to be used in this config file are:
-# "TRISTATE", "TXLED", "RXLED", "TXRXLED", "PWREN", "SLEEP", "DRIVE_0", 
"DRIVE1", "IOMODE", "TXDEN", "CLK30", "CLK15", "CLK7_5"
-##Type_232H Chips                      
-#cbush0=TRISTATE                                                               
                # String parsed to integer:
-#cbush1=TRISTATE                                                               
                # String parsed to integer: 
-#cbush2=TRISTATE                                                               
                # String parsed to integer: 
-#cbush3=TRISTATE                                                               
                # String parsed to integer:
-#cbush4=TRISTATE                                                               
                # String parsed to integer: 
-#cbush5=TRISTATE                                                               
                # String parsed to integer:
-#cbush6=TRISTATE                                                               
                # String parsed to integer:
-#cbush7=TRISTATE                                                               
                # String parsed to integer:
-#cbush8=TRISTATE                                                               
                # String parsed to integer: 
-#cbush9=TRISTATE                                                               
                # String parsed to integer:
-# Group Drive
-# Strings to be used in this config file are:
-# "4MA", "8MA", "12MA", "16MA"
-#group0_drive                                                                  
                # Integer: 
-
-# Only used on FT230X chips (when omitted, use chip defaults)
-# Possible values correspond to enum ftdi_cbusx_func in ftdi.h and strings are 
defined in function parse_cbusx in ftdi_eeprom/main.c.
-# Values are (see current ftid.h for an up to date list):
-# CBUSX_TRISTATE = 0, CBUSX_TXLED = 1, CBUSX_RXLED = 2, CBUSX_TXRXLED = 3, 
CBUSX_PWREN = 4, CBUSX_SLEEP = 5, CBUSX_DRIVE_0 = 6, CBUSX_DRIVE1 = 7, 
CBUSX_IOMODE = 8, CBUSX_TXDEN =  9,     CBUSX_CLK24 = 10, CBUSX_CLK12 = 11, 
CBUSX_CLK6 = 12, CBUSX_BAT_DETECT = 13, CBUSX_BAT_DETECT_NEG = 14, 
CBUSX_I2C_TXE = 15, CBUSX_I2C_RXF = 16, CBUSX_VBUS_SENSE = 17, CBUSX_BB_WR = 
18, CBUSX_BB_RD = 19, CBUSX_TIME_STAMP = 20, CBUSX_AWAKE = 21
-# Strings to be used in this config file are: 
-# "TRISTATE", "TXLED", "RXLED", "TXRXLED", "PWREN", "SLEEP", "DRIVE_0", 
"DRIVE1", "IOMODE", "TXDEN", "CLK24", "CLK12", "CLK6", "BAT_DETECT", 
"BAT_DETECT_NEG", "I2C_TXE", "I2C_RXF", "VBUS_SENSE", "BB_WR", "BB_RD", 
"TIME_STAMP", "AWAKE"
-#cbusx0=TXDEN                                                                  
                # String parsed to integer: 
-#cbusx1=RXLED                                                                  
                # String parsed to integer:
-#cbusx2=TXLED                                                                  
                # String parsed to integer:
-#cbusx3=SLEEP                                                                  
                # String parsed to integer:
-
-########
-# Misc #
-########
-
-## Pin Configuration
-#invert_txd                                                                    
                        # Boolean: Invert TXD signal
-#invert_rxd                                                                    
                        # Boolean: Invert RXD signal
-#invert_rts                                                                    
                        # Boolean: Invert RTS signal
-#invert_cts                                                                    
                        # Boolean: Invert CTS signal
-#invert_dtr                                                                    
                        # Boolean: Invert DTR signal
-#invert_dsr                                                                    
                        # Boolean: Invert DSR signal
-#invert_dcd                                                                    
                        # Boolean: Invert DCD signal
-#invert_ri                                                                     
                        # Boolean: Invert RI signal
-
-## Channel Types and Drivers
-# Possible values are (see current ftid.h (Interface Mode macros) and ftdi.c 
"channel_mode" for an up to date list). They are parsed in fucntion 
parse_chtype in ftdi_eeprom/main.c.
-# (from ftid.h): UART= 0x0, FIFO = 0x1, OPTO = 0x2, CPU = 0x4, FT1284 = 0x8, 
RS485 = 0x10
-# (from ftdi.c): UART = 0x0, FIOF = 0x1, CPU = 0x2, OPTO = 0x3, FT1284 = 0x3
-# Strings to be used in this config file are: 
-# "UART", "FIFO", "OPTO", "CPU", "FT1284"
-cha_type=FIFO                                                                  
                # String parsed to integer:
-#chb_type                                                                      
                        # String parsed to integer:
-
-cha_vcp=false                                                                  
                # Boolean:
-#chb_vcp=false                                                                 
                # Boolean:
-#chc_vcp=false                                                                 
                # Boolean:
-#chd_vcp=false                                                                 
                # Boolean:
-#cha_rs485                                                                     
                        # Boolean:
-#chb_rs485                                                                     
                        # Boolean:
-#chc_rs485                                                                     
                        # Boolean:
-#chd_rs485                                                                     
                        # Boolean:
-
-## Include user defined binary data into the the eeprom at address?
-#user_data_addr                                                                
                        # Integer:
-#user_data_file                                                                
                        # String: Filename of the data file to be used
-
+#usb_version=0x0200                                                            
                # Integer: Only used when change_usb_version is enabled
+
+#default_pid=0x6001                                                            
                # Integer: Default PID for fallback device open
+#is_not_pnp=false                                                              
                # Boolean: Disable Plug and Play
+
+#eeprom_type                                                                   
                # Integer: Chip Type / EEPROM Type. Corresponds to 
ftdi_chip_type in ftdi.h
+#high_current=false                                                            
                # Boolean: High Current Drive (FT232BM/FT245BM)
+
+###########################
+# CBUS Pin Configuration #
+###########################
+
+## FT232R / FT245R (cbus0-cbus4)
+# Possible values (enum ftdi_cbus_func in ftdi.h):
+# "TXDEN", "PWREN", "RXLED", "TXLED", "TXRXLED", "SLEEP",
+# "CLK48", "CLK24", "CLK12", "CLK6", "IOMODE", "BB_WR", "BB_RD"
+cbus0=TXLED                                                                    
                # String: FT245R factory default TXLED
+cbus1=RXLED                                                                    
                # String: FT245R factory default RXLED
+cbus2=TXDEN                                                                    
                # String: FT245R factory default TXDEN
+cbus3=PWREN                                                                    
                # String: FT245R factory default PWREN
+cbus4=SLEEP                                                                    
                # String: FT245R factory default SLEEP
+
+## FT232H (cbush0-cbush9)
+# Possible values (enum ftdi_cbush_func in ftdi.h):
+# "TRISTATE", "TXLED", "RXLED", "TXRXLED", "PWREN", "SLEEP",
+# "DRIVE_0", "DRIVE1", "IOMODE", "TXDEN", "CLK30", "CLK15", "CLK7_5"
+#cbush0=TRISTATE                                                               
                # String: ACBUS0 function
+#cbush1=TRISTATE                                                               
                # String: ACBUS1 function
+#cbush2=TRISTATE                                                               
                # String: ACBUS2 function
+#cbush3=TRISTATE                                                               
                # String: ACBUS3 function
+#cbush4=TRISTATE                                                               
                # String: ACBUS4 function
+#cbush5=TRISTATE                                                               
                # String: ACBUS5 function
+#cbush6=TRISTATE                                                               
                # String: ACBUS6 function
+#cbush7=TRISTATE                                                               
                # String: ACBUS7 function
+#cbush8=TRISTATE                                                               
                # String: ACBUS8 function
+#cbush9=TRISTATE                                                               
                # String: ACBUS9 function
+
+## FT230X (cbusx0-cbusx3)
+# Possible values (enum ftdi_cbusx_func in ftdi.h):
+# "TRISTATE", "TXLED", "RXLED", "TXRXLED", "PWREN", "SLEEP",
+# "DRIVE_0", "DRIVE1", "IOMODE", "TXDEN", "CLK24", "CLK12", "CLK6",
+# "BAT_DETECT", "BAT_DETECT_NEG", "I2C_TXE", "I2C_RXF", "VBUS_SENSE",
+# "BB_WR", "BB_RD", "TIME_STAMP", "AWAKE"
+#cbusx0=TXDEN                                                                  
                # String: CBUS0 function
+#cbusx1=RXLED                                                                  
                # String: CBUS1 function
+#cbusx2=TXLED                                                                  
                # String: CBUS2 function
+#cbusx3=SLEEP                                                                  
                # String: CBUS3 function
+
+##########################
+# I/O Drive Settings     #
+##########################
+# Per-group pin drive strength, Schmitt trigger input, and output slew rate.
+# Stored in EEPROM bytes 0x0C-0x0D. Number of groups depends on chip type:
+#
+#   FT232H:  2 groups -- group0 = ACBUS (byte 0x0C[3:0])
+#                        group1 = ADBUS (byte 0x0D[3:0])
+#   FT2232H: 4 groups -- group0 = ADBUS low  (byte 0x0C[3:0])
+#                        group1 = ADBUS high (byte 0x0C[7:4])
+#                        group2 = BDBUS low  (byte 0x0D[3:0])
+#                        group3 = BDBUS high (byte 0x0D[7:4])
+#   FT4232H: 4 groups -- group0 = channel A (byte 0x0C[3:0])
+#                        group1 = channel B (byte 0x0C[7:4])
+#                        group2 = channel C (byte 0x0D[3:0])
+#                        group3 = channel D (byte 0x0D[7:4])
+#   FT230X:  2 groups -- group0 = DBUS (byte 0x0C[3:0])
+#                        group1 = CBUS (byte 0x0C[7:4])
+#
+# Nibble encoding: bits[1:0] = drive, bit[2] = slow_slew, bit[3] = schmitt
+#
+# Drive strength: "4MA", "8MA", "12MA", "16MA"
+# Slew rate: "slow", "fast"
+
+#group0_drive=4MA                                                              
                # String: Pin drive strength
+#group0_schmitt=false                                                          
        # Boolean: Schmitt trigger input
+#group0_slew=fast                                                              
                # String: Output slew rate
+#group1_drive=4MA                                                              
                # String: Pin drive strength
+#group1_schmitt=false                                                          
        # Boolean: Schmitt trigger input
+#group1_slew=fast                                                              
                # String: Output slew rate
+## Groups 2-3: only used on FT2232H and FT4232H (4-group chips)
+#group2_drive=4MA                                                              
                # String: Pin drive strength
+#group2_schmitt=false                                                          
        # Boolean: Schmitt trigger input
+#group2_slew=fast                                                              
                # String: Output slew rate
+#group3_drive=4MA                                                              
                # String: Pin drive strength
+#group3_schmitt=false                                                          
        # Boolean: Schmitt trigger input
+#group3_slew=fast                                                              
                # String: Output slew rate
+
+## Example: I2C on FT232H (8mA + slow slew + Schmitt on ADBUS)
+# group1_drive=8MA
+# group1_schmitt=true
+# group1_slew=slow
+
+#############################
+# Chip-Specific Options     #
+#############################
+
+## FT2232H
+#high_current_a=false                                                          
        # Boolean: High current drive on channel A
+#high_current_b=false                                                          
        # Boolean: High current drive on channel B
+#suspend_dbus7=false                                                           
        # Boolean: Use DBUS7 as USB suspend indicator
+
+## FT2232H / FT4232H
+#external_oscillator=false                                                     
        # Boolean: Use external 12MHz oscillator
+
+## FT232H (FT1284 interface mode settings)
+#power_save=false                                                              
                # Boolean: Power save mode
+#clock_polarity=false                                                          
        # Boolean: FT1284 clock idle state (true = idle high)
+#data_order=false                                                              
                # Boolean: FT1284 data order (true = LSB first)
+#flow_control=false                                                            
                # Boolean: FT1284 flow control enable
+
+######################
+# Pin Inversion      #
+######################
+#invert_txd=false                                                              
                # Boolean: Invert TXD signal
+#invert_rxd=false                                                              
                # Boolean: Invert RXD signal
+#invert_rts=false                                                              
                # Boolean: Invert RTS signal
+#invert_cts=false                                                              
                # Boolean: Invert CTS signal
+#invert_dtr=false                                                              
                # Boolean: Invert DTR signal
+#invert_dsr=false                                                              
                # Boolean: Invert DSR signal
+#invert_dcd=false                                                              
                # Boolean: Invert DCD signal
+#invert_ri=false                                                               
                # Boolean: Invert RI signal
 
+##############################
+# Channel Types and Drivers  #
+##############################
+# Channel type -- only used on FT2232H and FT232H (multi-mode chips)
+# Possible values: "UART", "FIFO", "OPTO", "CPU", "FT1284"
+cha_type=FIFO                                                                  
                # String: Channel A type
+#chb_type=UART                                                                 
                # String: Channel B type (FT2232H only)
+
+# VCP driver -- selects between D2XX and VCP driver in Windows
+cha_vcp=false                                                                  
                # Boolean: Channel A uses VCP driver
+#chb_vcp=true                                                                  
                # Boolean: Channel B uses VCP driver
+#chc_vcp=true                                                                  
                # Boolean: Channel C uses VCP driver (FT4232H only)
+#chd_vcp=true                                                                  
                # Boolean: Channel D uses VCP driver (FT4232H only)
+
+# RS485 mode -- only used on FT4232H
+#cha_rs485=false                                                               
                # Boolean: Channel A RS485 mode
+#chb_rs485=false                                                               
                # Boolean: Channel B RS485 mode
+#chc_rs485=false                                                               
                # Boolean: Channel C RS485 mode
+#chd_rs485=false                                                               
                # Boolean: Channel D RS485 mode
+
+#######################
+# User Data Area      #
+#######################
+# Embed arbitrary binary data into the EEPROM at a given address.
+# Ensure user_data_addr does not overlap with string descriptors.
+#user_data_addr=0x18                                                           
        # Integer: Start address for user data
+#user_data_file="userdata.bin"                                                 
# String: Filename of the binary data to embed
-- 
2.51.0


--
libftdi - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to libftdi+unsubscribe@xxxxxxxxxxxxxxxxxxxxxxx   

Current Thread