Hello, Here is the patch to support Winchiphead CH382 PCIe-UART device. I found the board at eBay with cheap price tag.
CH382 has three configurations and different PCI device ID. - 2 serial (2S) - 2 serial and 1 parallel (2S1P) - 1 parallel (1P) I have 2S board the patch does not support parallel port, 2S1P board will work as 2S. After patching, CH382 is recognized as 16750 like this. puc0 at pci3 dev 0 function 0 "Nanjing QinHeng Electronics CH382" rev 0x10: port s: 2 com com4 at puc0 port 0 apic 5 int 17: ti16750, 64 byte fifo com5 at puc0 port 1 apic 5 int 17: ti16750, 64 byte fifo I referred the following pages: http://www.spinics.net/lists/linux-serial/msg11744.html http://kent-vandervelden.blogspot.jp/2014/08/linux-parallel-port-cards.html Can I commit? Regards, -- SASANO Takayoshi <u...@mx5.nisiq.net> Index: pucdata.c =================================================================== RCS file: /cvs/src/sys/dev/pci/pucdata.c,v retrieving revision 1.93 diff -u -p -r1.93 pucdata.c --- pucdata.c 13 Aug 2014 07:45:37 -0000 1.93 +++ pucdata.c 21 Sep 2014 12:28:26 -0000 @@ -2080,6 +2080,22 @@ const struct puc_device_description puc_ { PUC_COM_POW2(0), 0x14, 0x0000 }, }, }, + { /* "WinChipHead CH382 (2S)", */ + { PCI_VENDOR_WCH2, PCI_PRODUCT_WCH2_CH382_1, 0, 0 }, + { 0xffff, 0xffff, 0, 0 }, + { + { PUC_COM_POW2(0), 0x10, 0x00c0 }, + { PUC_COM_POW2(0), 0x10, 0x00c8 }, + }, + }, + { /* "WinChipHead CH382 (2S1P)", */ + { PCI_VENDOR_WCH2, PCI_PRODUCT_WCH2_CH382_2, 0, 0 }, + { 0xffff, 0xffff, 0, 0 }, + { + { PUC_COM_POW2(0), 0x10, 0x00c0 }, + { PUC_COM_POW2(0), 0x10, 0x00c8 }, + }, + }, { /* "NetMos NM9820 UART" */ { PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9820, 0, 0 }, { 0xffff, 0xffff, 0, 0 },