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. If you are not using devfs: 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 If you are using devfs: The devices supported by this driver will show up as /dev/usb/tts/{0,1,...} 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. This driver will end up being fully supported. Current status: The device's firmware is downloaded on connection, the new firmware runs properly and all four ports are successfully recognized and connected. Data can be sent and received through the device on all ports. Hardware flow control needs to be implemented. HandSpring Visor USB docking station Current status: Only when the Visor tries to connect to the host, does the docking station show up 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 Visor. NOTE: This means that in order to talk to the Visor, the sync button must be pressed BEFORE trying to get any program to communicate to the Visor. 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 Visor. 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. There is a webpage and mailing lists for this portion of the driver at: http://usbvisor.sourceforge.net/ 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. 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() Keyspan USA-series Serial Adapters Single and Dual port adapters - driver uses Keyspan supplied firmware and is being developed with their support. Driver isn't as far advanced as Keyspan PDA driver mentioned above. Current status: Things that work: Firmware upload for USA-18X, USA-28, USA-28X, USA-19 and USA-19W Simple character I/O fixed at 9600 baud on USA-19 only Things that don't: Everything else. (for now...) Big Things on the todo list: Driver is in infancy, much functionality remains to be added FTDI Single Port Serial Driver This is a single port DB-25 serial adapter. More information about this device and the Linux driver can be found at: http://reality.sgi.com/bryder_wellington/ftdi_sio/ ZyXEL omni.net lcd plus ISDN TA This is an ISDN TA. Please report both successes and troubles to the author at omninet@kroah.com 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 paralled 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. 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)* Break Set and clear Line contrl Input/Output query and control ** * 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. ** 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 contol 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 :) Empeg empeg-car Mark I/II Driver (empeg.c) This is an experimental driver to provide connectivity support for the client synchronization tools for an Empeg empeg-car mp3 player. The driver is still pretty new, so some testing 'in the wild' would be helpful. :) 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, build the driver as a module and load it by the following invocation: insmod usb-serial vendor=0x#### product=0x#### where the #### is replaced with the hex representation of your device's vendor id and product id. 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. CONTACT: If anyone has any problems using this driver, with any of the above specified products, please contact me, 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