Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[linux/fpc-iii.git] / Documentation / usb / usb-serial.txt
blob5bd7926185e89288418d794e9bc566fee98b798e
1 INTRODUCTION
3   The USB serial driver currently supports a number of different USB to
4   serial converter products, as well as some devices that use a serial
5   interface from userspace to talk to the device.
7   See the individual product section below for specific information about
8   the different devices.
11 CONFIGURATION
13   Currently the driver can handle up to 256 different serial interfaces at
14   one time. 
16     The major number that the driver uses is 188 so to use the driver,
17     create the following nodes:
18         mknod /dev/ttyUSB0 c 188 0
19         mknod /dev/ttyUSB1 c 188 1
20         mknod /dev/ttyUSB2 c 188 2
21         mknod /dev/ttyUSB3 c 188 3
22                 .
23                 .
24                 .
25         mknod /dev/ttyUSB254 c 188 254
26         mknod /dev/ttyUSB255 c 188 255
28   When the device is connected and recognized by the driver, the driver
29   will print to the system log, which node(s) the device has been bound
30   to.
31   
33 SPECIFIC DEVICES SUPPORTED
36 ConnectTech WhiteHEAT 4 port converter
38   ConnectTech has been very forthcoming with information about their
39   device, including providing a unit to test with.
41   The driver is officially supported by Connect Tech Inc.
42   http://www.connecttech.com
44   For any questions or problems with this driver, please contact
45   Connect Tech's Support Department at support@connecttech.com
48 HandSpring Visor, Palm USB, and Clié USB driver
50   This driver works with all HandSpring USB, Palm USB, and Sony Clié USB
51   devices.
53   Only when the device tries to connect to the host, will the device show
54   up to the host as a valid USB device. When this happens, the device is
55   properly enumerated, assigned a port, and then communication _should_ be
56   possible. The driver cleans up properly when the device is removed, or
57   the connection is canceled on the device.
59   NOTE:
60     This means that in order to talk to the device, the sync button must be
61     pressed BEFORE trying to get any program to communicate to the device.
62     This goes against the current documentation for pilot-xfer and other
63     packages, but is the only way that it will work due to the hardware
64     in the device.
65   
66   When the device is connected, try talking to it on the second port
67   (this is usually /dev/ttyUSB1 if you do not have any other usb-serial
68   devices in the system.) The system log should tell you which port is
69   the port to use for the HotSync transfer. The "Generic" port can be used
70   for other device communication, such as a PPP link.
72   For some Sony Clié devices, /dev/ttyUSB0 must be used to talk to the
73   device.  This is true for all OS version 3.5 devices, and most devices
74   that have had a flash upgrade to a newer version of the OS.  See the
75   kernel system log for information on which is the correct port to use.
77   If after pressing the sync button, nothing shows up in the system log,
78   try resetting the device, first a hot reset, and then a cold reset if
79   necessary.  Some devices need this before they can talk to the USB port
80   properly.
81   
82   Devices that are not compiled into the kernel can be specified with module
83   parameters.  e.g. modprobe visor vendor=0x54c product=0x66
84   
85   There is a webpage and mailing lists for this portion of the driver at:
86   http://sourceforge.net/projects/usbvisor/
88   For any questions or problems with this driver, please contact Greg
89   Kroah-Hartman at greg@kroah.com
92 PocketPC PDA Driver
94   This driver can be used to connect to Compaq iPAQ, HP Jornada, Casio EM500
95   and other PDAs running Windows CE 3.0 or PocketPC 2002 using a USB
96   cable/cradle.
97   Most devices supported by ActiveSync are supported out of the box.
98   For others, please use module parameters to specify the product and vendor
99   id. e.g. modprobe ipaq vendor=0x3f0 product=0x1125
101   The driver presents a serial interface (usually on /dev/ttyUSB0) over
102   which one may run ppp and establish a TCP/IP link to the PDA. Once this
103   is done, you can transfer files, backup, download email etc. The most
104   significant advantage of using USB is speed - I can get 73 to 113
105   kbytes/sec for download/upload to my iPAQ.
107   This driver is only one of a set of components required to utilize
108   the USB connection. Please visit http://synce.sourceforge.net which
109   contains the necessary packages and a simple step-by-step howto.
111   Once connected, you can use Win CE programs like ftpView, Pocket Outlook
112   from the PDA and xcerdisp, synce utilities from the Linux side.
114   To use Pocket IE, follow the instructions given at
115   http://www.tekguru.co.uk/EM500/usbtonet.htm to achieve the same thing
116   on Win98. Omit the proxy server part; Linux is quite capable of forwarding
117   packets unlike Win98. Another modification is required at least for the
118   iPAQ - disable autosync by going to the Start/Settings/Connections menu
119   and unchecking the "Automatically synchronize ..." box. Go to
120   Start/Programs/Connections, connect the cable and select "usbdial" (or
121   whatever you named your new USB connection). You should finally wind
122   up with a "Connected to usbdial" window with status shown as connected.
123   Now start up PIE and browse away.
125   If it doesn't work for some reason, load both the usbserial and ipaq module
126   with the module parameter "debug" set to 1 and examine the system log.
127   You can also try soft-resetting your PDA before attempting a connection.
129   Other functionality may be possible depending on your PDA. According to
130   Wes Cilldhaire <billybobjoehenrybob@hotmail.com>, with the Toshiba E570,
131   ...if you boot into the bootloader (hold down the power when hitting the
132   reset button, continuing to hold onto the power until the bootloader screen
133   is displayed), then put it in the cradle with the ipaq driver loaded, open
134   a terminal on /dev/ttyUSB0, it gives you a "USB Reflash" terminal, which can
135   be used to flash the ROM, as well as the microP code..  so much for needing
136   Toshiba's $350 serial cable for flashing!! :D
137   NOTE: This has NOT been tested. Use at your own risk.
139   For any questions or problems with the driver, please contact Ganesh
140   Varadarajan <ganesh@veritas.com>
143 Keyspan PDA Serial Adapter
145   Single port DB-9 serial adapter, pushed as a PDA adapter for iMacs (mostly
146   sold in Macintosh catalogs, comes in a translucent white/green dongle).
147   Fairly simple device. Firmware is homebrew.
148   This driver also works for the Xircom/Entrgra single port serial adapter.
150   Current status:
151    Things that work:
152      basic input/output (tested with 'cu')
153      blocking write when serial line can't keep up
154      changing baud rates (up to 115200)
155      getting/setting modem control pins (TIOCM{GET,SET,BIS,BIC})
156      sending break (although duration looks suspect)
157    Things that don't:
158      device strings (as logged by kernel) have trailing binary garbage
159      device ID isn't right, might collide with other Keyspan products
160      changing baud rates ought to flush tx/rx to avoid mangled half characters
161    Big Things on the todo list:
162      parity, 7 vs 8 bits per char, 1 or 2 stop bits
163      HW flow control
164      not all of the standard USB descriptors are handled: Get_Status, Set_Feature
165      O_NONBLOCK, select()
167   For any questions or problems with this driver, please contact Brian
168   Warner at warner@lothar.com 
171 Keyspan USA-series Serial Adapters
173   Single, Dual and Quad port adapters - driver uses Keyspan supplied 
174   firmware and is being developed with their support.
175   
176   Current status:
177     The USA-18X, USA-28X, USA-19, USA-19W and USA-49W are supported and
178     have been pretty thoroughly tested at various baud rates with 8-N-1
179     character settings.  Other character lengths and parity setups are
180     presently untested.
182     The USA-28 isn't yet supported though doing so should be pretty
183     straightforward.  Contact the maintainer if you require this
184     functionality.
185   
186   More information is available at:
187         http://www.carnationsoftware.com/carnation/Keyspan.html
188    
189   For any questions or problems with this driver, please contact Hugh
190   Blemings at hugh@misc.nu
193 FTDI Single Port Serial Driver
195   This is a single port DB-25 serial adapter.
197   Devices supported include:
198                 -TripNav TN-200 USB GPS
199                 -Navis Engineering Bureau CH-4711 USB GPS
201   For any questions or problems with this driver, please contact Bill Ryder.
204 ZyXEL omni.net lcd plus ISDN TA
206   This is an ISDN TA. Please report both successes and troubles to
207   azummo@towertech.it
210 Cypress M8 CY4601 Family Serial Driver
212   This driver was in most part developed by Neil "koyama" Whelchel.  It
213   has been improved since that previous form to support dynamic serial
214   line settings and improved line handling.  The driver is for the most
215   part stable and has been tested on an smp machine. (dual p2)
217     Chipsets supported under CY4601 family:
218         
219                 CY7C63723, CY7C63742, CY7C63743, CY7C64013
221     Devices supported:
223                 -DeLorme's USB Earthmate GPS (SiRF Star II lp arch)
224                 -Cypress HID->COM RS232 adapter
225         
226                 Note: Cypress Semiconductor claims no affiliation with the
227                         hid->com device.
229         Most devices using chipsets under the CY4601 family should
230      work with the driver.  As long as they stay true to the CY4601
231      usbserial specification.
233     Technical notes:
235         The Earthmate starts out at 4800 8N1 by default... the driver will
236         upon start init to this setting.  usbserial core provides the rest
237         of the termios settings, along with some custom termios so that the
238         output is in proper format and parsable.
239         
240         The device can be put into sirf mode by issuing NMEA command:
241                 $PSRF100,<protocol>,<baud>,<databits>,<stopbits>,<parity>*CHECKSUM
242                 $PSRF100,0,9600,8,1,0*0C
244                 It should then be sufficient to change the port termios to match this
245                 to begin communicating.
247         As far as I can tell it supports pretty much every sirf command as
248         documented online available with firmware 2.31, with some unknown
249         message ids.
251         The hid->com adapter can run at a maximum baud of 115200bps.  Please note
252         that the device has trouble or is incapable of raising line voltage properly.
253         It will be fine with null modem links, as long as you do not try to link two
254         together without hacking the adapter to set the line high.
256         The driver is smp safe.  Performance with the driver is rather low when using
257         it for transferring files.  This is being worked on, but I would be willing to
258         accept patches.  An urb queue or packet buffer would likely fit the bill here.
260         If you have any questions, problems, patches, feature requests, etc. you can
261         contact me here via email:
262                                         dignome@gmail.com
263                 (your problems/patches can alternately be submitted to usb-devel)
266 Digi AccelePort Driver
268   This driver supports the Digi AccelePort USB 2 and 4 devices, 2 port
269   (plus a parallel port) and 4 port USB serial converters.  The driver
270   does NOT yet support the Digi AccelePort USB 8.
272   This driver works under SMP with the usb-uhci driver.  It does not
273   work under SMP with the uhci driver.
275   The driver is generally working, though we still have a few more ioctls
276   to implement and final testing and debugging to do.  The parallel port
277   on the USB 2 is supported as a serial to parallel converter; in other
278   words, it appears as another USB serial port on Linux, even though
279   physically it is really a parallel port.  The Digi Acceleport USB 8
280   is not yet supported.
282   Please contact Peter Berger (pberger@brimson.com) or Al Borchers
283   (alborchers@steinerpoint.com) for questions or problems with this
284   driver.
287 Belkin USB Serial Adapter F5U103
289   Single port DB-9/PS-2 serial adapter from Belkin with firmware by eTEK Labs.
290   The Peracom single port serial adapter also works with this driver, as
291   well as the GoHubs adapter.
293   Current status:
294     The following have been tested and work:
295       Baud rate    300-230400               
296       Data bits    5-8
297       Stop bits    1-2
298       Parity       N,E,O,M,S
299       Handshake    None, Software (XON/XOFF), Hardware (CTSRTS,CTSDTR)*
300       Break        Set and clear
301       Line control Input/Output query and control **
303       *  Hardware input flow control is only enabled for firmware
304          levels above 2.06.  Read source code comments describing Belkin
305          firmware errata.  Hardware output flow control is working for all
306          firmware versions.
307       ** Queries of inputs (CTS,DSR,CD,RI) show the last
308          reported state.  Queries of outputs (DTR,RTS) show the last
309          requested state and may not reflect current state as set by
310          automatic hardware flow control.
312   TO DO List:
313     -- Add true modem control line query capability.  Currently tracks the
314        states reported by the interrupt and the states requested.
315     -- Add error reporting back to application for UART error conditions.
316     -- Add support for flush ioctls.
317     -- Add everything else that is missing :)
319   For any questions or problems with this driver, please contact William
320   Greathouse at wgreathouse@smva.com
323 Empeg empeg-car Mark I/II Driver
325   This is an experimental driver to provide connectivity support for the
326   client synchronization tools for an Empeg empeg-car mp3 player.
328   Tips:
329     * Don't forget to create the device nodes for ttyUSB{0,1,2,...}
330     * modprobe empeg (modprobe is your friend)
331     * emptool --usb /dev/ttyUSB0 (or whatever you named your device node)
333   For any questions or problems with this driver, please contact Gary
334   Brubaker at xavyer@ix.netcom.com
337 MCT USB Single Port Serial Adapter U232
339   This driver is for the MCT USB-RS232 Converter (25 pin, Model No.
340   U232-P25) from Magic Control Technology Corp. (there is also a 9 pin
341   Model No. U232-P9). More information about this device can be found at
342   the manufacturer's web-site: http://www.mct.com.tw.
344   The driver is generally working, though it still needs some more testing.
345   It is derived from the Belkin USB Serial Adapter F5U103 driver and its
346   TODO list is valid for this driver as well.
348   This driver has also been found to work for other products, which have
349   the same Vendor ID but different Product IDs. Sitecom's U232-P25 serial
350   converter uses Product ID 0x230 and Vendor ID 0x711 and works with this
351   driver. Also, D-Link's DU-H3SP USB BAY also works with this driver.
353   For any questions or problems with this driver, please contact Wolfgang
354   Grandegger at wolfgang@ces.ch
357 Inside Out Networks Edgeport Driver
359   This driver supports all devices made by Inside Out Networks, specifically
360   the following models:
361        Edgeport/4
362        Rapidport/4
363        Edgeport/4t
364        Edgeport/2
365        Edgeport/4i
366        Edgeport/2i
367        Edgeport/421
368        Edgeport/21
369        Edgeport/8
370        Edgeport/8 Dual
371        Edgeport/2D8
372        Edgeport/4D8
373        Edgeport/8i
374        Edgeport/2 DIN
375        Edgeport/4 DIN
376        Edgeport/16 Dual
378   For any questions or problems with this driver, please contact Greg
379   Kroah-Hartman at greg@kroah.com
382 REINER SCT cyberJack pinpad/e-com USB chipcard reader
383    
384   Interface to ISO 7816 compatible contactbased chipcards, e.g. GSM SIMs.
385   
386   Current status:
387     This is the kernel part of the driver for this USB card reader.
388     There is also a user part for a CT-API driver available. A site
389     for downloading is TBA. For now, you can request it from the
390     maintainer (linux-usb@sii.li).
392   For any questions or problems with this driver, please contact
393   linux-usb@sii.li
396 Prolific PL2303 Driver
398   This driver supports any device that has the PL2303 chip from Prolific
399   in it.  This includes a number of single port USB to serial converters,
400   more than 70% of USB GPS devices (in 2010), and some USB UPSes. Devices
401   from Aten (the UC-232) and IO-Data work with this driver, as does
402   the DCU-11 mobile-phone cable.
404   For any questions or problems with this driver, please contact Greg
405   Kroah-Hartman at greg@kroah.com
406   
408 KL5KUSB105 chipset / PalmConnect USB single-port adapter
409   
410 Current status:
411   The driver was put together by looking at the usb bus transactions
412   done by Palm's driver under Windows, so a lot of functionality is
413   still missing.  Notably, serial ioctls are sometimes faked or not yet
414   implemented.  Support for finding out about DSR and CTS line status is
415   however implemented (though not nicely), so your favorite autopilot(1)
416   and pilot-manager -daemon calls will work.  Baud rates up to 115200
417   are supported, but handshaking (software or hardware) is not, which is
418   why it is wise to cut down on the rate used is wise for large
419   transfers until this is settled.
420   
421 Options supported:
422   If this driver is compiled as a module you can pass the following
423   options to it:
424   debug                 - extra verbose debugging info
425                           (default: 0; nonzero enables)
426   use_lowlatency        - use low_latency flag to speed up tty layer
427                           when reading from the device.
428                           (default: 0; nonzero enables)
430   See http://www.uuhaus.de/linux/palmconnect.html for up-to-date
431   information on this driver.
433 Winchiphead CH341 Driver
435   This driver is for the Winchiphead CH341 USB-RS232 Converter. This chip
436   also implements an IEEE 1284 parallel port, I2C and SPI, but that is not
437   supported by the driver. The protocol was analyzed from the behaviour
438   of the Windows driver, no datasheet is available at present.
439   The manufacturer's website: http://www.winchiphead.com/.
440   For any questions or problems with this driver, please contact
441   frank@kingswood-consulting.co.uk.
443 Moschip MCS7720, MCS7715 driver
445   These chips are present in devices sold by various manufacturers, such as Syba
446   and Cables Unlimited.  There may be others.  The 7720 provides two serial
447   ports, and the 7715 provides one serial and one standard PC parallel port.
448   Support for the 7715's parallel port is enabled by a separate option, which
449   will not appear unless parallel port support is first enabled at the top-level
450   of the Device Drivers config menu.  Currently only compatibility mode is
451   supported on the parallel port (no ECP/EPP).
453   TODO:
454     - Implement ECP/EPP modes for the parallel port.
455     - Baud rates higher than 115200 are currently broken.
456     - Devices with a single serial port based on the Moschip MCS7703 may work
457       with this driver with a simple addition to the usb_device_id table.  I
458       don't have one of these devices, so I can't say for sure.
460 Generic Serial driver
462   If your device is not one of the above listed devices, compatible with
463   the above models, you can try out the "generic" interface. This
464   interface does not provide any type of control messages sent to the
465   device, and does not support any kind of device flow control. All that
466   is required of your device is that it has at least one bulk in endpoint,
467   or one bulk out endpoint. 
468   
469   To enable the generic driver to recognize your device, build the driver
470   as a module and load it by the following invocation:
471         insmod usbserial vendor=0x#### product=0x####
472   where the #### is replaced with the hex representation of your device's
473   vendor id and product id.
475   This driver has been successfully used to connect to the NetChip USB
476   development board, providing a way to develop USB firmware without
477   having to write a custom driver.
479   For any questions or problems with this driver, please contact Greg
480   Kroah-Hartman at greg@kroah.com
483 CONTACT:
485   If anyone has any problems using these drivers, with any of the above
486   specified products, please contact the specific driver's author listed
487   above, or join the Linux-USB mailing list (information on joining the
488   mailing list, as well as a link to its searchable archive is at
489   http://www.linux-usb.org/ )
492 Greg Kroah-Hartman
493 greg@kroah.com