Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
UFTDI(4)		    Kernel Interfaces Manual		      UFTDI(4)

NAME
       uftdi  --  USB  support for serial adapters based on the	FTDI family of
       USB serial adapter chips.

SYNOPSIS
       To compile this driver into the kernel, place the  following  lines  in
       your kernel configuration file:

	     device usb
	     device ucom
	     device uftdi

       Alternatively,  to  load	the driver as a	module at boot time, place the
       following line in loader.conf(5):

	     uftdi_load="YES"

DESCRIPTION
       The uftdi driver	provides support for various serial adapters based  on
       the following FTDI chips:

          FT8U100AX
          FT8U232AM
          FT8U232BM
          FT232R
          FT2232C
          FT2232D
          FT2232H
          FT4232H
          FT230X

       The device is accessed through the ucom(4) driver which makes it	behave
       like a tty(4).

       Many  of	 the  supported	chips provide additional functionality such as
       bitbang mode and	the MPSSE engine for serial bus	emulation.  The	 uftdi
       driver  provides	 access	 to  that  functionality  with	the  following
       ioctl(2)	calls, defined in <dev/usb/uftdiio.h>:

       UFTDIIOC_RESET_IO (int)
	       Reset the channel to its	default	configuration, flush RX	and TX
	       FIFOs.

       UFTDIIOC_RESET_RX (int)
	       Flush the RX FIFO.

       UFTDIIOC_RESET_TX (int)
	       Flush the TX FIFO.

       UFTDIIOC_SET_BITMODE (struct uftdi_bitmode)
	       Put the channel into the	operating mode specified in mode,  and
	       set  the	 pins indicated	by ones	in iomask to output mode.  The
	       mode must be one	of the uftdi_bitmodes values.  Setting mode to
	       UFTDI_BITMODE_NONE returns the channel to standard UART mode.

	       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;
	       };

	       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 read(2) and write(2)
	       data which either reflects pin state or is interpreted as MPSSE
	       commands	and parameters,	depending on the mode.

       UFTDIIOC_GET_BITMODE (struct uftdi_bitmode)
	       Return the current bitbang mode in the  mode  member,  and  the
	       state  of  the DBUS0..DBUS7 pins	at the time of the call	in the
	       iomask member.  The pin state can be read while the chip	is  in
	       any mode, including UFTDI_BITMODE_NONE (UART) mode.

       UFTDIIOC_SET_ERROR_CHAR (int)
	       Set the character which is inserted into	the buffer to mark the
	       point of	an error such as FIFO overflow.

       UFTDIIOC_SET_EVENT_CHAR (int)
	       Set  the	 character which causes	a partial FIFO full of data to
	       be returned immediately even if the FIFO	is not full.

       UFTDIIOC_SET_LATENCY (int)
	       Set the amount of time to wait for a full  FIFO,	 in  millisec-
	       onds.   If more than this much time elapses without receiving a
	       new character, any characters in	the FIFO are returned.

       UFTDIIOC_GET_LATENCY (int)
	       Get the current value of	the latency timer.

       UFTDIIOC_GET_HWREV (int)
	       Get the hardware	revision number.  This is the bcdDevice	 value
	       from the	usb_device_descriptor.

       UFTDIIOC_READ_EEPROM (struct uftdi_eeio)
	       Read one	or more	words from the configuration eeprom.  The FTDI
	       chip  performs  eeprom  I/O  in	16-bit	words.	Set offset and
	       length to values	evenly divisible by two	before the  call,  and
	       the  data  array	 will contain the requested values from	eeprom
	       after the call.

	       struct uftdi_eeio
	       {
		       uint16_t	offset;
		       uint16_t	length;
		       uint16_t	data[64];
	       };

	       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.

       UFTDIIOC_WRITE_EEPROM (struct uftdi_eeio)
	       Write  one  or  more  words  to	the configuration eeprom.  The
	       uftdi_eeio values are as	described for UFTDIIOC_READ_EEPROM.

	       The FTDI	chip does a blind write	to the eeprom, and it will ap-
	       pear to succeed even when no eeprom is present.	 To  ensure  a
	       good  write  you	must read back and verify the data.  It	is not
	       necessary to erase before writing.   Any	 position  within  the
	       eeprom can be overwritten at any	time.

       UFTDIIOC_ERASE_EEPROM (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	UFTDI_CONFIRM_ERASE as
	       the argument to this ioctl.

HARDWARE
       The uftdi driver	supports the following adapters:

          B&B Electronics USB->RS422/485 adapter
          Elexol USB MOD1 and USB MOD3
          HP USB-Serial adapter shipped with some HP laptops
          Inland UAS111
          QVS USC-1000
          Buffalo PC-OP-RS / Kurouto-shikou KURO-RS universal remote
          Prologix GPIB-USB Controller

FILES
       /dev/ttyU*	for callin ports
       /dev/ttyU*.init
       /dev/ttyU*.lock	corresponding callin initial-state and lock-state  de-
			vices

       /dev/cuaU*	for callout ports
       /dev/cuaU*.init
       /dev/cuaU*.lock	corresponding callout initial-state and	lock-state de-
			vices

SEE ALSO
       tty(4), ucom(4),	usb(4)

HISTORY
       The uftdi driver	appeared in FreeBSD 4.8	from NetBSD 1.5.

FreeBSD	14.3			April 26, 2017			      UFTDI(4)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=uftdi&sektion=4&manpath=FreeBSD+14.3-RELEASE+and+Ports>

home | help