Re: [patch] puc(4) add Winchiphead CH382 support

2014-09-22 Thread Mark Kettenis
> Date: Tue, 23 Sep 2014 05:44:04 +0900
> From: SASANO Takayoshi 
> 
> 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?

ok kettenis@

> Regards,
> -- 
> SASANO Takayoshi 
> 
> 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 -  1.93
> +++ pucdata.c 21 Sep 2014 12:28:26 -
> @@ -2080,6 +2080,22 @@ const struct puc_device_description puc_
>   { PUC_COM_POW2(0), 0x14, 0x },
>   },
>   },
> + {   /* "WinChipHead CH382 (2S)", */
> + {   PCI_VENDOR_WCH2, PCI_PRODUCT_WCH2_CH382_1,  0, 0},
> + {   0x, 0x, 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},
> + {   0x, 0x, 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},
>   {   0x, 0x, 0, 0},
> 
> 



[patch] puc(4) add Winchiphead CH382 support

2014-09-22 Thread SASANO Takayoshi
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 

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 -  1.93
+++ pucdata.c   21 Sep 2014 12:28:26 -
@@ -2080,6 +2080,22 @@ const struct puc_device_description puc_
{ PUC_COM_POW2(0), 0x14, 0x },
},
},
+   {   /* "WinChipHead CH382 (2S)", */
+   {   PCI_VENDOR_WCH2, PCI_PRODUCT_WCH2_CH382_1,  0, 0},
+   {   0x, 0x, 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},
+   {   0x, 0x, 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},
{   0x, 0x, 0, 0},