summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2015-08-06 20:59:03 +0000
committerian <ian@FreeBSD.org>2015-08-06 20:59:03 +0000
commit411beb22622372196cf0885f42f303feeff3a860 (patch)
treed56f31a8394cf94a8c72528345f7879a05a3d52c /share
parente9671c0748e1fbf6e8b8c60b714e3ccdaf666ea3 (diff)
downloadFreeBSD-src-411beb22622372196cf0885f42f303feeff3a860.zip
FreeBSD-src-411beb22622372196cf0885f42f303feeff3a860.tar.gz
Document the recently added get-bitmode and eeprom read/write functionality.
Diffstat (limited to 'share')
-rw-r--r--share/man/man4/uftdi.466
1 files changed, 61 insertions, 5 deletions
diff --git a/share/man/man4/uftdi.4 b/share/man/man4/uftdi.4
index 1045169..687d443 100644
--- a/share/man/man4/uftdi.4
+++ b/share/man/man4/uftdi.4
@@ -29,7 +29,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd March 31, 2014
+.Dd August 6, 2015
.Dt UFTDI 4
.Os
.Sh NAME
@@ -110,6 +110,11 @@ The
must be one of the
.Va uftdi_bitmodes
values.
+Setting
+.Va mode
+to
+.Dv UFTDI_BITMODE_NONE
+returns the channel to standard UART mode.
.Bd -literal
enum uftdi_bitmodes
{
@@ -139,12 +144,15 @@ and
data which either reflects pin state or is interpreted
as MPSSE commands and parameters, depending on the mode.
.It Dv UFTDIIOC_GET_BITMODE Pq Vt "struct uftdi_bitmode"
-Return the state of the bitbang pins at the time of the call in the
+Return the current bitbang mode in the
+.Va mode
+member, and the state of the DBUS0..DBUS7 pins at the time
+of the call in the
.Va iomask
member.
-The
-.Va mode
-member is unused.
+The pin state can be read while the chip is in any mode, including
+.Dv UFTDI_BITMODE_NONE
+(UART) mode.
.It Dv UFTDIIOC_SET_ERROR_CHAR Pq Vt int
Set the character which is inserted into the buffer to mark
the point of an error such as FIFO overflow.
@@ -164,6 +172,54 @@ This is the
.Va bcdDevice
value from the
.Va usb_device_descriptor .
+.It Dv UFTDIIOC_READ_EEPROM Pq Vt "struct uftdi_eeio"
+Read one or more words from the configuration eeprom.
+The FTDI chip performs eeprom I/O in 16-bit words.
+Set
+.Va offset
+and
+.Va length
+to values evenly divisible by two before the call, and the
+.Va data
+array will contain the requested values from eeprom after the call.
+.Bd -literal
+struct uftdi_eeio
+{
+ uint16_t offset;
+ uint16_t length;
+ uint16_t data[64];
+};
+.Ed
+.Pp
+The FT232R chip has an internal eeprom.
+An external serial eeprom is optional on other FTDI chips.
+The eeprom may contain 64, 128, or 256 words,
+depending on the part used.
+Multiple calls may be needed to read or write the larger parts.
+When no eeprom is present, all words in the returned data are 0xffff.
+An erased eeprom also reads as all 0xffff.
+.It Dv UFTDIIOC_WRITE_EEPROM Pq Vt "struct uftdi_eeio"
+Write one or more words to the configuration eeprom.
+The
+.Va uftdi_eeio
+values are as described for
+.Dv UFTDIIOC_READ_EEPROM .
+.Pp
+The FTDI chip does a blind write to the eeprom, and it will appear
+to succeed even when no eeprom is present.
+To ensure a good write you must read back and verify the data.
+It is
+.Em not
+necessary to erase before writing.
+Any position within the eeprom can be overwritten at any time.
+.It Dv UFTDIIOC_ERASE_EEPROM Pq Vt int
+Erase the entire eeprom.
+This is useful primarily for test and debugging, as there is no
+need to erase before writing.
+To help prevent accidental erasure caused by calling the wrong
+ioctl, you must pass the special value
+.Dv UFTDI_CONFIRM_ERASE
+as the argument to this ioctl.
.El
.Sh HARDWARE
The
OpenPOWER on IntegriCloud