Index | Thread | Search

From:
Jonathan Gray <jsg@jsg.id.au>
Subject:
Re: uchcom: attach to device id 0x7522 (CH340K)
To:
"Sven M. Hallberg" <pesco@khjk.org>
Cc:
tech@openbsd.org
Date:
Tue, 12 Aug 2025 13:48:38 +1000

Download raw body.

Thread
On Mon, Aug 11, 2025 at 07:05:09PM +0200, Sven M. Hallberg wrote:
> 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 },

Thanks for the patch.  Committed with the CH340K line moved
to under the CH340 one to keep it sorted.

>  	{ 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,
> 
>