Index | Thread | Search

From:
"Sven M. Hallberg" <pesco@khjk.org>
Subject:
uchcom: attach to device id 0x7522 (CH340K)
To:
tech@openbsd.org
Date:
Mon, 11 Aug 2025 19:05:09 +0200

Download raw body.

Thread
I've got a device with a CH340K USB-to-serial chip from QinHeng
Electronics, alias WCH, that has the USB device ID 0x7522. It works
with the CH341 code path of uchcom.

addr 02: 1a86:7522 QinHeng Electronics, USB Serial
         full speed, power 98 mA, config 1, rev 2.64
         driver: uchcom0

Index: dev/usb/uchcom.c
===================================================================
RCS file: /cvs/src/sys/dev/usb/uchcom.c,v
retrieving revision 1.37
diff -u -p -r1.37 uchcom.c
--- dev/usb/uchcom.c	22 Oct 2024 21:50:02 -0000	1.37
+++ dev/usb/uchcom.c	11 Aug 2025 16:26:13 -0000
@@ -241,6 +241,7 @@ const struct ucom_methods uchcom_methods
 
 static const struct usb_devno uchcom_devs[] = {
 	{ USB_VENDOR_WCH, USB_PRODUCT_WCH_CH341 },
+	{ USB_VENDOR_WCH2, USB_PRODUCT_WCH2_CH340K },
 	{ USB_VENDOR_WCH2, USB_PRODUCT_WCH2_CH340 },
 	{ USB_VENDOR_WCH2, USB_PRODUCT_WCH2_CH341A },
 	{ USB_VENDOR_WCH2, USB_PRODUCT_WCH2_CH343 },
Index: dev/usb/usbdevs
===================================================================
RCS file: /cvs/src/sys/dev/usb/usbdevs,v
retrieving revision 1.780
diff -u -p -r1.780 usbdevs
--- dev/usb/usbdevs	14 Jul 2025 23:49:08 -0000	1.780
+++ dev/usb/usbdevs	11 Aug 2025 16:26:13 -0000
@@ -4710,6 +4710,7 @@ product WCH CH341		0x5523	CH341 serial/p
 product WCH2 CH341A		0x5523	CH341A serial/parallel
 product WCH2 CH343		0x55d3	CH343 serial/parallel
 product WCH2 CH9102		0x55d4	CH9102 serial/parallel
+product WCH2 CH340K		0x7522	CH340K serial/parallel
 product WCH2 CH340		0x7523	CH340 serial/parallel
 product	WCH2 TEMPER		0xe025	TEMPer sensor
 
Index: dev/usb/usbdevs.h
===================================================================
RCS file: /cvs/src/sys/dev/usb/usbdevs.h,v
retrieving revision 1.792
diff -u -p -r1.792 usbdevs.h
--- dev/usb/usbdevs.h	14 Jul 2025 23:49:48 -0000	1.792
+++ dev/usb/usbdevs.h	11 Aug 2025 16:26:13 -0000
@@ -4717,6 +4717,7 @@
 #define	USB_PRODUCT_WCH2_CH341A	0x5523		/* CH341A serial/parallel */
 #define	USB_PRODUCT_WCH2_CH343	0x55d3		/* CH343 serial/parallel */
 #define	USB_PRODUCT_WCH2_CH9102	0x55d4		/* CH9102 serial/parallel */
+#define	USB_PRODUCT_WCH2_CH340K	0x7522		/* CH340K serial/parallel */
 #define	USB_PRODUCT_WCH2_CH340	0x7523		/* CH340 serial/parallel */
 #define	USB_PRODUCT_WCH2_TEMPER	0xe025		/* TEMPer sensor */
 
Index: dev/usb/usbdevs_data.h
===================================================================
RCS file: /cvs/src/sys/dev/usb/usbdevs_data.h,v
retrieving revision 1.786
diff -u -p -r1.786 usbdevs_data.h
--- dev/usb/usbdevs_data.h	14 Jul 2025 23:49:48 -0000	1.786
+++ dev/usb/usbdevs_data.h	11 Aug 2025 16:26:13 -0000
@@ -12136,6 +12136,10 @@ const struct usb_known_product usb_known
 	{
 	    USB_VENDOR_WCH2, USB_PRODUCT_WCH2_CH9102,
 	    "CH9102 serial/parallel",
+	},
+	{
+	    USB_VENDOR_WCH2, USB_PRODUCT_WCH2_CH340K,
+	    "CH340K serial/parallel",
 	},
 	{
 	    USB_VENDOR_WCH2, USB_PRODUCT_WCH2_CH340,