Message ID | 20220207000822.697343-1-dimich.dmb@gmail.com |
---|---|
State | New |
Headers | show |
Series | Revert "USB: serial: ch341: add new Product ID for CH341A" | expand |
On 08.02.22 12:34, Greg KH wrote: > On Mon, Feb 07, 2022 at 02:08:23AM +0200, Dmytro Bagrii wrote: >> This reverts commit 46ee4abb10a07bd8f8ce910ee6b4ae6a947d7f63. > > You forgot to cc: the author of that commit, why? > > Also forgot to cc: the maintainer of the driver/subsytem? Sorry, forgot to add them. Also adding Johan Hovold, Frank A Kingswood and Frank Zago in the loop. >> CH341A has three different modes of operation selectable either by >> hardware pin connections or by external EEPROM configuration. Each >> mode is represented by corresponding product ID: >> >> 0x5523: Asyncronous Serial Interface >> 0x5584: Parallel Printer Interface >> 0x5512: EPP/MEM Interface > > That does not corrispond with what Jan-Niklas said in the original > commit. The page mentioned in the original commit is unavailable for me for some reason. I refer to the chip manufacturer documentation from here: http://wch-ic.com/downloads/CH341DS1_PDF.html. I have this kind of CH341A programmer: http://www.chinalctech.com/cpzx/Programmer/Serial_Module/266.html When mode selection jumper is set to UART: [52206.834474] usb 1-4.1: new full-speed USB device number 10 using xhci_hcd [52206.925482] usb 1-4.1: New USB device found, idVendor=1a86, idProduct=5523, bcdDevice= 3.04 [52206.925494] usb 1-4.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [52206.973701] usbcore: registered new interface driver ch341 [52206.973710] usbserial: USB Serial support registered for ch341-uart [52206.973720] ch341 1-4.1:1.0: ch341-uart converter detected [52206.974424] usb 1-4.1: ch341-uart converter now attached to ttyUSB0 ch341 creates /dev/ttyUSB0 and it works as a serial port, as expected. When mode selection jumper is set to I2C/SPI (it uses EPP/MEM Interface): [52413.942116] usb 1-4.1: new full-speed USB device number 11 using xhci_hcd [52414.033085] usb 1-4.1: New USB device found, idVendor=1a86, idProduct=5512, bcdDevice= 3.04 [52414.033097] usb 1-4.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [52414.040928] ch341 1-4.1:1.0: ch341-uart converter detected [52414.041930] usb 1-4.1: ch341-uart converter now attached to ttyUSB0 ch341 creates /dev/ttyUSB0 but it doesn't work. To use CH341A programmer as I2C/SPI converter either external module is required or userspace tools must be used. But they don't work until ch341 handles 1a86:5512. If unbind device from ch341 module: # echo 1-4.1:1.0 > /sys/bus/usb/drivers/ch341/unbind I2C/SPI tools start to work correctly. >> (See "5.3.Function configuration" in datasheet at wch-ic.com/downloads/CH341DS1_PDF.html) >> >> When CH341A is configured as EPP/MEM Interface it appears as 1a86:5512 and being mistakenly >> handled by ch341 USB serial driver. >> >> It is possible to use CH341A in EPP/MEM mode only if ch341 module is blacklisted, but it must be >> unblacklisted every time to use CH341A as a serial converter. Also obviously it is impossible >> to use two CH341A boards in different modes simoultaneously. > > Please wrap your lines at 72 columns. Sure. Should i submit new patch verŅon then? > thanks, > > greg k-h -dmytro
On Thu, Feb 10, 2022 at 07:41:22AM +0200, Dmytro Bagrii wrote: > On 09.02.22 16:18, Johan Hovold wrote: > > I don't remember all the details, but judging from a quick look it seems > > we're just waiting for someone to resend the revert with a proper > > explanation. > > > > It would be good if Jan-Niklas could chime in too and confirm if he's > > able to use the device in UART mode instead. > > I'd like to take a look at that keeyees device from original commit > message to see if it has EEPROM chip. I can hypothesize that some > manufacturer of a CH341-based programmer could use external configuration > EEPROM and mixed-up PID value. I haven't experiment with configuring > CH341A with EEPROM but suppose it's possible to burn any custom VID:PID > there. I don't think ch341 driver has to handle any of such custom > VID/PID, especially if it conflicts with an original VID/PID assigned by > chip manufacturer. In case of some peculiar devices it's possible to bind > custom VID:PID to the driver via sysfs. > > But it's just my hypothetical assumption how ch341-based device with PID > 5512 could work as UART in that case. > > I just checked if CH341 that i have can work as UART when configured as > I2C/SPI (PID 5512). I doesn't work: no output signal on TX pin, no > loopback echo when RX connected to self TX. Thanks for confirming. Johan
On Thu, Feb 10, 2022 at 11:18:22AM +0100, Jan-Niklas Burfeind wrote: > Hello everyone. > > For now I can identify two different USB-IDs depending on the Jumper > position on the board: > > 1-2 connected: idVendor=1a86, idProduct=5512 > 2-3 or none : idVendor=1a86, idProduct=5523 > > I'm not sure how I'd plug it to reach the Parallel Printer Interface > mentioned before. > > The advertised position of this Jumper is 1-2. > Both positions are labeled with two different chinese symbols, "2-3" is > labeled with TTL as well. > > Looking at the devices schematics I think its safe to revert my original > commit and I'm sorry to have caused you all this trouble. > > At the time I added the device I missidentified the Jumper as voltage > level selector. > > I had seen others using the board on youtube, with Jumper position 1-2; > and did not understand, why my system would not recognize it at all. > > > Sorry again and thanks for the effort No problem. Thanks for helping us clear this up. Johan
diff --git a/drivers/usb/serial/ch341.c b/drivers/usb/serial/ch341.c index 29f4b87a9e74..65f1286f7905 100644 --- a/drivers/usb/serial/ch341.c +++ b/drivers/usb/serial/ch341.c @@ -81,7 +81,6 @@ #define CH341_QUIRK_SIMULATE_BREAK BIT(1) static const struct usb_device_id id_table[] = { - { USB_DEVICE(0x1a86, 0x5512) }, { USB_DEVICE(0x1a86, 0x5523) }, { USB_DEVICE(0x1a86, 0x7522) }, { USB_DEVICE(0x1a86, 0x7523) },
This reverts commit 46ee4abb10a07bd8f8ce910ee6b4ae6a947d7f63. CH341A has three different modes of operation selectable either by hardware pin connections or by external EEPROM configuration. Each mode is represented by corresponding product ID: 0x5523: Asyncronous Serial Interface 0x5584: Parallel Printer Interface 0x5512: EPP/MEM Interface (See "5.3.Function configuration" in datasheet at wch-ic.com/downloads/CH341DS1_PDF.html) When CH341A is configured as EPP/MEM Interface it appears as 1a86:5512 and being mistakenly handled by ch341 USB serial driver. It is possible to use CH341A in EPP/MEM mode only if ch341 module is blacklisted, but it must be unblacklisted every time to use CH341A as a serial converter. Also obviously it is impossible to use two CH341A boards in different modes simoultaneously. Signed-off-by: Dmytro Bagrii <dimich.dmb@gmail.com> --- drivers/usb/serial/ch341.c | 1 - 1 file changed, 1 deletion(-)