Linux support for SiLabs CP2102 devices

From: Greg KH
Date: Thu Nov 18 2004 - 14:46:43 EST


(resent without tarball to let lkml filters accept it.)

Hi all,

I've been getting a lot of requests lately to see if Linux supports the
USB to serial device from Silicon Laboratories called the CP2102 chip.
It turns out that the company is claiming Linux support, yet they are
only shipping a binary driver for Red Hat Linux 9.0.

In talking with the company, they insist that they will not release the
source code to this module, and they claim that they are not infringing
on any rights by not doing so. I claim that this is not true, as to
write a usb to serial driver for Linux you have to use the
drivers/usb/serial/usb-serial.h header file which is specifically
licensed under the GPL v2. This file contains inline functions and
structures that all usb-serial drivers need to use in order to work
properly.

In short, there's no way you can write a Linux usb-serial driver, that
uses the usbserial interface, without it being a derived work of other,
GPL only code.

So, they are in violation, so what. Well, I can't do much about this
(due to my employer's rules about suing companies). But I can do my
best to spread the word that the CP2102 device is not supported on
Linux, and should be avoided at all costs by anyone considering such a
device in a future design. I encourage everyone else to help spread
this information too.

If people are looking for a good usb to serial chip that is supported on
Linux, Windows, and OS-X, there's the PL2303 device from Prolific, and
the FTDI-SIO chip, and the MCT-U232 chip. All of these work very well
on Linux, and are fully supported by all distros. I think they even
might be cheaper than the CP2102 device too :)

Oh, and just for fun, the Linux driver that SiLabs is distributing is
availble:
http://marc.theaimsgroup.com/?l=linux-usb-devel&m=110079963113076&q=p3
if anyone wants to poke around in it. The tarball contains 2 binary
drivers, one of them a version of the usbserial.c file (which plainly is
licensed under the GPL) and a mcci_usb.o binary driver. Have fun with
it, but don't blame me for any badness that might happen to your box for
running it, no one has any way of knowing exactly what this driver is
doing.

So, in conclusion, please stay away from Silicon Laboratories devices,
if you want to run Linux, as they are obviously not supporting Linux in
any way.

thanks,

greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/