title: CP210X
linktitle: cp210x
-parent: TOP
+parent: Home
ctime: 2009-12-10
-Repositories: [cp210x](http://repo/gitweb/?p=cp210x.git;a=summary), [[aptrepo]].
+Repositories: [cp210x](/gitweb/?p=cp210x.git;a=summary), [[aptrepo]].
# A USB to UART chip
[Silicon Labs](http://www.silabs.com) sells a single-chip USB to UART bridge,
-the [cp210x](http://www.silabs.com/products/interface/usbtouart/Pages/default.aspx).
-For windows platforms, Silicon Labs offers manufacturing support for setting
-the various USB descriptor fields, port configurations, etc. They also offer a
-DLL and example programs showing how to manipulate the GPIO pins available on
-the cp2103 part.
+the
+[cp210x](http://www.silabs.com/products/interface/usbtouart/Pages/default.aspx).
+For windows platforms, Silicon Labs offers manufacturing support for setting the
+various USB descriptor fields, port configurations, etc. They also offer a DLL
+and example programs showing how to manipulate the GPIO pins available on the
+cp2103 part.
With support from Silicon Labs, TMI has modified their GPLv2 licensed reference
Linux driver to support all of the features their Windows DLLs and utilities
-provide. This is accomplished via extended ioctl() calls from the kernel
+provide. This is accomplished via extended `ioctl()` calls from the kernel
cp210x driver, and various utilities and sample code. This code is invaluable
-for those working on hardware designs using the cp2103. The code is released
-under the GPLv2.
+for those working on hardware designs using the cp2103. For example, TMI
+enhancements to tos-bsl in [[tinyos]] allow programming of an MSP430 based
+target using a USB/serial connection, by leveraging two of the four additional
+GPIO pins present on the cp2103.
-TMI completed these driver changes of a year ago and has since been maintaining
-it. Silicon Labs was to push these changes through to the mainline kernel, but
-this clearly has not happened yet. TMI will be working directly with the kernel
-cp210x maintainer to investigate incorporating our changes. Meanwhile, TMI
-will continue to maintain its branch of the cp210x driver. The
-`cp210x-module-dkms` package in the APT repository has been tested on Ubuntu
-Hardy and Karmic systems with both 32 and 64 bit x86 (Intel/AMD) processors.
+TMI completed these driver changes were originally completed in late 2007, but
+have been periodically updated since then to track changes to the linux kernel
+source. Silicon Labs was to push these changes through to the mainline kernel,
+did not do so. In mid 2010, TMI had discussions with the
+linux-usb developers, and a decent number of changes need to be made before they
+will include our modifications upstream. Specifically, they want to see all
+ioctl calls replaced with another mechanism. Perhaps we can allocate some time to
+work on these issues in the future. Meanwhile, TMI will continue to maintain
+its branch of the cp210x driver.
+
+The `cp210x-module-dkms` package in the TMI APT
+repository has been tested on (X)Ubuntu 8.04 LTS (Hardy Heron), 9.10 (Karmic
+Koala), 10.04 LTS (Lucid Lynx), 10.10 (Maverick Meerkat), 11.04 (Natty Narwhal),
+and 12.04 (Precise Pangolin). Because the driver uses the dkms facility, the
+driver should build for both 32 and 64 bit systems. Some testing has happened
+using older versions of 64-bit (X)Ubuntu, but TMI developers predominantly use
+32-bit Xubuntu 12.04 at the moment (2012-07-09).
+
+Note: Silicon Labs has introduced new USB/Serial chips, like the cp2104. The
+latest merge of the mainline cp210x driver, as present when used on 12.04
+systems, may be compatible with these newer parts. TMI has not tested for this
+compatibility.