summaryrefslogtreecommitdiff
path: root/sys/dev/pci
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2006-12-28 20:52:37 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2006-12-28 20:52:37 +0000
commit0b01b38b841191cb2c45c1ac48294a8ecba73490 (patch)
treeb571ab45711288b7d6add03ac44fce4017e6e5c4 /sys/dev/pci
parent7df7a9c02c60213ba2c07ae53c1852476ae8877d (diff)
Add support for the Cronyx Omega serial ports card; this particular card
forces the com(4) uart type to ST16C654 since that's what's on it; from Alexei G. Malinin (alexei.malinin@inetcomm.ru)
Diffstat (limited to 'sys/dev/pci')
-rw-r--r--sys/dev/pci/puc.c13
-rw-r--r--sys/dev/pci/pucdata.c18
2 files changed, 29 insertions, 2 deletions
diff --git a/sys/dev/pci/puc.c b/sys/dev/pci/puc.c
index 7bc2d954ae4..5f96ea35c71 100644
--- a/sys/dev/pci/puc.c
+++ b/sys/dev/pci/puc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: puc.c,v 1.10 2006/08/01 20:10:29 jolan Exp $ */
+/* $OpenBSD: puc.c,v 1.11 2006/12/28 20:52:36 miod Exp $ */
/* $NetBSD: puc.c,v 1.3 1999/02/06 06:29:54 cgd Exp $ */
/*
@@ -61,6 +61,8 @@
#include <dev/pci/pcivar.h>
#include <dev/pci/pucvar.h>
+#include <dev/pci/pcidevs.h>
+
struct puc_pci_softc {
struct puc_softc sc_psc;
@@ -214,6 +216,15 @@ puc_pci_attach(parent, self, aux)
paa.hwtype = 0; /* autodetect */
paa.intr_string = &puc_pci_intr_string;
paa.intr_establish = &puc_pci_intr_establish;
+
+ /*
+ * If this is a serial card with a known specific chip, provide
+ * the UART type.
+ */
+ if (PCI_VENDOR(pa->pa_id) == PCI_VENDOR_PLX &&
+ PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_PLX_CRONYX_OMEGA)
+ paa.hwtype = 0x08; /* XXX COM_UART_ST16C654 */
+
puc_common_attach(sc, &paa);
}
diff --git a/sys/dev/pci/pucdata.c b/sys/dev/pci/pucdata.c
index 7509fbd40ef..f9982d689e1 100644
--- a/sys/dev/pci/pucdata.c
+++ b/sys/dev/pci/pucdata.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pucdata.c,v 1.45 2006/12/21 18:53:26 deraadt Exp $ */
+/* $OpenBSD: pucdata.c,v 1.46 2006/12/28 20:52:36 miod Exp $ */
/* $NetBSD: pucdata.c,v 1.6 1999/07/03 05:55:23 cgd Exp $ */
/*
@@ -1263,6 +1263,22 @@ const struct puc_device_description puc_devices[] = {
},
},
+ /* Cronyx Engineering Ltd. Omega-PCI (8 serial port) card. */
+ { /* "Cronyx Omega-PCI" */
+ { PCI_VENDOR_PLX, PCI_PRODUCT_PLX_CRONYX_OMEGA, 0, 0 },
+ { 0xffff, 0xffff, 0, 0 },
+ {
+ { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
+ { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ },
+ { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ },
+ { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ },
+ { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ },
+ { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ },
+ { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ },
+ { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ },
+ },
+ },
+
/* Avlab Technology, Inc. Low Profile PCI 4 Serial: 4S */
{ /* "Avlab Low Profile PCI 4 Serial" */
{ PCI_VENDOR_AVLAB, PCI_PRODUCT_AVLAB_LPPCI4S, 0, 0 },