Subject: kern/37299: Contribution: Support for some missing VScom/Titan-Electronics cards in puc driver
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: None <frank@phoenix.owl.de>
List: netbsd-bugs
Date: 11/07/2007 19:30:00
>Number:         37299
>Category:       kern
>Synopsis:       Contribution: Support for some missing VScom/Titan-Electronics cards in puc driver
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Wed Nov 07 19:30:00 +0000 2007
>Originator:     Frank Wille
>Release:        4.99.35 (07-Nov-2007)
>Organization:
>Environment:
>Description:
The two patches under "Fix:" add support for all the missing VScom /
Titan-Electronics serial/parallel communication PCI cards (puc driver).
The uPCI-200L was already tested in a macppc system, and works fine now.

>How-To-Repeat:

>Fix:
--- pucdata.c.orig	2007-11-05 17:51:57.000000000 +0100
+++ pucdata.c	2007-11-07 19:26:12.000000000 +0100
@@ -739,22 +739,38 @@
 	    },
 	},
 
-	{   "Titan PCI-010HV2",
-	    {   0x14d2, 0xe001, 0,      0       },
-	    {   0xffff, 0xffff, 0,      0       },
-	    {
-		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
-	    },
-	},
-	{   "Titan PCI-200HV2",
-	    {   0x14d2, 0xe020, 0,      0       },
-	    {   0xffff, 0xffff, 0,      0       },
-	    {
-		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
-		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
-	    },
-	},
-
+        {   "Titan PCI-011H",
+            {   0x14d2, 0x8403, 0,      0       },
+            {   0xffff, 0xffff, 0,      0       },
+            {
+                { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
+            },
+        },
+        /*
+	 * VScom PCI-x10H is the LPT part of VScom 110H, 210H and 410H
+	 */
+        {   "Titan PCI-x10H",
+            {   0x14d2, 0xa000, 0,      0       },
+            {   0xffff, 0xffff, 0,      0       },
+            {
+                { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
+            },
+        },
+        {   "Titan PCI-100H",
+            {   0x14d2, 0xa001, 0,      0       },
+            {   0xffff, 0xffff, 0,      0       },
+            {
+                { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
+            },
+        },
+        {   "Titan PCI-200H",
+            {   0x14d2, 0xa005, 0,      0       },
+            {   0xffff, 0xffff, 0,      0       },
+            {
+                { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
+                { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
+            },
+        },
 	/*
 	 * VScom PCI-800H. Uses 8 16950 UART, behind a PCI chips that offers
 	 * 4 com port on PCI device 0 and 4 on PCI device 1. PCI device 0 has
@@ -780,12 +796,74 @@
 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
 	    },
 	},
-        {   "Titan PCI-200H",
-            {   0x14d2, 0xa005, 0,      0       },
+
+	{   "Titan PCI-010HV2",
+	    {   0x14d2, 0xe001, 0,      0       },
+	    {   0xffff, 0xffff, 0,      0       },
+	    {
+		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
+	    },
+	},
+	{   "Titan PCI-200HV2",
+	    {   0x14d2, 0xe020, 0,      0       },
+	    {   0xffff, 0xffff, 0,      0       },
+	    {
+		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
+		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
+	    },
+	},
+
+        {   "Titan PCI-010L",
+            {   0x14d2, 0x8001, 0,      0       },
             {   0xffff, 0xffff, 0,      0       },
             {
-                { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
-                { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
+                { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
+            },
+        },
+        {   "Titan PCI-100L",
+            {   0x14d2, 0x8010, 0,      0       },
+            {   0xffff, 0xffff, 0,      0       },
+            {
+                { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
+            },
+        },
+        {   "Titan PCI-110L",
+            {   0x14d2, 0x8011, 0,      0       },
+            {   0xffff, 0xffff, 0,      0       },
+            {
+                { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
+                { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
+            },
+        },
+        {   "Titan PCI-200L",
+            {   0x14d2, 0x8020, 0,      0       },
+            {   0xffff, 0xffff, 0,      0       },
+            {
+                { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
+                { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
+            },
+        },
+        {   "Titan PCI-210L",
+            {   0x14d2, 0x8021, 0,      0       },
+            {   0xffff, 0xffff, 0,      0       },
+            {
+                { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
+                { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
+                { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
+            },
+        },
+        /*
+         * PCI-400L: VendorID is reported to be 0x10d2 instead of 0x14d2,
+         * so we support both.
+         */
+        {   "Titan PCI-400L",
+            {   0x10d2, 0x8040, 0,      0       },
+            {   0xfbff, 0xffff, 0,      0       },
+            {
+                { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
+                { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
+                { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
+                { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
             },
         },
 	{   "Titan PCI-800L",
@@ -802,6 +880,7 @@
 		{ PUC_PORT_TYPE_COM, 0x20, 0x28, COM_FREQ * 8 },
 	    },
 	},
+
 	/* NEC PK-UG-X001 K56flex PCI Modem card.
 	   NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP using. */
 	{   "NEC PK-UG-X001 K56flex PCI Modem",


--- pcidevs.orig	2007-11-05 17:51:57.000000000 +0100
+++ pcidevs	2007-11-07 19:04:09.000000000 +0100
@@ -3615,9 +3615,20 @@
 product TI	PCI2040		0xac60	PCI2040 PCI-DSP Bridge
 
 /* Titan Electronics products */
+product TITAN PCI010L		0x8001	PCI-010L
+product TITAN PCI100L		0x8010	PCI-100L
+product TITAN PCI110L		0x8011	PCI-110L
+product TITAN PCI200L		0x8020	PCI-200L
+product TITAN PCI210L		0x8021	PCI-210L
+product TITAN PCI400L		0x8040	PCI-400L
+product MOLEX PCI400L		0x8040	PCI-400L
 product TITAN PCI800L		0x8080	PCI-800L
-product TITAN PCI800H		0xa003	PCI-800H
+product TITAN PCI011H		0x8403	PCI-011H
+product TITAN PCIx10H		0xa000	PCI-x10H
 product TITAN PCI100H		0xa001	PCI-100H
+product TITAN PCI800H_0		0xa003	PCI-400H/800H
+product TITAN PCI800H_1		0xa004	PCI-800H
+product TITAN PCI200H		0xa005	PCI-200H
 
 /* Toshiba America products */
 product TOSHIBA R4X00		0x0009	R4x00 Host-PCI Bridge