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