Commit 296d3c78 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] Support NetMOS based PCI cards providing serial and parallel ports

From: Christoph Lameter <christoph@graphe.net>

Attached a patch to support a variety of PCI based serial and parallel port
I/O ports (typically labeled 222N-2 or 9835).

I think this should go into 2.6.0 since it has been out there for a long
time and is just some additional driver support that somehow fell through
the cracks in 2.4.X. Tim Waugh submitted it in the 2.4.X series.

See also http://winterwolf.co.uk/pciioSigned-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 8dac3248
2001-10-11 Tim Waugh <twaugh@redhat.com>
* parport_pc.c, parport_serial.c: Support for NetMos cards.
+ Patch originally from Michael Reinelt <reinelt@eunet.at>.
2002-04-25 Tim Waugh <twaugh@redhat.com> 2002-04-25 Tim Waugh <twaugh@redhat.com>
* parport_serial.c, parport_pc.c: Move some SIIG cards around. * parport_serial.c, parport_pc.c: Move some SIIG cards around.
......
...@@ -2632,6 +2632,10 @@ enum parport_pc_pci_cards { ...@@ -2632,6 +2632,10 @@ enum parport_pc_pci_cards {
oxsemi_840, oxsemi_840,
aks_0100, aks_0100,
mobility_pp, mobility_pp,
netmos_9705,
netmos_9805,
netmos_9815,
netmos_9855,
}; };
...@@ -2701,6 +2705,10 @@ static struct parport_pc_pci { ...@@ -2701,6 +2705,10 @@ static struct parport_pc_pci {
/* oxsemi_840 */ { 1, { { 0, -1 }, } }, /* oxsemi_840 */ { 1, { { 0, -1 }, } },
/* aks_0100 */ { 1, { { 0, -1 }, } }, /* aks_0100 */ { 1, { { 0, -1 }, } },
/* mobility_pp */ { 1, { { 0, 1 }, } }, /* mobility_pp */ { 1, { { 0, 1 }, } },
/* netmos_9705 */ { 1, { { 0, -1 }, } }, /* untested */
/* netmos_9805 */ { 1, { { 0, -1 }, } }, /* untested */
/* netmos_9815 */ { 2, { { 0, -1 }, { 2, -1 }, } }, /* untested */
/* netmos_9855 */ { 2, { { 0, -1 }, { 2, -1 }, } }, /* untested */
}; };
static struct pci_device_id parport_pc_pci_tbl[] = { static struct pci_device_id parport_pc_pci_tbl[] = {
...@@ -2769,6 +2777,15 @@ static struct pci_device_id parport_pc_pci_tbl[] = { ...@@ -2769,6 +2777,15 @@ static struct pci_device_id parport_pc_pci_tbl[] = {
PCI_ANY_ID, PCI_ANY_ID, 0, 0, oxsemi_840 }, PCI_ANY_ID, PCI_ANY_ID, 0, 0, oxsemi_840 },
{ PCI_VENDOR_ID_AKS, PCI_DEVICE_ID_AKS_ALADDINCARD, { PCI_VENDOR_ID_AKS, PCI_DEVICE_ID_AKS_ALADDINCARD,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, aks_0100 }, PCI_ANY_ID, PCI_ANY_ID, 0, 0, aks_0100 },
/* NetMos communication controllers */
{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9705,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, netmos_9705 },
{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9805,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, netmos_9805 },
{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9815,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, netmos_9815 },
{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9855,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, netmos_9855 },
{ 0, } /* terminate list */ { 0, } /* terminate list */
}; };
MODULE_DEVICE_TABLE(pci,parport_pc_pci_tbl); MODULE_DEVICE_TABLE(pci,parport_pc_pci_tbl);
......
...@@ -33,6 +33,8 @@ ...@@ -33,6 +33,8 @@
enum parport_pc_pci_cards { enum parport_pc_pci_cards {
titan_110l = 0, titan_110l = 0,
titan_210l, titan_210l,
netmos_9735,
netmos_9835,
avlab_1s1p, avlab_1s1p,
avlab_1s1p_650, avlab_1s1p_650,
avlab_1s1p_850, avlab_1s1p_850,
...@@ -71,6 +73,8 @@ static struct parport_pc_pci { ...@@ -71,6 +73,8 @@ static struct parport_pc_pci {
} cards[] __devinitdata = { } cards[] __devinitdata = {
/* titan_110l */ { 1, { { 3, -1 }, } }, /* titan_110l */ { 1, { { 3, -1 }, } },
/* titan_210l */ { 1, { { 3, -1 }, } }, /* titan_210l */ { 1, { { 3, -1 }, } },
/* netmos_9735 (not tested) */ { 1, { { 2, -1 }, } },
/* netmos_9835 */ { 1, { { 2, -1 }, } },
/* avlab_1s1p */ { 1, { { 1, 2}, } }, /* avlab_1s1p */ { 1, { { 1, 2}, } },
/* avlab_1s1p_650 */ { 1, { { 1, 2}, } }, /* avlab_1s1p_650 */ { 1, { { 1, 2}, } },
/* avlab_1s1p_850 */ { 1, { { 1, 2}, } }, /* avlab_1s1p_850 */ { 1, { { 1, 2}, } },
...@@ -93,6 +97,10 @@ static struct pci_device_id parport_serial_pci_tbl[] = { ...@@ -93,6 +97,10 @@ static struct pci_device_id parport_serial_pci_tbl[] = {
PCI_ANY_ID, PCI_ANY_ID, 0, 0, titan_110l }, PCI_ANY_ID, PCI_ANY_ID, 0, 0, titan_110l },
{ PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_210L, { PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_210L,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, titan_210l }, PCI_ANY_ID, PCI_ANY_ID, 0, 0, titan_210l },
{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9735,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, netmos_9735 },
{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9835,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, netmos_9835 },
/* PCI_VENDOR_ID_AVLAB/Intek21 has another bunch of cards ...*/ /* PCI_VENDOR_ID_AVLAB/Intek21 has another bunch of cards ...*/
{ 0x14db, 0x2110, PCI_ANY_ID, PCI_ANY_ID, 0, 0, avlab_1s1p}, { 0x14db, 0x2110, PCI_ANY_ID, PCI_ANY_ID, 0, 0, avlab_1s1p},
{ 0x14db, 0x2111, PCI_ANY_ID, PCI_ANY_ID, 0, 0, avlab_1s1p_650}, { 0x14db, 0x2111, PCI_ANY_ID, PCI_ANY_ID, 0, 0, avlab_1s1p_650},
...@@ -172,6 +180,8 @@ static struct pci_board_no_ids pci_boards[] __devinitdata = { ...@@ -172,6 +180,8 @@ static struct pci_board_no_ids pci_boards[] __devinitdata = {
/* titan_110l */ { SPCI_FL_BASE1 | SPCI_FL_BASE_TABLE, 1, 921600 }, /* titan_110l */ { SPCI_FL_BASE1 | SPCI_FL_BASE_TABLE, 1, 921600 },
/* titan_210l */ { SPCI_FL_BASE1 | SPCI_FL_BASE_TABLE, 2, 921600 }, /* titan_210l */ { SPCI_FL_BASE1 | SPCI_FL_BASE_TABLE, 2, 921600 },
/* netmos_9735 (n/t)*/ { SPCI_FL_BASE0 | SPCI_FL_BASE_TABLE, 2, 115200 },
/* netmos_9835 */ { SPCI_FL_BASE0 | SPCI_FL_BASE_TABLE, 2, 115200 },
/* avlab_1s1p (n/t) */ { SPCI_FL_BASE0 | SPCI_FL_BASE_TABLE, 1, 115200 }, /* avlab_1s1p (n/t) */ { SPCI_FL_BASE0 | SPCI_FL_BASE_TABLE, 1, 115200 },
/* avlab_1s1p_650 (nt)*/{ SPCI_FL_BASE0 | SPCI_FL_BASE_TABLE, 1, 115200 }, /* avlab_1s1p_650 (nt)*/{ SPCI_FL_BASE0 | SPCI_FL_BASE_TABLE, 1, 115200 },
/* avlab_1s1p_850 (nt)*/{ SPCI_FL_BASE0 | SPCI_FL_BASE_TABLE, 1, 115200 }, /* avlab_1s1p_850 (nt)*/{ SPCI_FL_BASE0 | SPCI_FL_BASE_TABLE, 1, 115200 },
......
...@@ -2252,8 +2252,12 @@ ...@@ -2252,8 +2252,12 @@
#define PCI_DEVICE_ID_HOLTEK_6565 0x6565 #define PCI_DEVICE_ID_HOLTEK_6565 0x6565
#define PCI_VENDOR_ID_NETMOS 0x9710 #define PCI_VENDOR_ID_NETMOS 0x9710
#define PCI_DEVICE_ID_NETMOS_9705 0x9705
#define PCI_DEVICE_ID_NETMOS_9735 0x9735 #define PCI_DEVICE_ID_NETMOS_9735 0x9735
#define PCI_DEVICE_ID_NETMOS_9805 0x9805
#define PCI_DEVICE_ID_NETMOS_9815 0x9815
#define PCI_DEVICE_ID_NETMOS_9835 0x9835 #define PCI_DEVICE_ID_NETMOS_9835 0x9835
#define PCI_DEVICE_ID_NETMOS_9855 0x9855
#define PCI_SUBVENDOR_ID_EXSYS 0xd84d #define PCI_SUBVENDOR_ID_EXSYS 0xd84d
#define PCI_SUBDEVICE_ID_EXSYS_4014 0x4014 #define PCI_SUBDEVICE_ID_EXSYS_4014 0x4014
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment