title: CP210X
linktitle: cp210x
parent: Home
ctime: 2009-12-10

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.

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
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.

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 has had some 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 other mechanisms.  We hope to 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 APT
repository has been tested on Ubuntu 8.04 LTS (Hardy Heron), 9.10 (Karmic
Koala), 10.04 LTS (Lucid Lynx) and 10.10 (Maverick Meerkat) systems, having both
32 and 64 bit x86 (Intel/AMD) processors.

Note: Silicon Labs has introduced new USB/Serial chips, like the cp2104.  This
driver is not compatible with the new parts.
