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