ftdi_eeprom(3)
πΈ ftdi_eeprom β the FTDI eeprom struct, explained by your fave
okay so this is the ftdi_eeprom(3) page from libftdi1, and bestie, it is a whole vibe. it's the struct that holds everything your FTDI chip's little EEPROM is gonna remember about itself. we're doing this in two parts, so strap in π
β¨ NAME β¨
ftdi_eeprom β the FTDI eeprom structure. that's it, that's the whole name section. iconic brevity.
π¦ SYNOPSIS π¦
first things first, you gotta pull in the header:
#include <ftdi_i.h>
π Public Attributes π
here's the full cast of characters in this struct β every single one, no skips, no cuts, we are not doing a highlight reel:
int vendor_idint product_idint initialized_for_connected_deviceint self_poweredint remote_wakeupint is_not_pnpint suspend_dbus7int in_is_isochronousint out_is_isochronousint suspend_pull_downsint use_serialint usb_versionint use_usb_versionint max_powerchar * manufacturerchar * productchar * serialint channel_a_typeint channel_b_typeint channel_a_driverint channel_b_driverint channel_c_driverint channel_d_driverint channel_a_rs485enableint channel_b_rs485enableint channel_c_rs485enableint channel_d_rs485enableint cbus_function [10]int high_currentint high_current_aint high_current_bint invertint external_oscillatorint group0_driveint group0_schmittint group0_slewint group1_driveint group1_schmittint group1_slewint group2_driveint group2_schmittint group2_slewint group3_driveint group3_schmittint group3_slewint powersaveint clock_polarityint data_orderint flow_controlint user_data_addrint user_data_sizeconst char * user_dataint sizeint chipunsigned char buf [FTDI_MAX_EEPROM_SIZE]int release_number
look at all those group fields. the symmetry? immaculate. π
π Detailed Description π
FTDI eeprom structure.
yes queen, that's the entire detailed description. it's giving minimalism. it's defined at line 31 of file ftdi_i.h, and honestly the rest of this page is just us going member by member so you actually know what you're touching.
π Member Data Documentation π
welcome to the main event, bestie. every single member, its definition line, and every function that references it. grab a snack. π
β int ftdi_eeprom::vendor_id
the vendor id. that's your USB vendor ID, front and center.
π defined at line 34 of file ftdi_i.h.
the friend group that touches it: ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_eeprom_initdefaults(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::product_id
the product id. your product's whole identity, lowkey.
π defined at line 36 of file ftdi_i.h.
same crowd shows up: ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_eeprom_initdefaults(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::initialized_for_connected_device
was the eeprom structure initialized for the actual connected device? that's the question it's answering. yes, it's a whole field just for that. main character energy fr.
π defined at line 40 of file ftdi_i.h.
referenced by ftdi_eeprom_build(), ftdi_set_eeprom_value(), and ftdi_write_eeprom().
β int ftdi_eeprom::self_powered
self powered. does it bring its own power to the function or what.
π defined at line 43 of file ftdi_i.h.
gets touched by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::remote_wakeup
remote wakeup.
π defined at line 45 of file ftdi_i.h.
handled by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::is_not_pnp
no description in the source for this one β just the line number and its little fan club. we respect a mysterious queen. π
π defined at line 47 of file ftdi_i.h.
shows up in ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::suspend_dbus7
again, no blurb given. it exists, it's at a specific line, and that's the tea.
π defined at line 50 of file ftdi_i.h.
the usual suspects: ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::in_is_isochronous
input in isochronous transfer mode.
π defined at line 53 of file ftdi_i.h.
referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::out_is_isochronous
output in isochronous transfer mode. yes it's the mirror twin of the one above, we love a matched set π«Ά
π defined at line 55 of file ftdi_i.h.
same handlers: ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::suspend_pull_downs
suspend pull downs.
π defined at line 57 of file ftdi_i.h.
bopping through ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::use_serial
use serial β you know, the serial number question.
π defined at line 60 of file ftdi_i.h.
this one has a bigger circle: ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_eeprom_initdefaults(), ftdi_eeprom_set_strings(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::usb_version
usb version.
π defined at line 62 of file ftdi_i.h.
referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_eeprom_initdefaults(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::use_usb_version
use usb version on FT2232 devices. yes, that specificity is important β FT2232 devices. don't forget it.
π defined at line 64 of file ftdi_i.h.
touched by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::max_power
maximum power.
π defined at line 66 of file ftdi_i.h.
in the mix with ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_eeprom_initdefaults(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β char* ftdi_eeprom::manufacturer
manufacturer name.
π defined at line 69 of file ftdi_i.h.
this one's popular: ftdi_deinit(), ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_eeprom_get_strings(), ftdi_eeprom_initdefaults(), and ftdi_eeprom_set_strings().
β char* ftdi_eeprom::product
product name.
π defined at line 71 of file ftdi_i.h.
referenced by ftdi_deinit(), ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_eeprom_get_strings(), ftdi_eeprom_initdefaults(), and ftdi_eeprom_set_strings().
β char* ftdi_eeprom::serial
serial number.
π defined at line 73 of file ftdi_i.h.
same whole crew: ftdi_deinit(), ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_eeprom_get_strings(), ftdi_eeprom_initdefaults(), and ftdi_eeprom_set_strings().
ngl bestie, the three string fields above are a matched trio β same reference list, same energy. π
β int ftdi_eeprom::channel_a_type
no description given, just the line. we move.
π defined at line 78 of file ftdi_i.h.
referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::channel_b_type
also undescribed. also at a line. also loved.
π defined at line 79 of file ftdi_i.h.
referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::channel_a_driver
line number only, bestie.
π defined at line 81 of file ftdi_i.h.
referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::channel_b_driver
same situation, next line.
π defined at line 82 of file ftdi_i.h.
referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::channel_c_driver
still just a line number. keeping it consistent π
π defined at line 83 of file ftdi_i.h.
referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::channel_d_driver
yep. line number. that's the content.
π defined at line 84 of file ftdi_i.h.
referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::channel_a_rs485enable
undescribed, but present and accounted for.
π defined at line 86 of file ftdi_i.h.
referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::channel_b_rs485enable
same deal, channel B edition.
π defined at line 87 of file ftdi_i.h.
referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::channel_c_rs485enable
channel C, still mysterious.
π defined at line 88 of file ftdi_i.h.
referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::channel_d_rs485enable
and channel D completes the quad. β¨
π defined at line 89 of file ftdi_i.h.
referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::cbus_function[10]
CBUS pin function. see the CBUS_xxx defines for the actual options β that's where the lore lives, iykyk.
π defined at line 93 of file ftdi_i.h.
this one has an extra visitor: ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_eeprom_initdefaults(), ftdi_get_eeprom_value(), ftdi_set_eeprom_value(), and set_ft232h_cbus().
β int ftdi_eeprom::high_current
select high current drive on R devices.
π defined at line 95 of file ftdi_i.h.
referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::high_current_a
select high current drive on A channel (2232C). note the 2232C, bestie, it's specific.
π defined at line 97 of file ftdi_i.h.
referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::high_current_b
select high current drive on B channel (2232C).
π defined at line 99 of file ftdi_i.h.
referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::invert
select inversion of data lines, and it's a bitmask β do not forget that word, it matters.
π defined at line 101 of file ftdi_i.h.
referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
β int ftdi_eeprom::external_oscillator
enable external oscillator. slay, oscillate.
π defined at line 103 of file ftdi_i.h.
referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
π§ the group fields β drive, schmitt, and slew π§
okay so there's a whole little family here: drive, schmitt, and slew for groups 0 through 3. none of them got a description in the source, so we're giving you exactly what's there β the name and the line. no invented lore, that's the rule. πΈ
int ftdi_eeprom::group0_driveβ π line 110 offtdi_i.h. referenced byftdi_eeprom_build(),ftdi_eeprom_decode(),ftdi_get_eeprom_value(), andftdi_set_eeprom_value().int ftdi_eeprom::group0_schmittβ π line 111 offtdi_i.h. referenced byftdi_eeprom_build(),ftdi_eeprom_decode(),ftdi_get_eeprom_value(), andftdi_set_eeprom_value().int ftdi_eeprom::group0_slewβ π line 112 offtdi_i.h. referenced byftdi_eeprom_build(),ftdi_eeprom_decode(),ftdi_get_eeprom_value(), andftdi_set_eeprom_value().int ftdi_eeprom::group1_driveβ π line 113 offtdi_i.h. referenced byftdi_eeprom_build(),ftdi_eeprom_decode(),ftdi_get_eeprom_value(), andftdi_set_eeprom_value().int ftdi_eeprom::group1_schmittβ π line 114 offtdi_i.h. referenced byftdi_eeprom_build(),ftdi_eeprom_decode(),ftdi_get_eeprom_value(), andftdi_set_eeprom_value().int ftdi_eeprom::group1_slewβ π line 115 offtdi_i.h. referenced byftdi_eeprom_build(),ftdi_eeprom_decode(),ftdi_get_eeprom_value(), andftdi_set_eeprom_value().int ftdi_eeprom::group2_driveβ π line 116 offtdi_i.h. referenced byftdi_eeprom_build(),ftdi_eeprom_decode(),ftdi_get_eeprom_value(), andftdi_set_eeprom_value().int ftdi_eeprom::group2_schmittβ π line 117 offtdi_i.h. referenced byftdi_eeprom_build(),ftdi_eeprom_decode(),ftdi_get_eeprom_value(), andftdi_set_eeprom_value().int ftdi_eeprom::group2_slewβ π line 118 offtdi_i.h. referenced byftdi_eeprom_build(),ftdi_eeprom_decode(),ftdi_get_eeprom_value(), andftdi_set_eeprom_value().int ftdi_eeprom::group3_driveβ π line 119 offtdi_i.h. referenced byftdi_eeprom_build(),ftdi_eeprom_decode(),ftdi_get_eeprom_value(), andftdi_set_eeprom_value().
β int ftdi_eeprom::group3_schmitt
π defined at line 120 of file ftdi_i.h.
and that is exactly where this page runs out of text in part 1 β the rest of the members (group3_slew, powersave, clock_polarity, data_order, flow_control, user_data_addr, user_data_size, user_data, size, chip, buf, release_number) plus their reference lists are waiting for you in part 2. don't go anywhere π¦π
int ftdi_eeprom::group3_slew
Definition at line 121 of file ftdi_i.h. Referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value(). β¨
int ftdi_eeprom::powersave
Definition at line 123 of file ftdi_i.h. Referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value(). π
int ftdi_eeprom::clock_polarity
Definition at line 125 of file ftdi_i.h. Referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value(). π
int ftdi_eeprom::data_order
Definition at line 126 of file ftdi_i.h. Referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value(). π¦
int ftdi_eeprom::flow_control
Definition at line 127 of file ftdi_i.h. Referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value(). π
int ftdi_eeprom::user_data_addr
The source just says user data here, bestie. Definition at line 130 of file ftdi_i.h. Referenced by ftdi_eeprom_build(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value(). π«Ά
int ftdi_eeprom::user_data_size
Definition at line 131 of file ftdi_i.h. Referenced by ftdi_eeprom_build(), and ftdi_set_eeprom_user_data(). π
const char* ftdi_eeprom::user_data
Definition at line 132 of file ftdi_i.h. Referenced by ftdi_eeprom_build(), and ftdi_set_eeprom_user_data(). π
int ftdi_eeprom::size
Okay so this one has actual lore: eeprom size in bytes. This doesn't get stored in the eeprom but is the only way to pass it to ftdi_eeprom_build. Definition at line 136 of file ftdi_i.h. Referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_eeprom_initdefaults(), ftdi_get_eeprom_buf(), ftdi_get_eeprom_value(), ftdi_read_eeprom(), ftdi_set_eeprom_buf(), ftdi_set_eeprom_user_data(), and ftdi_write_eeprom(). π
int ftdi_eeprom::chip
Definition at line 138 of file ftdi_i.h. Referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_erase_eeprom(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value(). π₯
unsigned char ftdi_eeprom::buf[FTDI_MAX_EEPROM_SIZE]
Definition at line 139 of file ftdi_i.h. Referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_buf(), ftdi_read_eeprom(), ftdi_read_eeprom_location(), ftdi_set_eeprom_buf(), ftdi_set_eeprom_user_data(), and ftdi_write_eeprom(). π
int ftdi_eeprom::release_number
The source labels this one device release number. Definition at line 142 of file ftdi_i.h. Referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_eeprom_initdefaults(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value(). πΈ
Author
Generated automatically by Doxygen for libftdi1 from the source code. π§
Thatβs the whole member-data tour, bestie β Version 1.5, dated Wed Nov 6 2024 09:58:53, straight from the libftdi1 source-code glow-up. πβ¨
π¦ where this page comes from
- opensuse-leap 16.0: libftdi1-devel 1.5.42+git.de9f01e-160000.3.2 Β· LGPL-2.1-only AND GPL-2.0-only AND GPL-2.0-with-classpath-exception
- opensuse-leap 16.0: libftdi1-devel 1.5.42+git.de9f01e-160000.3.2 Β· LGPL-2.1-only AND GPL-2.0-only AND GPL-2.0-with-classpath-exception
- opensuse-leap 16.0: libftdi1-devel 1.5.42+git.de9f01e-160000.3.2 Β· LGPL-2.1-only AND GPL-2.0-only AND GPL-2.0-with-classpath-exception
- opensuse-leap 16.0: libftdi1-devel 1.5.42+git.de9f01e-160000.3.2 Β· LGPL-2.1-only AND GPL-2.0-only AND GPL-2.0-with-classpath-exception
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms