Dear SL gurus. I'm trying to answer a few CP2105 USB Serial Bridge driver questions and seems can find the answer anywhere through the website and just generally googling around:
1. Does the cp210x driver in the current Linux kernel support CP2105 dual channel bridge? Just looking at the VID/PID list at the top of /kernel/drivers/usb/serial/cp210x.c I would say that it doesn't because 2105 VID=10C4/PID=EA70 is not on the list. Is there an updated driver available that supports 2105?
2. My understanding is that no QNX drivers available for SL USB serial bridge devices (which is shame). However I saw some posts on QNX developer forums people successfully using cp2102 with standard QNX devc-usb driver. I tried that with the cp2105 and got nowhere really. I believe the dual-channel nature is confusing devc-usb driver. So my question is does anyone have any experience with cp2105 under QNX?
Thanks for any pointers.
Discussion Forums
Interface
Answered
Answered
What kernel version are you using that needs CP2105 support?
The only difference between a CP2102 and CP2105 for standard COM port use is the address used for the bulk in/out endpoints and each control request used for the CP2105 should have a 0 or 1 as the index value to associate the proper interface (where the CP2102 uses 0 all the time since it only has a single interface).
0
Thanks Preston!
Yes, we are on 3.x. Ubuntu 12.04 LTS ARM-v7 build which is 3.1.10 to be precise. So I guess we can't rely on the precompiled binaries you are pointing to.
0
The links I provided above have the driver source in them. It is maintained less frequently than the driver in the kernel source, but if you want to pull it down and compile and load it then it should work for you.
I believe that 3.1.10 should have a driver that works for CP2105. If you do a mkconfig on your kernel you can add in the usbserial and cp210x components. Or if you can obtain the kernel source you should have something similar to the one we provide on our website.
Correct Answer
0
Oh I see. Thanks Preston.
cp210x driver in 3.1.10 doesn't support generic cp2105, at least I can't see PID=EA70 to be on the list. Perhaps one of those OEM dongles below is the same thing but I can't tell which one exactly.
I'm not sure why it is missing, it should be there. If you add those IDs into the source then try to build and load it will it work for you? It should - what you'll want to look for within the code is the index value for the control requests to be variable based on the interface. Feel free to post the entire driver source, or at least the control request functions and I can confirm this.
0
Hi All,
I am new to this community, and currently i am developing the cp2105 device driver in qnx, and i have red few post, & some people are saying they sucessfully port cp2102 , so can any one tell me where i can find the cp2102 source code?because this will help me to understand well.
0
Dear All,
When I use the cp210x driver by default. I can not find two ports. I can only find ttyUSB0, My kernel is 3.3.0. what can I do for that? I need two serial ports with cp2105 chipsets. Thanks a lot.
CP2105 driver questions
Dear SL gurus. I'm trying to answer a few CP2105 USB Serial Bridge driver questions and seems can find the answer anywhere through the website and just generally googling around:
1. Does the cp210x driver in the current Linux kernel support CP2105 dual channel bridge? Just looking at the VID/PID list at the top of /kernel/drivers/usb/serial/cp210x.c I would say that it doesn't because 2105 VID=10C4/PID=EA70 is not on the list. Is there an updated driver available that supports 2105?
2. My understanding is that no QNX drivers available for SL USB serial bridge devices (which is shame). However I saw some posts on QNX developer forums people successfully using cp2102 with standard QNX devc-usb driver. I tried that with the cp2105 and got nowhere really. I believe the dual-channel nature is confusing devc-usb driver. So my question is does anyone have any experience with cp2105 under QNX?
Thanks for any pointers.
The latest Linux drivers are located here: http://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx
Also, most of the 3.x.x versions of the kernel should support CP2105 as well, the latest kernel source is at kernel.org.
The best way to interface with a device on another OS (in your case QNX) is to use the OS's native USB stack to perform the control requests defined in the AN571 document:
http://www.silabs.com/Support%20Documents/TechnicalDocs/AN571.pdf
The only difference between a CP2102 and CP2105 for standard COM port use is the address used for the bulk in/out endpoints and each control request used for the CP2105 should have a 0 or 1 as the index value to associate the proper interface (where the CP2102 uses 0 all the time since it only has a single interface).
Yes, we are on 3.x. Ubuntu 12.04 LTS ARM-v7 build which is 3.1.10 to be precise. So I guess we can't rely on the precompiled binaries you are pointing to.
I believe that 3.1.10 should have a driver that works for CP2105. If you do a mkconfig on your kernel you can add in the usbserial and cp210x components. Or if you can obtain the kernel source you should have something similar to the one we provide on our website.
cp210x driver in 3.1.10 doesn't support generic cp2105, at least I can't see PID=EA70 to be on the list. Perhaps one of those OEM dongles below is the same thing but I can't tell which one exactly.
static const struct usb_device_id id_table[] = {
{ USB_DEVICE(0x045B, 0x0053) }, /* Renesas RX610 RX-Stick */
{ USB_DEVICE(0x0471, 0x066A) }, /* AKTAKOM ACE-1001 cable */
{ USB_DEVICE(0x0489, 0xE000) }, /* Pirelli Broadband S.p.A, DP-L10 SIP/GSM Mobile */
{ USB_DEVICE(0x0489, 0xE003) }, /* Pirelli Broadband S.p.A, DP-L10 SIP/GSM Mobile */
{ USB_DEVICE(0x0745, 0x1000) }, /* CipherLab USB CCD Barcode Scanner 1000 */
{ USB_DEVICE(0x08e6, 0x5501) }, /* Gemalto Prox-PU/CU contactless smartcard reader */
{ USB_DEVICE(0x08FD, 0x000A) }, /* Digianswer A/S , ZigBee/802.15.4 MAC Device */
{ USB_DEVICE(0x0BED, 0x1100) }, /* MEI (TM) Cashflow-SC Bill/Voucher Acceptor */
{ USB_DEVICE(0x0BED, 0x1101) }, /* MEI series 2000 Combo Acceptor */
{ USB_DEVICE(0x0FCF, 0x1003) }, /* Dynastream ANT development board */
{ USB_DEVICE(0x0FCF, 0x1004) }, /* Dynastream ANT2USB */
{ USB_DEVICE(0x0FCF, 0x1006) }, /* Dynastream ANT development board */
{ USB_DEVICE(0x10A6, 0xAA26) }, /* Knock-off DCU-11 cable */
{ USB_DEVICE(0x10AB, 0x10C5) }, /* Siemens MC60 Cable */
{ USB_DEVICE(0x10B5, 0xAC70) }, /* Nokia CA-42 USB */
{ USB_DEVICE(0x10C4, 0x0F91) }, /* Vstabi */
{ USB_DEVICE(0x10C4, 0x1101) }, /* Arkham Technology DS101 Bus Monitor */
{ USB_DEVICE(0x10C4, 0x1601) }, /* Arkham Technology DS101 Adapter */
{ USB_DEVICE(0x10C4, 0x800A) }, /* SPORTident BSM7-D-USB main station */
{ USB_DEVICE(0x10C4, 0x803B) }, /* Pololu USB-serial converter */
{ USB_DEVICE(0x10C4, 0x8044) }, /* Cygnal Debug Adapter */
{ USB_DEVICE(0x10C4, 0x804E) }, /* Software Bisque Paramount ME build-in converter */
{ USB_DEVICE(0x10C4, 0x8053) }, /* Enfora EDG1228 */
{ USB_DEVICE(0x10C4, 0x8054) }, /* Enfora GSM2228 */
{ USB_DEVICE(0x10C4, 0x8066) }, /* Argussoft In-System Programmer */
{ USB_DEVICE(0x10C4, 0x806F) }, /* IMS USB to RS422 Converter Cable */
{ USB_DEVICE(0x10C4, 0x807A) }, /* Crumb128 board */
{ USB_DEVICE(0x10C4, 0x80CA) }, /* Degree Controls Inc */
{ USB_DEVICE(0x10C4, 0x80DD) }, /* Tracient RFID */
{ USB_DEVICE(0x10C4, 0x80F6) }, /* Suunto sports instrument */
{ USB_DEVICE(0x10C4, 0x8115) }, /* Arygon NFC/Mifare Reader */
{ USB_DEVICE(0x10C4, 0x813D) }, /* Burnside Telecom Deskmobile */
{ USB_DEVICE(0x10C4, 0x813F) }, /* Tams Master Easy Control */
{ USB_DEVICE(0x10C4, 0x814A) }, /* West Mountain Radio RIGblaster P&P */
{ USB_DEVICE(0x10C4, 0x814B) }, /* West Mountain Radio RIGtalk */
{ USB_DEVICE(0x10C4, 0x8156) }, /* B&G H3000 link cable */
{ USB_DEVICE(0x10C4, 0x815E) }, /* Helicomm IP-Link 1220-DVM */
{ USB_DEVICE(0x10C4, 0x818B) }, /* AVIT Research USB to TTL */
{ USB_DEVICE(0x10C4, 0x819F) }, /* MJS USB Toslink Switcher */
{ USB_DEVICE(0x10C4, 0x81A6) }, /* ThinkOptics WavIt */
{ USB_DEVICE(0x10C4, 0x81A9) }, /* Multiplex RC Interface */
{ USB_DEVICE(0x10C4, 0x81AC) }, /* MSD Dash Hawk */
{ USB_DEVICE(0x10C4, 0x81AD) }, /* INSYS USB Modem */
{ USB_DEVICE(0x10C4, 0x81C8) }, /* Lipowsky Industrie Elektronik GmbH, Baby-JTAG */
{ USB_DEVICE(0x10C4, 0x81E2) }, /* Lipowsky Industrie Elektronik GmbH, Baby-LIN */
{ USB_DEVICE(0x10C4, 0x81E7) }, /* Aerocomm Radio */
{ USB_DEVICE(0x10C4, 0x81E8) }, /* Zephyr Bioharness */
{ USB_DEVICE(0x10C4, 0x81F2) }, /* C1007 HF band RFID controller */
{ USB_DEVICE(0x10C4, 0x8218) }, /* Lipowsky Industrie Elektronik GmbH, HARP-1 */
{ USB_DEVICE(0x10C4, 0x822B) }, /* Modem EDGE(GSM) Comander 2 */
{ USB_DEVICE(0x10C4, 0x826B) }, /* Cygnal Integrated Products, Inc., Fasttrax GPS demonstration module */
{ USB_DEVICE(0x10C4, 0x8293) }, /* Telegesis ETRX2USB */
{ USB_DEVICE(0x10C4, 0x82F9) }, /* Procyon AVS */
{ USB_DEVICE(0x10C4, 0x8341) }, /* Siemens MC35PU GPRS Modem */
{ USB_DEVICE(0x10C4, 0x8382) }, /* Cygnal Integrated Products, Inc. */
{ USB_DEVICE(0x10C4, 0x83A8) }, /* Amber Wireless AMB2560 */
{ USB_DEVICE(0x10C4, 0x83D8) }, /* DekTec DTA Plus VHF/UHF Booster/Attenuator */
{ USB_DEVICE(0x10C4, 0x8411) }, /* Kyocera GPS Module */
{ USB_DEVICE(0x10C4, 0x8418) }, /* IRZ Automation Teleport SG-10 GSM/GPRS Modem */
{ USB_DEVICE(0x10C4, 0x846E) }, /* BEI USB Sensor Interface (VCP) */
{ USB_DEVICE(0x10C4, 0x8477) }, /* Balluff RFID */
{ USB_DEVICE(0x10C4, 0x85EA) }, /* AC-Services IBUS-IF */
{ USB_DEVICE(0x10C4, 0x85EB) }, /* AC-Services CIS-IBUS */
{ USB_DEVICE(0x10C4, 0x8664) }, /* AC-Services CAN-IF */
{ USB_DEVICE(0x10C4, 0x8665) }, /* AC-Services OBD-IF */
{ USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */
{ USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */
{ USB_DEVICE(0x10C4, 0xEA71) }, /* Infinity GPS-MIC-1 Radio Monophone */
{ USB_DEVICE(0x10C4, 0xF001) }, /* Elan Digital Systems USBscope50 */
{ USB_DEVICE(0x10C4, 0xF002) }, /* Elan Digital Systems USBwave12 */
{ USB_DEVICE(0x10C4, 0xF003) }, /* Elan Digital Systems USBpulse100 */
{ USB_DEVICE(0x10C4, 0xF004) }, /* Elan Digital Systems USBcount50 */
{ USB_DEVICE(0x10C5, 0xEA61) }, /* Silicon Labs MobiData GPRS USB Modem */
{ USB_DEVICE(0x10CE, 0xEA6A) }, /* Silicon Labs MobiData GPRS USB Modem 100EU */
{ USB_DEVICE(0x13AD, 0x9999) }, /* Baltech card reader */
{ USB_DEVICE(0x1555, 0x0004) }, /* Owen AC4 USB-RS485 Converter */
{ USB_DEVICE(0x166A, 0x0303) }, /* Clipsal 5500PCU C-Bus USB interface */
{ USB_DEVICE(0x16D6, 0x0001) }, /* Jablotron serial interface */
{ USB_DEVICE(0x16DC, 0x0010) }, /* W-IE-NE-R Plein & Baus GmbH PL512 Power Supply */
{ USB_DEVICE(0x16DC, 0x0011) }, /* W-IE-NE-R Plein & Baus GmbH RCM Remote Control for MARATON Power Supply */
{ USB_DEVICE(0x16DC, 0x0012) }, /* W-IE-NE-R Plein & Baus GmbH MPOD Multi Channel Power Supply */
{ USB_DEVICE(0x16DC, 0x0015) }, /* W-IE-NE-R Plein & Baus GmbH CML Control, Monitoring and Data Logger */
{ USB_DEVICE(0x17F4, 0xAAAA) }, /* Wavesense Jazz blood glucose meter */
{ USB_DEVICE(0x1843, 0x0200) }, /* Vaisala USB Instrument Cable */
{ USB_DEVICE(0x18EF, 0xE00F) }, /* ELV USB-I2C-Interface */
{ USB_DEVICE(0x1BE3, 0x07A6) }, /* WAGO 750-923 USB Service Cable */
{ USB_DEVICE(0x3195, 0xF190) }, /* Link Instruments MSO-19 */
{ USB_DEVICE(0x413C, 0x9500) }, /* DW700 GPS USB interface */
{ } /* Terminating Entry */
};
Hi All,
I am new to this community, and currently i am developing the cp2105 device driver in qnx, and i have red few post, & some people are saying they sucessfully port cp2102 , so can any one tell me where i can find the cp2102 source code?because this will help me to understand well.
Dear All,
When I use the cp210x driver by default. I can not find two ports. I can only find ttyUSB0, My kernel is 3.3.0. what can I do for that? I need two serial ports with cp2105 chipsets. Thanks a lot.