mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-15 15:04:27 +08:00
ecefae6db0
While there are a mix of things here, most of the stuff were written from Kernel developer's PoV. So, add them to the driver-api book. A follow up for this patch would be to move documents from there that are specific to sysadmins, adding them to the admin-guide. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> Acked-by: Johan Hovold <johan@kernel.org> Acked-by: Felipe Balbi <felipe.balbi@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
538 lines
20 KiB
ReStructuredText
538 lines
20 KiB
ReStructuredText
==========
|
|
USB serial
|
|
==========
|
|
|
|
Introduction
|
|
============
|
|
|
|
The USB serial driver currently supports a number of different USB to
|
|
serial converter products, as well as some devices that use a serial
|
|
interface from userspace to talk to the device.
|
|
|
|
See the individual product section below for specific information about
|
|
the different devices.
|
|
|
|
|
|
Configuration
|
|
=============
|
|
|
|
Currently the driver can handle up to 256 different serial interfaces at
|
|
one time.
|
|
|
|
The major number that the driver uses is 188 so to use the driver,
|
|
create the following nodes::
|
|
|
|
mknod /dev/ttyUSB0 c 188 0
|
|
mknod /dev/ttyUSB1 c 188 1
|
|
mknod /dev/ttyUSB2 c 188 2
|
|
mknod /dev/ttyUSB3 c 188 3
|
|
.
|
|
.
|
|
.
|
|
mknod /dev/ttyUSB254 c 188 254
|
|
mknod /dev/ttyUSB255 c 188 255
|
|
|
|
When the device is connected and recognized by the driver, the driver
|
|
will print to the system log, which node(s) the device has been bound
|
|
to.
|
|
|
|
|
|
Specific Devices Supported
|
|
==========================
|
|
|
|
|
|
ConnectTech WhiteHEAT 4 port converter
|
|
--------------------------------------
|
|
|
|
ConnectTech has been very forthcoming with information about their
|
|
device, including providing a unit to test with.
|
|
|
|
The driver is officially supported by Connect Tech Inc.
|
|
http://www.connecttech.com
|
|
|
|
For any questions or problems with this driver, please contact
|
|
Connect Tech's Support Department at support@connecttech.com
|
|
|
|
|
|
HandSpring Visor, Palm USB, and Clié USB driver
|
|
-----------------------------------------------
|
|
|
|
This driver works with all HandSpring USB, Palm USB, and Sony Clié USB
|
|
devices.
|
|
|
|
Only when the device tries to connect to the host, will the device show
|
|
up to the host as a valid USB device. When this happens, the device is
|
|
properly enumerated, assigned a port, and then communication _should_ be
|
|
possible. The driver cleans up properly when the device is removed, or
|
|
the connection is canceled on the device.
|
|
|
|
NOTE:
|
|
This means that in order to talk to the device, the sync button must be
|
|
pressed BEFORE trying to get any program to communicate to the device.
|
|
This goes against the current documentation for pilot-xfer and other
|
|
packages, but is the only way that it will work due to the hardware
|
|
in the device.
|
|
|
|
When the device is connected, try talking to it on the second port
|
|
(this is usually /dev/ttyUSB1 if you do not have any other usb-serial
|
|
devices in the system.) The system log should tell you which port is
|
|
the port to use for the HotSync transfer. The "Generic" port can be used
|
|
for other device communication, such as a PPP link.
|
|
|
|
For some Sony Clié devices, /dev/ttyUSB0 must be used to talk to the
|
|
device. This is true for all OS version 3.5 devices, and most devices
|
|
that have had a flash upgrade to a newer version of the OS. See the
|
|
kernel system log for information on which is the correct port to use.
|
|
|
|
If after pressing the sync button, nothing shows up in the system log,
|
|
try resetting the device, first a hot reset, and then a cold reset if
|
|
necessary. Some devices need this before they can talk to the USB port
|
|
properly.
|
|
|
|
Devices that are not compiled into the kernel can be specified with module
|
|
parameters. e.g. modprobe visor vendor=0x54c product=0x66
|
|
|
|
There is a webpage and mailing lists for this portion of the driver at:
|
|
http://sourceforge.net/projects/usbvisor/
|
|
|
|
For any questions or problems with this driver, please contact Greg
|
|
Kroah-Hartman at greg@kroah.com
|
|
|
|
|
|
PocketPC PDA Driver
|
|
-------------------
|
|
|
|
This driver can be used to connect to Compaq iPAQ, HP Jornada, Casio EM500
|
|
and other PDAs running Windows CE 3.0 or PocketPC 2002 using a USB
|
|
cable/cradle.
|
|
Most devices supported by ActiveSync are supported out of the box.
|
|
For others, please use module parameters to specify the product and vendor
|
|
id. e.g. modprobe ipaq vendor=0x3f0 product=0x1125
|
|
|
|
The driver presents a serial interface (usually on /dev/ttyUSB0) over
|
|
which one may run ppp and establish a TCP/IP link to the PDA. Once this
|
|
is done, you can transfer files, backup, download email etc. The most
|
|
significant advantage of using USB is speed - I can get 73 to 113
|
|
kbytes/sec for download/upload to my iPAQ.
|
|
|
|
This driver is only one of a set of components required to utilize
|
|
the USB connection. Please visit http://synce.sourceforge.net which
|
|
contains the necessary packages and a simple step-by-step howto.
|
|
|
|
Once connected, you can use Win CE programs like ftpView, Pocket Outlook
|
|
from the PDA and xcerdisp, synce utilities from the Linux side.
|
|
|
|
To use Pocket IE, follow the instructions given at
|
|
http://www.tekguru.co.uk/EM500/usbtonet.htm to achieve the same thing
|
|
on Win98. Omit the proxy server part; Linux is quite capable of forwarding
|
|
packets unlike Win98. Another modification is required at least for the
|
|
iPAQ - disable autosync by going to the Start/Settings/Connections menu
|
|
and unchecking the "Automatically synchronize ..." box. Go to
|
|
Start/Programs/Connections, connect the cable and select "usbdial" (or
|
|
whatever you named your new USB connection). You should finally wind
|
|
up with a "Connected to usbdial" window with status shown as connected.
|
|
Now start up PIE and browse away.
|
|
|
|
If it doesn't work for some reason, load both the usbserial and ipaq module
|
|
with the module parameter "debug" set to 1 and examine the system log.
|
|
You can also try soft-resetting your PDA before attempting a connection.
|
|
|
|
Other functionality may be possible depending on your PDA. According to
|
|
Wes Cilldhaire <billybobjoehenrybob@hotmail.com>, with the Toshiba E570,
|
|
...if you boot into the bootloader (hold down the power when hitting the
|
|
reset button, continuing to hold onto the power until the bootloader screen
|
|
is displayed), then put it in the cradle with the ipaq driver loaded, open
|
|
a terminal on /dev/ttyUSB0, it gives you a "USB Reflash" terminal, which can
|
|
be used to flash the ROM, as well as the microP code.. so much for needing
|
|
Toshiba's $350 serial cable for flashing!! :D
|
|
NOTE: This has NOT been tested. Use at your own risk.
|
|
|
|
For any questions or problems with the driver, please contact Ganesh
|
|
Varadarajan <ganesh@veritas.com>
|
|
|
|
|
|
Keyspan PDA Serial Adapter
|
|
--------------------------
|
|
|
|
Single port DB-9 serial adapter, pushed as a PDA adapter for iMacs (mostly
|
|
sold in Macintosh catalogs, comes in a translucent white/green dongle).
|
|
Fairly simple device. Firmware is homebrew.
|
|
This driver also works for the Xircom/Entrega single port serial adapter.
|
|
|
|
Current status:
|
|
|
|
Things that work:
|
|
- basic input/output (tested with 'cu')
|
|
- blocking write when serial line can't keep up
|
|
- changing baud rates (up to 115200)
|
|
- getting/setting modem control pins (TIOCM{GET,SET,BIS,BIC})
|
|
- sending break (although duration looks suspect)
|
|
|
|
Things that don't:
|
|
- device strings (as logged by kernel) have trailing binary garbage
|
|
- device ID isn't right, might collide with other Keyspan products
|
|
- changing baud rates ought to flush tx/rx to avoid mangled half characters
|
|
|
|
Big Things on the todo list:
|
|
- parity, 7 vs 8 bits per char, 1 or 2 stop bits
|
|
- HW flow control
|
|
- not all of the standard USB descriptors are handled:
|
|
Get_Status, Set_Feature, O_NONBLOCK, select()
|
|
|
|
For any questions or problems with this driver, please contact Brian
|
|
Warner at warner@lothar.com
|
|
|
|
|
|
Keyspan USA-series Serial Adapters
|
|
----------------------------------
|
|
|
|
Single, Dual and Quad port adapters - driver uses Keyspan supplied
|
|
firmware and is being developed with their support.
|
|
|
|
Current status:
|
|
|
|
The USA-18X, USA-28X, USA-19, USA-19W and USA-49W are supported and
|
|
have been pretty thoroughly tested at various baud rates with 8-N-1
|
|
character settings. Other character lengths and parity setups are
|
|
presently untested.
|
|
|
|
The USA-28 isn't yet supported though doing so should be pretty
|
|
straightforward. Contact the maintainer if you require this
|
|
functionality.
|
|
|
|
More information is available at:
|
|
|
|
http://www.carnationsoftware.com/carnation/Keyspan.html
|
|
|
|
For any questions or problems with this driver, please contact Hugh
|
|
Blemings at hugh@misc.nu
|
|
|
|
|
|
FTDI Single Port Serial Driver
|
|
------------------------------
|
|
|
|
This is a single port DB-25 serial adapter.
|
|
|
|
Devices supported include:
|
|
|
|
- TripNav TN-200 USB GPS
|
|
- Navis Engineering Bureau CH-4711 USB GPS
|
|
|
|
For any questions or problems with this driver, please contact Bill Ryder.
|
|
|
|
|
|
ZyXEL omni.net lcd plus ISDN TA
|
|
-------------------------------
|
|
|
|
This is an ISDN TA. Please report both successes and troubles to
|
|
azummo@towertech.it
|
|
|
|
|
|
Cypress M8 CY4601 Family Serial Driver
|
|
--------------------------------------
|
|
|
|
This driver was in most part developed by Neil "koyama" Whelchel. It
|
|
has been improved since that previous form to support dynamic serial
|
|
line settings and improved line handling. The driver is for the most
|
|
part stable and has been tested on an smp machine. (dual p2)
|
|
|
|
Chipsets supported under CY4601 family:
|
|
|
|
CY7C63723, CY7C63742, CY7C63743, CY7C64013
|
|
|
|
Devices supported:
|
|
|
|
- DeLorme's USB Earthmate GPS (SiRF Star II lp arch)
|
|
- Cypress HID->COM RS232 adapter
|
|
|
|
Note:
|
|
Cypress Semiconductor claims no affiliation with the
|
|
hid->com device.
|
|
|
|
Most devices using chipsets under the CY4601 family should
|
|
work with the driver. As long as they stay true to the CY4601
|
|
usbserial specification.
|
|
|
|
Technical notes:
|
|
|
|
The Earthmate starts out at 4800 8N1 by default... the driver will
|
|
upon start init to this setting. usbserial core provides the rest
|
|
of the termios settings, along with some custom termios so that the
|
|
output is in proper format and parsable.
|
|
|
|
The device can be put into sirf mode by issuing NMEA command::
|
|
|
|
$PSRF100,<protocol>,<baud>,<databits>,<stopbits>,<parity>*CHECKSUM
|
|
$PSRF100,0,9600,8,1,0*0C
|
|
|
|
It should then be sufficient to change the port termios to match this
|
|
to begin communicating.
|
|
|
|
As far as I can tell it supports pretty much every sirf command as
|
|
documented online available with firmware 2.31, with some unknown
|
|
message ids.
|
|
|
|
The hid->com adapter can run at a maximum baud of 115200bps. Please note
|
|
that the device has trouble or is incapable of raising line voltage properly.
|
|
It will be fine with null modem links, as long as you do not try to link two
|
|
together without hacking the adapter to set the line high.
|
|
|
|
The driver is smp safe. Performance with the driver is rather low when using
|
|
it for transferring files. This is being worked on, but I would be willing to
|
|
accept patches. An urb queue or packet buffer would likely fit the bill here.
|
|
|
|
If you have any questions, problems, patches, feature requests, etc. you can
|
|
contact me here via email:
|
|
|
|
dignome@gmail.com
|
|
|
|
(your problems/patches can alternately be submitted to usb-devel)
|
|
|
|
|
|
Digi AccelePort Driver
|
|
----------------------
|
|
|
|
This driver supports the Digi AccelePort USB 2 and 4 devices, 2 port
|
|
(plus a parallel port) and 4 port USB serial converters. The driver
|
|
does NOT yet support the Digi AccelePort USB 8.
|
|
|
|
This driver works under SMP with the usb-uhci driver. It does not
|
|
work under SMP with the uhci driver.
|
|
|
|
The driver is generally working, though we still have a few more ioctls
|
|
to implement and final testing and debugging to do. The parallel port
|
|
on the USB 2 is supported as a serial to parallel converter; in other
|
|
words, it appears as another USB serial port on Linux, even though
|
|
physically it is really a parallel port. The Digi Acceleport USB 8
|
|
is not yet supported.
|
|
|
|
Please contact Peter Berger (pberger@brimson.com) or Al Borchers
|
|
(alborchers@steinerpoint.com) for questions or problems with this
|
|
driver.
|
|
|
|
|
|
Belkin USB Serial Adapter F5U103
|
|
--------------------------------
|
|
|
|
Single port DB-9/PS-2 serial adapter from Belkin with firmware by eTEK Labs.
|
|
The Peracom single port serial adapter also works with this driver, as
|
|
well as the GoHubs adapter.
|
|
|
|
Current status:
|
|
|
|
The following have been tested and work:
|
|
|
|
- Baud rate 300-230400
|
|
- Data bits 5-8
|
|
- Stop bits 1-2
|
|
- Parity N,E,O,M,S
|
|
- Handshake None, Software (XON/XOFF), Hardware (CTSRTS,CTSDTR) [1]_
|
|
- Break Set and clear
|
|
- Line control Input/Output query and control [2]_
|
|
|
|
.. [1]
|
|
Hardware input flow control is only enabled for firmware
|
|
levels above 2.06. Read source code comments describing Belkin
|
|
firmware errata. Hardware output flow control is working for all
|
|
firmware versions.
|
|
|
|
.. [2]
|
|
Queries of inputs (CTS,DSR,CD,RI) show the last
|
|
reported state. Queries of outputs (DTR,RTS) show the last
|
|
requested state and may not reflect current state as set by
|
|
automatic hardware flow control.
|
|
|
|
TO DO List:
|
|
- Add true modem control line query capability. Currently tracks the
|
|
states reported by the interrupt and the states requested.
|
|
- Add error reporting back to application for UART error conditions.
|
|
- Add support for flush ioctls.
|
|
- Add everything else that is missing :)
|
|
|
|
For any questions or problems with this driver, please contact William
|
|
Greathouse at wgreathouse@smva.com
|
|
|
|
|
|
Empeg empeg-car Mark I/II Driver
|
|
--------------------------------
|
|
|
|
This is an experimental driver to provide connectivity support for the
|
|
client synchronization tools for an Empeg empeg-car mp3 player.
|
|
|
|
Tips:
|
|
* Don't forget to create the device nodes for ttyUSB{0,1,2,...}
|
|
* modprobe empeg (modprobe is your friend)
|
|
* emptool --usb /dev/ttyUSB0 (or whatever you named your device node)
|
|
|
|
For any questions or problems with this driver, please contact Gary
|
|
Brubaker at xavyer@ix.netcom.com
|
|
|
|
|
|
MCT USB Single Port Serial Adapter U232
|
|
---------------------------------------
|
|
|
|
This driver is for the MCT USB-RS232 Converter (25 pin, Model No.
|
|
U232-P25) from Magic Control Technology Corp. (there is also a 9 pin
|
|
Model No. U232-P9). More information about this device can be found at
|
|
the manufacturer's web-site: http://www.mct.com.tw.
|
|
|
|
The driver is generally working, though it still needs some more testing.
|
|
It is derived from the Belkin USB Serial Adapter F5U103 driver and its
|
|
TODO list is valid for this driver as well.
|
|
|
|
This driver has also been found to work for other products, which have
|
|
the same Vendor ID but different Product IDs. Sitecom's U232-P25 serial
|
|
converter uses Product ID 0x230 and Vendor ID 0x711 and works with this
|
|
driver. Also, D-Link's DU-H3SP USB BAY also works with this driver.
|
|
|
|
For any questions or problems with this driver, please contact Wolfgang
|
|
Grandegger at wolfgang@ces.ch
|
|
|
|
|
|
Inside Out Networks Edgeport Driver
|
|
-----------------------------------
|
|
|
|
This driver supports all devices made by Inside Out Networks, specifically
|
|
the following models:
|
|
|
|
- Edgeport/4
|
|
- Rapidport/4
|
|
- Edgeport/4t
|
|
- Edgeport/2
|
|
- Edgeport/4i
|
|
- Edgeport/2i
|
|
- Edgeport/421
|
|
- Edgeport/21
|
|
- Edgeport/8
|
|
- Edgeport/8 Dual
|
|
- Edgeport/2D8
|
|
- Edgeport/4D8
|
|
- Edgeport/8i
|
|
- Edgeport/2 DIN
|
|
- Edgeport/4 DIN
|
|
- Edgeport/16 Dual
|
|
|
|
For any questions or problems with this driver, please contact Greg
|
|
Kroah-Hartman at greg@kroah.com
|
|
|
|
|
|
REINER SCT cyberJack pinpad/e-com USB chipcard reader
|
|
-----------------------------------------------------
|
|
|
|
Interface to ISO 7816 compatible contactbased chipcards, e.g. GSM SIMs.
|
|
|
|
Current status:
|
|
|
|
This is the kernel part of the driver for this USB card reader.
|
|
There is also a user part for a CT-API driver available. A site
|
|
for downloading is TBA. For now, you can request it from the
|
|
maintainer (linux-usb@sii.li).
|
|
|
|
For any questions or problems with this driver, please contact
|
|
linux-usb@sii.li
|
|
|
|
|
|
Prolific PL2303 Driver
|
|
----------------------
|
|
|
|
This driver supports any device that has the PL2303 chip from Prolific
|
|
in it. This includes a number of single port USB to serial converters,
|
|
more than 70% of USB GPS devices (in 2010), and some USB UPSes. Devices
|
|
from Aten (the UC-232) and IO-Data work with this driver, as does
|
|
the DCU-11 mobile-phone cable.
|
|
|
|
For any questions or problems with this driver, please contact Greg
|
|
Kroah-Hartman at greg@kroah.com
|
|
|
|
|
|
KL5KUSB105 chipset / PalmConnect USB single-port adapter
|
|
--------------------------------------------------------
|
|
|
|
Current status:
|
|
|
|
The driver was put together by looking at the usb bus transactions
|
|
done by Palm's driver under Windows, so a lot of functionality is
|
|
still missing. Notably, serial ioctls are sometimes faked or not yet
|
|
implemented. Support for finding out about DSR and CTS line status is
|
|
however implemented (though not nicely), so your favorite autopilot(1)
|
|
and pilot-manager -daemon calls will work. Baud rates up to 115200
|
|
are supported, but handshaking (software or hardware) is not, which is
|
|
why it is wise to cut down on the rate used is wise for large
|
|
transfers until this is settled.
|
|
|
|
See http://www.uuhaus.de/linux/palmconnect.html for up-to-date
|
|
information on this driver.
|
|
|
|
Winchiphead CH341 Driver
|
|
------------------------
|
|
|
|
This driver is for the Winchiphead CH341 USB-RS232 Converter. This chip
|
|
also implements an IEEE 1284 parallel port, I2C and SPI, but that is not
|
|
supported by the driver. The protocol was analyzed from the behaviour
|
|
of the Windows driver, no datasheet is available at present.
|
|
|
|
The manufacturer's website: http://www.winchiphead.com/.
|
|
|
|
For any questions or problems with this driver, please contact
|
|
frank@kingswood-consulting.co.uk.
|
|
|
|
Moschip MCS7720, MCS7715 driver
|
|
-------------------------------
|
|
|
|
These chips are present in devices sold by various manufacturers, such as Syba
|
|
and Cables Unlimited. There may be others. The 7720 provides two serial
|
|
ports, and the 7715 provides one serial and one standard PC parallel port.
|
|
Support for the 7715's parallel port is enabled by a separate option, which
|
|
will not appear unless parallel port support is first enabled at the top-level
|
|
of the Device Drivers config menu. Currently only compatibility mode is
|
|
supported on the parallel port (no ECP/EPP).
|
|
|
|
TODO:
|
|
- Implement ECP/EPP modes for the parallel port.
|
|
- Baud rates higher than 115200 are currently broken.
|
|
- Devices with a single serial port based on the Moschip MCS7703 may work
|
|
with this driver with a simple addition to the usb_device_id table. I
|
|
don't have one of these devices, so I can't say for sure.
|
|
|
|
Generic Serial driver
|
|
---------------------
|
|
|
|
If your device is not one of the above listed devices, compatible with
|
|
the above models, you can try out the "generic" interface. This
|
|
interface does not provide any type of control messages sent to the
|
|
device, and does not support any kind of device flow control. All that
|
|
is required of your device is that it has at least one bulk in endpoint,
|
|
or one bulk out endpoint.
|
|
|
|
To enable the generic driver to recognize your device, provide::
|
|
|
|
echo <vid> <pid> >/sys/bus/usb-serial/drivers/generic/new_id
|
|
|
|
where the <vid> and <pid> is replaced with the hex representation of your
|
|
device's vendor id and product id.
|
|
If the driver is compiled as a module you can also provide one id when
|
|
loading the module::
|
|
|
|
insmod usbserial vendor=0x#### product=0x####
|
|
|
|
This driver has been successfully used to connect to the NetChip USB
|
|
development board, providing a way to develop USB firmware without
|
|
having to write a custom driver.
|
|
|
|
For any questions or problems with this driver, please contact Greg
|
|
Kroah-Hartman at greg@kroah.com
|
|
|
|
|
|
Contact
|
|
=======
|
|
|
|
If anyone has any problems using these drivers, with any of the above
|
|
specified products, please contact the specific driver's author listed
|
|
above, or join the Linux-USB mailing list (information on joining the
|
|
mailing list, as well as a link to its searchable archive is at
|
|
http://www.linux-usb.org/ )
|
|
|
|
|
|
Greg Kroah-Hartman
|
|
greg@kroah.com
|