summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/uftdi.4 4.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man4/uftdi.4 4.html')
-rw-r--r--static/freebsd/man4/uftdi.4 4.html234
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> &#x2014; <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=&quot;uftdi&quot;</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
- &#x2018;<code class="Li">0</code>&#x2019;</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
- &#x2018;<code class="Li">1</code>&#x2019;</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">&lt;<a class="In">dev/usb/uftdiio.h</a>&gt;</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;">&#x00A0;</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;">&#x00A0;</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>