ftdi_eeprom(3)

πŸ“¦
version 1.5.42+git.de9f01e Β· 3 versions
, in opensuse-leap 16.0

🌸 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_id
  • int product_id
  • int initialized_for_connected_device
  • int self_powered
  • int remote_wakeup
  • int is_not_pnp
  • int suspend_dbus7
  • int in_is_isochronous
  • int out_is_isochronous
  • int suspend_pull_downs
  • int use_serial
  • int usb_version
  • int use_usb_version
  • int max_power
  • char * manufacturer
  • char * product
  • char * serial
  • int channel_a_type
  • int channel_b_type
  • int channel_a_driver
  • int channel_b_driver
  • int channel_c_driver
  • int channel_d_driver
  • int channel_a_rs485enable
  • int channel_b_rs485enable
  • int channel_c_rs485enable
  • int channel_d_rs485enable
  • int cbus_function [10]
  • int high_current
  • int high_current_a
  • int high_current_b
  • int invert
  • int external_oscillator
  • 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
  • int powersave
  • int clock_polarity
  • int data_order
  • int flow_control
  • int user_data_addr
  • int user_data_size
  • const char * user_data
  • int size
  • int chip
  • unsigned 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 of ftdi_i.h. referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
  • int ftdi_eeprom::group0_schmitt β€” πŸ“ line 111 of ftdi_i.h. referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
  • int ftdi_eeprom::group0_slew β€” πŸ“ line 112 of ftdi_i.h. referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
  • int ftdi_eeprom::group1_drive β€” πŸ“ line 113 of ftdi_i.h. referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
  • int ftdi_eeprom::group1_schmitt β€” πŸ“ line 114 of ftdi_i.h. referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
  • int ftdi_eeprom::group1_slew β€” πŸ“ line 115 of ftdi_i.h. referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
  • int ftdi_eeprom::group2_drive β€” πŸ“ line 116 of ftdi_i.h. referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
  • int ftdi_eeprom::group2_schmitt β€” πŸ“ line 117 of ftdi_i.h. referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
  • int ftdi_eeprom::group2_slew β€” πŸ“ line 118 of ftdi_i.h. referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_set_eeprom_value().
  • int ftdi_eeprom::group3_drive β€” πŸ“ line 119 of ftdi_i.h. referenced by ftdi_eeprom_build(), ftdi_eeprom_decode(), ftdi_get_eeprom_value(), and ftdi_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