Index | Thread | Search

From:
Jonathan Gray <jsg@jsg.id.au>
Subject:
Re: uchcom(4): add missing usb device
To:
Benjamin Stürz <benni+openbsd-tech@stuerz.xyz>
Cc:
tech@openbsd.org
Date:
Tue, 12 Aug 2025 11:58:09 +1000

Download raw body.

Thread
Thanks for the patch.  I'll commit Sven's version that calls it CH340K.
That is what the WCH windows driver refers to 0x7522 as.

%CH340KSER.DeviceDesc% = CH341SER_Install, USB\VID_1A86&PID_7522

On Sun, Aug 10, 2025 at 03:00:12PM +0200, Benjamin Stürz wrote:
> Hi tech@,
> 
> I got a new WHY2025 badge [1] and it has a built-in CH340 chip,
> which uses the 7522 product ID, instead of the 7523 [2].
> 
> This patch adds the missing ID.
> Tested on amd64 and works with the badge.
> 
> [1]: https://wiki.why2025.org/Badge
> [2]: https://usb-ids.gowdy.us/read/UD/1a86/7522
> 
> diff /usr/src
> path + /usr/src
> commit - 3f426169bdac9dbe851ed420bdcbc18639cb08cb
> blob - 19b50b5ad29f446f56600ea9344669455c05d778
> file + sys/dev/usb/uchcom.c
> --- sys/dev/usb/uchcom.c
> +++ sys/dev/usb/uchcom.c
> @@ -241,7 +241,8 @@ 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_CH340 },
> +	{ USB_VENDOR_WCH2, USB_PRODUCT_WCH2_CH340_1 },
> +	{ USB_VENDOR_WCH2, USB_PRODUCT_WCH2_CH340_2 },
>  	{ USB_VENDOR_WCH2, USB_PRODUCT_WCH2_CH341A },
>  	{ USB_VENDOR_WCH2, USB_PRODUCT_WCH2_CH343 },
>  	{ USB_VENDOR_WCH2, USB_PRODUCT_WCH2_CH9102 }
> commit - 3f426169bdac9dbe851ed420bdcbc18639cb08cb
> blob - b52fa8ef37ab7c819afc97c9c4b938277f61ae1a
> file + sys/dev/usb/usbdevs
> --- sys/dev/usb/usbdevs
> +++ sys/dev/usb/usbdevs
> @@ -4710,7 +4710,8 @@ product WCH CH341		0x5523	CH341 serial/parallel
>  product WCH2 CH341A		0x5523	CH341A serial/parallel
>  product WCH2 CH343		0x55d3	CH343 serial/parallel
>  product WCH2 CH9102		0x55d4	CH9102 serial/parallel
> -product WCH2 CH340		0x7523	CH340 serial/parallel
> +product WCH2 CH340_1		0x7522	CH340 serial/parallel
> +product WCH2 CH340_2		0x7523	CH340 serial/parallel
>  product	WCH2 TEMPER		0xe025	TEMPer sensor
> 
>  /* WIENER Plein & Baus products */
> commit - 3f426169bdac9dbe851ed420bdcbc18639cb08cb
> blob - acb22cfa23aaed5441b05f974669c9c240ffeb95
> file + sys/dev/usb/usbdevs.h
> --- sys/dev/usb/usbdevs.h
> +++ sys/dev/usb/usbdevs.h
> @@ -1,4 +1,4 @@
> -/*	$OpenBSD: usbdevs.h,v 1.792 2025/07/14 23:49:48 jsg Exp $	*/
> +/*	$OpenBSD$	*/
> 
>  /*
>   * THIS FILE IS AUTOMATICALLY GENERATED.  DO NOT EDIT.
> @@ -4717,7 +4717,8 @@
>  #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_CH340	0x7523		/* CH340 serial/parallel */
> +#define	USB_PRODUCT_WCH2_CH340_1	0x7522		/* CH340 serial/parallel */
> +#define	USB_PRODUCT_WCH2_CH340_2	0x7523		/* CH340 serial/parallel */
>  #define	USB_PRODUCT_WCH2_TEMPER	0xe025		/* TEMPer sensor */
> 
>  /* WIENER Plein & Baus products */
> commit - 3f426169bdac9dbe851ed420bdcbc18639cb08cb
> blob - 38d4fcf788e29d5d399149a80f3ee4833cf309d3
> file + sys/dev/usb/usbdevs_data.h
> --- sys/dev/usb/usbdevs_data.h
> +++ sys/dev/usb/usbdevs_data.h
> @@ -1,4 +1,4 @@
> -/*	$OpenBSD: usbdevs_data.h,v 1.786 2025/07/14 23:49:48 jsg Exp $	*/
> +/*	$OpenBSD$	*/
> 
>  /*
>   * THIS FILE IS AUTOMATICALLY GENERATED.  DO NOT EDIT.
> @@ -12138,10 +12138,14 @@ const struct usb_known_product
> usb_known_products[] =
>  	    "CH9102 serial/parallel",
>  	},
>  	{
> -	    USB_VENDOR_WCH2, USB_PRODUCT_WCH2_CH340,
> +	    USB_VENDOR_WCH2, USB_PRODUCT_WCH2_CH340_1,
>  	    "CH340 serial/parallel",
>  	},
>  	{
> +	    USB_VENDOR_WCH2, USB_PRODUCT_WCH2_CH340_2,
> +	    "CH340 serial/parallel",
> +	},
> +	{
>  	    USB_VENDOR_WCH2, USB_PRODUCT_WCH2_TEMPER,
>  	    "TEMPer sensor",
>  	},
> 
>