diff options
Diffstat (limited to 'static/freebsd/man4/uftdi.4 4.html')
| -rw-r--r-- | static/freebsd/man4/uftdi.4 4.html | 234 |
1 files changed, 0 insertions, 234 deletions
diff --git a/static/freebsd/man4/uftdi.4 4.html b/static/freebsd/man4/uftdi.4 4.html deleted file mode 100644 index 606decd2..00000000 --- a/static/freebsd/man4/uftdi.4 4.html +++ /dev/null @@ -1,234 +0,0 @@ -<table class="head"> - <tr> - <td class="head-ltitle">UFTDI(4)</td> - <td class="head-vol">Device Drivers Manual</td> - <td class="head-rtitle">UFTDI(4)</td> - </tr> -</table> -<div class="manual-text"> -<section class="Sh"> -<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1> -<p class="Pp"><code class="Nm">uftdi</code> — <span class="Nd">Future - Technology Devices International USB to serial UART driver</span></p> -</section> -<section class="Sh"> -<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1> -<p class="Pp"><code class="Cd">device usb</code> - <br/> - <code class="Cd">device ucom</code> - <br/> - <code class="Cd">device uftdi</code></p> -<p class="Pp">In <a class="Xr">rc.conf(5)</a>: - <br/> - <code class="Cd">kld_list="uftdi"</code></p> -<p class="Pp">In <a class="Xr">sysctl.conf(5)</a>: - <br/> - <code class="Cd">hw.usb.uftdi.debug=1</code> - <br/> - <code class="Cd">hw.usb.uftdi.skip_jtag_interfaces=0</code></p> -</section> -<section class="Sh"> -<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1> -<p class="Pp">The <code class="Nm">uftdi</code> driver supports FTDI USB to - serial UART devices. If the appropriate hardware is detected, the driver - will be loaded automatically by <a class="Xr">devmatch(8)</a>. To load the - driver manually, add it to the <code class="Ic">kld_list</code> in - <a class="Xr">rc.conf(5)</a>, or use <a class="Xr">kldload(8)</a> at - runtime. The device is accessed through the <a class="Xr">ucom(4)</a> driver - which makes it behave like a <a class="Xr">tty(4)</a>.</p> -<p class="Pp">Call out through this interface with applications like - <a class="Xr">cu(1)</a> or <a class="Xr">tip(1)</a>.</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="HARDWARE"><a class="permalink" href="#HARDWARE">HARDWARE</a></h1> -<p class="Pp">The <code class="Nm">uftdi</code> driver supports the following - USB to serial UART controllers:</p> -<p class="Pp"></p> -<ul class="Bl-bullet Bl-compact"> - <li>FTDI FT4232H</li> - <li>FTDI FT232R</li> - <li>FTDI FT230X</li> - <li>FTDI FT2232H</li> - <li>FTDI FT2232D</li> - <li>FTDI FT2232C</li> - <li>FTDI FT8U232BM</li> - <li>FTDI FT8U232AM</li> - <li>FTDI FT8U100AX</li> -</ul> -</section> -<section class="Sh"> -<h1 class="Sh" id="SYSCTL_VARIABLES"><a class="permalink" href="#SYSCTL_VARIABLES">SYSCTL - VARIABLES</a></h1> -<p class="Pp">These settings can be entered in the <a class="Xr">loader(8)</a> - prompt, set in <a class="Xr">loader.conf(5)</a>, - <a class="Xr">sysctl.conf(5)</a>, or changed at runtime with - <a class="Xr">sysctl(8)</a>:</p> -<dl class="Bl-tag"> - <dt id="hw.usb.uftdi.debug"><var class="Va">hw.usb.uftdi.debug</var></dt> - <dd>Enable debugging messages, default - ‘<code class="Li">0</code>’</dd> - <dt id="hw.usb.uftdi.skip_jtag_interfaces"><var class="Va">hw.usb.uftdi.skip_jtag_interfaces</var></dt> - <dd>Ignore JTAG interfaces, default - ‘<code class="Li">1</code>’</dd> -</dl> -</section> -<section class="Sh"> -<h1 class="Sh" id="IOCTLS"><a class="permalink" href="#IOCTLS">IOCTLS</a></h1> -<p class="Pp">Many of the supported chips provide additional functionality such - as bitbang mode and the MPSSE engine for serial bus emulation. The - <code class="Nm">uftdi</code> driver provides access to that functionality - with the following <a class="Xr">ioctl(2)</a> calls, defined in - <code class="In"><<a class="In">dev/usb/uftdiio.h</a>></code>:</p> -<dl class="Bl-tag"> - <dt id="UFTDIIOC_RESET_IO"><a class="permalink" href="#UFTDIIOC_RESET_IO"><code class="Dv">UFTDIIOC_RESET_IO</code></a> - (<var class="Vt">int</var>)</dt> - <dd>Reset the channel to its default configuration, flush RX and TX - FIFOs.</dd> - <dt id="UFTDIIOC_RESET_RX"><a class="permalink" href="#UFTDIIOC_RESET_RX"><code class="Dv">UFTDIIOC_RESET_RX</code></a> - (<var class="Vt">int</var>)</dt> - <dd>Flush the RX FIFO.</dd> - <dt id="UFTDIIOC_RESET_TX"><a class="permalink" href="#UFTDIIOC_RESET_TX"><code class="Dv">UFTDIIOC_RESET_TX</code></a> - (<var class="Vt">int</var>)</dt> - <dd>Flush the TX FIFO.</dd> - <dt id="UFTDIIOC_SET_BITMODE"><a class="permalink" href="#UFTDIIOC_SET_BITMODE"><code class="Dv">UFTDIIOC_SET_BITMODE</code></a> - (<var class="Vt">struct uftdi_bitmode</var>)</dt> - <dd>Put the channel into the operating mode specified in - <var class="Va">mode</var>, and set the pins indicated by ones in - <var class="Va">iomask</var> to output mode. The - <var class="Va">mode</var> must be one of the - <var class="Va">uftdi_bitmodes</var> values. Setting - <var class="Va">mode</var> to <code class="Dv">UFTDI_BITMODE_NONE</code> - returns the channel to standard UART mode. - <div class="Bd Pp Li"> - <pre>enum uftdi_bitmodes -{ - UFTDI_BITMODE_ASYNC = 0, - UFTDI_BITMODE_MPSSE = 1, - UFTDI_BITMODE_SYNC = 2, - UFTDI_BITMODE_CPU_EMUL = 3, - UFTDI_BITMODE_FAST_SERIAL = 4, - UFTDI_BITMODE_CBUS = 5, - UFTDI_BITMODE_NONE = 0xff, -}; - -struct uftdi_bitmode -{ - uint8_t mode; - uint8_t iomask; -};</pre> - </div> - <p class="Pp">Manuals and application notes published by FTDI describe these - modes in detail. To use most of these modes, you first put the channel - into the desired mode, then you <a class="Xr">read(2)</a> and - <a class="Xr">write(2)</a> data which either reflects pin state or is - interpreted as MPSSE commands and parameters, depending on the mode.</p> - </dd> - <dt id="UFTDIIOC_GET_BITMODE"><a class="permalink" href="#UFTDIIOC_GET_BITMODE"><code class="Dv">UFTDIIOC_GET_BITMODE</code></a> - (<var class="Vt">struct uftdi_bitmode</var>)</dt> - <dd>Return the current bitbang mode in the <var class="Va">mode</var> member, - and the state of the DBUS0..DBUS7 pins at the time of the call in the - <var class="Va">iomask</var> member. The pin state can be read while the - chip is in any mode, including <code class="Dv">UFTDI_BITMODE_NONE</code> - (UART) mode.</dd> - <dt id="UFTDIIOC_SET_ERROR_CHAR"><a class="permalink" href="#UFTDIIOC_SET_ERROR_CHAR"><code class="Dv">UFTDIIOC_SET_ERROR_CHAR</code></a> - (<var class="Vt">int</var>)</dt> - <dd>Set the character which is inserted into the buffer to mark the point of - an error such as FIFO overflow.</dd> - <dt id="UFTDIIOC_SET_EVENT_CHAR"><a class="permalink" href="#UFTDIIOC_SET_EVENT_CHAR"><code class="Dv">UFTDIIOC_SET_EVENT_CHAR</code></a> - (<var class="Vt">int</var>)</dt> - <dd>Set the character which causes a partial FIFO full of data to be returned - immediately even if the FIFO is not full.</dd> - <dt id="UFTDIIOC_SET_LATENCY"><a class="permalink" href="#UFTDIIOC_SET_LATENCY"><code class="Dv">UFTDIIOC_SET_LATENCY</code></a> - (<var class="Vt">int</var>)</dt> - <dd>Set the amount of time to wait for a full FIFO, in milliseconds. If more - than this much time elapses without receiving a new character, any - characters in the FIFO are returned.</dd> - <dt id="UFTDIIOC_GET_LATENCY"><a class="permalink" href="#UFTDIIOC_GET_LATENCY"><code class="Dv">UFTDIIOC_GET_LATENCY</code></a> - (<var class="Vt">int</var>)</dt> - <dd>Get the current value of the latency timer.</dd> - <dt id="UFTDIIOC_GET_HWREV"><a class="permalink" href="#UFTDIIOC_GET_HWREV"><code class="Dv">UFTDIIOC_GET_HWREV</code></a> - (<var class="Vt">int</var>)</dt> - <dd>Get the hardware revision number. This is the - <var class="Va">bcdDevice</var> value from the - <var class="Va">usb_device_descriptor</var>.</dd> - <dt id="UFTDIIOC_READ_EEPROM"><a class="permalink" href="#UFTDIIOC_READ_EEPROM"><code class="Dv">UFTDIIOC_READ_EEPROM</code></a> - (<var class="Vt">struct uftdi_eeio</var>)</dt> - <dd>Read one or more words from the configuration eeprom. The FTDI chip - performs eeprom I/O in 16-bit words. Set <var class="Va">offset</var> and - <var class="Va">length</var> to values evenly divisible by two before the - call, and the <var class="Va">data</var> array will contain the requested - values from eeprom after the call. - <div class="Bd Pp Li"> - <pre>struct uftdi_eeio -{ - uint16_t offset; - uint16_t length; - uint16_t data[64]; -};</pre> - </div> - <p class="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.</p> - </dd> - <dt id="UFTDIIOC_WRITE_EEPROM"><a class="permalink" href="#UFTDIIOC_WRITE_EEPROM"><code class="Dv">UFTDIIOC_WRITE_EEPROM</code></a> - (<var class="Vt">struct uftdi_eeio</var>)</dt> - <dd>Write one or more words to the configuration eeprom. The - <var class="Va">uftdi_eeio</var> values are as described for - <code class="Dv">UFTDIIOC_READ_EEPROM</code>. - <p class="Pp" id="not">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 - <a class="permalink" href="#not"><i class="Em">not</i></a> necessary to - erase before writing. Any position within the eeprom can be overwritten - at any time.</p> - </dd> - <dt id="UFTDIIOC_ERASE_EEPROM"><a class="permalink" href="#UFTDIIOC_ERASE_EEPROM"><code class="Dv">UFTDIIOC_ERASE_EEPROM</code></a> - (<var class="Vt">int</var>)</dt> - <dd>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 - <code class="Dv">UFTDI_CONFIRM_ERASE</code> as the argument to this - ioctl.</dd> -</dl> -</section> -<section class="Sh"> -<h1 class="Sh" id="FILES"><a class="permalink" href="#FILES">FILES</a></h1> -<dl class="Bl-tag Bl-compact"> - <dt><span class="Pa">/dev/ttyU*</span></dt> - <dd>for callin ports</dd> - <dt><span class="Pa">/dev/ttyU*.init</span></dt> - <dd style="width: auto;"> </dd> - <dt><span class="Pa">/dev/ttyU*.lock</span></dt> - <dd>corresponding callin initial-state and lock-state devices - <p class="Pp"></p> - </dd> - <dt><span class="Pa">/dev/cuaU*</span></dt> - <dd>for callout ports</dd> - <dt><span class="Pa">/dev/cuaU*.init</span></dt> - <dd style="width: auto;"> </dd> - <dt><span class="Pa">/dev/cuaU*.lock</span></dt> - <dd>corresponding callout initial-state and lock-state devices</dd> -</dl> -</section> -<section class="Sh"> -<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE - ALSO</a></h1> -<p class="Pp"><a class="Xr">cu(1)</a>, <a class="Xr">tty(4)</a>, - <a class="Xr">ucom(4)</a>, <a class="Xr">usb(4)</a></p> -</section> -<section class="Sh"> -<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1> -<p class="Pp">The <code class="Nm">uftdi</code> driver appeared in - <span class="Ux">FreeBSD 4.8</span> from <span class="Ux">NetBSD - 1.5</span>.</p> -</section> -</div> -<table class="foot"> - <tr> - <td class="foot-date">June 25, 2025</td> - <td class="foot-os">FreeBSD 15.0</td> - </tr> -</table> |
