[patch] puc(4) add Winchiphead CH382 support

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[patch] puc(4) add Winchiphead CH382 support

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 <[hidden email]>

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

Reply | Threaded
Open this post in threaded view
|

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

Mark Kettenis
> Date: Tue, 23 Sep 2014 05:44:04 +0900
> From: SASANO Takayoshi <[hidden email]>
>
> 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 <[hidden email]>
>
> 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 },
>
>