aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/mxser_new.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char/mxser_new.c')
-rw-r--r--drivers/char/mxser_new.c120
1 files changed, 59 insertions, 61 deletions
diff --git a/drivers/char/mxser_new.c b/drivers/char/mxser_new.c
index 6a563932ba1..854dbf59eb6 100644
--- a/drivers/char/mxser_new.c
+++ b/drivers/char/mxser_new.c
@@ -2,7 +2,7 @@
2 * mxser.c -- MOXA Smartio/Industio family multiport serial driver. 2 * mxser.c -- MOXA Smartio/Industio family multiport serial driver.
3 * 3 *
4 * Copyright (C) 1999-2006 Moxa Technologies (support@moxa.com.tw). 4 * Copyright (C) 1999-2006 Moxa Technologies (support@moxa.com.tw).
5 * Copyright (C) 2006 Jiri Slaby <jirislaby@gmail.com> 5 * Copyright (C) 2006-2007 Jiri Slaby <jirislaby@gmail.com>
6 * 6 *
7 * This code is loosely based on the 1.8 moxa driver which is based on 7 * This code is loosely based on the 1.8 moxa driver which is based on
8 * Linux serial driver, written by Linus Torvalds, Theodore T'so and 8 * Linux serial driver, written by Linus Torvalds, Theodore T'so and
@@ -48,7 +48,7 @@
48 48
49#include "mxser_new.h" 49#include "mxser_new.h"
50 50
51#define MXSER_VERSION "2.0.1" /* 1.9.15 */ 51#define MXSER_VERSION "2.0.2" /* 1.10 */
52#define MXSERMAJOR 174 52#define MXSERMAJOR 174
53#define MXSERCUMAJOR 175 53#define MXSERCUMAJOR 175
54 54
@@ -72,6 +72,12 @@
72#define UART_MCR_AFE 0x20 72#define UART_MCR_AFE 0x20
73#define UART_LSR_SPECIAL 0x1E 73#define UART_LSR_SPECIAL 0x1E
74 74
75#define PCI_DEVICE_ID_CB108 0x1080
76#define PCI_DEVICE_ID_CB114 0x1142
77#define PCI_DEVICE_ID_CB134I 0x1341
78#define PCI_DEVICE_ID_CP138U 0x1380
79#define PCI_DEVICE_ID_POS104UL 0x1044
80
75 81
76#define C168_ASIC_ID 1 82#define C168_ASIC_ID 1
77#define C104_ASIC_ID 2 83#define C104_ASIC_ID 2
@@ -107,71 +113,63 @@ struct mxser_cardinfo {
107}; 113};
108 114
109static const struct mxser_cardinfo mxser_cards[] = { 115static const struct mxser_cardinfo mxser_cards[] = {
110 { 8, "C168 series", }, /* C168-ISA */ 116/* 0*/ { 8, "C168 series", },
111 { 4, "C104 series", }, /* C104-ISA */ 117 { 4, "C104 series", },
112 { 4, "CI-104J series", }, /* CI104J */ 118 { 4, "CI-104J series", },
113 { 8, "C168H/PCI series", }, /* C168-PCI */ 119 { 8, "C168H/PCI series", },
114 { 4, "C104H/PCI series", }, /* C104-PCI */ 120 { 4, "C104H/PCI series", },
115 { 4, "C102 series", MXSER_HAS2 }, /* C102-ISA */ 121/* 5*/ { 4, "C102 series", MXSER_HAS2 }, /* C102-ISA */
116 { 4, "CI-132 series", MXSER_HAS2 }, /* CI132 */ 122 { 4, "CI-132 series", MXSER_HAS2 },
117 { 4, "CI-134 series", }, /* CI134 */ 123 { 4, "CI-134 series", },
118 { 2, "CP-132 series", }, /* CP132 */ 124 { 2, "CP-132 series", },
119 { 4, "CP-114 series", }, /* CP114 */ 125 { 4, "CP-114 series", },
120 { 4, "CT-114 series", }, /* CT114 */ 126/*10*/ { 4, "CT-114 series", },
121 { 2, "CP-102 series", MXSER_HIGHBAUD }, /* CP102 */ 127 { 2, "CP-102 series", MXSER_HIGHBAUD },
122 { 4, "CP-104U series", }, /* CP104U */ 128 { 4, "CP-104U series", },
123 { 8, "CP-168U series", }, /* CP168U */ 129 { 8, "CP-168U series", },
124 { 2, "CP-132U series", }, /* CP132U */ 130 { 2, "CP-132U series", },
125 { 4, "CP-134U series", }, /* CP134U */ 131/*15*/ { 4, "CP-134U series", },
126 { 4, "CP-104JU series", }, /* CP104JU */ 132 { 4, "CP-104JU series", },
127 { 8, "Moxa UC7000 Serial", }, /* RC7000 */ 133 { 8, "Moxa UC7000 Serial", }, /* RC7000 */
128 { 8, "CP-118U series", }, /* CP118U */ 134 { 8, "CP-118U series", },
129 { 2, "CP-102UL series", }, /* CP102UL */ 135 { 2, "CP-102UL series", },
130 { 2, "CP-102U series", }, /* CP102U */ 136/*20*/ { 2, "CP-102U series", },
131 { 8, "CP-118EL series", }, /* CP118EL */ 137 { 8, "CP-118EL series", },
132 { 8, "CP-168EL series", }, /* CP168EL */ 138 { 8, "CP-168EL series", },
133 { 4, "CP-104EL series", } /* CP104EL */ 139 { 4, "CP-104EL series", },
140 { 8, "CB-108 series", },
141/*25*/ { 4, "CB-114 series", },
142 { 4, "CB-134I series", },
143 { 8, "CP-138U series", },
144 { 4, "POS-104UL series", }
134}; 145};
135 146
136/* driver_data correspond to the lines in the structure above 147/* driver_data correspond to the lines in the structure above
137 see also ISA probe function before you change something */ 148 see also ISA probe function before you change something */
138static struct pci_device_id mxser_pcibrds[] = { 149static struct pci_device_id mxser_pcibrds[] = {
139 { PCI_DEVICE(PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_MOXA_C168), 150 { PCI_VDEVICE(MOXA, PCI_DEVICE_ID_MOXA_C168), .driver_data = 3 },
140 .driver_data = 3 }, 151 { PCI_VDEVICE(MOXA, PCI_DEVICE_ID_MOXA_C104), .driver_data = 4 },
141 { PCI_DEVICE(PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_MOXA_C104), 152 { PCI_VDEVICE(MOXA, PCI_DEVICE_ID_MOXA_CP132), .driver_data = 8 },
142 .driver_data = 4 }, 153 { PCI_VDEVICE(MOXA, PCI_DEVICE_ID_MOXA_CP114), .driver_data = 9 },
143 { PCI_DEVICE(PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_MOXA_CP132), 154 { PCI_VDEVICE(MOXA, PCI_DEVICE_ID_MOXA_CT114), .driver_data = 10 },
144 .driver_data = 8 }, 155 { PCI_VDEVICE(MOXA, PCI_DEVICE_ID_MOXA_CP102), .driver_data = 11 },
145 { PCI_DEVICE(PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_MOXA_CP114), 156 { PCI_VDEVICE(MOXA, PCI_DEVICE_ID_MOXA_CP104U), .driver_data = 12 },
146 .driver_data = 9 }, 157 { PCI_VDEVICE(MOXA, PCI_DEVICE_ID_MOXA_CP168U), .driver_data = 13 },
147 { PCI_DEVICE(PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_MOXA_CT114), 158 { PCI_VDEVICE(MOXA, PCI_DEVICE_ID_MOXA_CP132U), .driver_data = 14 },
148 .driver_data = 10 }, 159 { PCI_VDEVICE(MOXA, PCI_DEVICE_ID_MOXA_CP134U), .driver_data = 15 },
149 { PCI_DEVICE(PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_MOXA_CP102), 160 { PCI_VDEVICE(MOXA, PCI_DEVICE_ID_MOXA_CP104JU),.driver_data = 16 },
150 .driver_data = 11 }, 161 { PCI_VDEVICE(MOXA, PCI_DEVICE_ID_MOXA_RC7000), .driver_data = 17 },
151 { PCI_DEVICE(PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_MOXA_CP104U), 162 { PCI_VDEVICE(MOXA, PCI_DEVICE_ID_MOXA_CP118U), .driver_data = 18 },
152 .driver_data = 12 }, 163 { PCI_VDEVICE(MOXA, PCI_DEVICE_ID_MOXA_CP102UL),.driver_data = 19 },
153 { PCI_DEVICE(PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_MOXA_CP168U), 164 { PCI_VDEVICE(MOXA, PCI_DEVICE_ID_MOXA_CP102U), .driver_data = 20 },
154 .driver_data = 13 }, 165 { PCI_VDEVICE(MOXA, PCI_DEVICE_ID_MOXA_CP118EL),.driver_data = 21 },
155 { PCI_DEVICE(PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_MOXA_CP132U), 166 { PCI_VDEVICE(MOXA, PCI_DEVICE_ID_MOXA_CP168EL),.driver_data = 22 },
156 .driver_data = 14 }, 167 { PCI_VDEVICE(MOXA, PCI_DEVICE_ID_MOXA_CP104EL),.driver_data = 23 },
157 { PCI_DEVICE(PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_MOXA_CP134U), 168 { PCI_VDEVICE(MOXA, PCI_DEVICE_ID_CB108), .driver_data = 24 },
158 .driver_data = 15 }, 169 { PCI_VDEVICE(MOXA, PCI_DEVICE_ID_CB114), .driver_data = 25 },
159 { PCI_DEVICE(PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_MOXA_CP104JU), 170 { PCI_VDEVICE(MOXA, PCI_DEVICE_ID_CB134I), .driver_data = 26 },
160 .driver_data = 16 }, 171 { PCI_VDEVICE(MOXA, PCI_DEVICE_ID_CP138U), .driver_data = 27 },
161 { PCI_DEVICE(PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_MOXA_RC7000), 172 { PCI_VDEVICE(MOXA, PCI_DEVICE_ID_POS104UL), .driver_data = 28 },
162 .driver_data = 17 },
163 { PCI_DEVICE(PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_MOXA_CP118U),
164 .driver_data = 18 },
165 { PCI_DEVICE(PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_MOXA_CP102UL),
166 .driver_data = 19 },
167 { PCI_DEVICE(PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_MOXA_CP102U),
168 .driver_data = 20 },
169 { PCI_DEVICE(PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_MOXA_CP118EL),
170 .driver_data = 21 },
171 { PCI_DEVICE(PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_MOXA_CP168EL),
172 .driver_data = 22 },
173 { PCI_DEVICE(PCI_VENDOR_ID_MOXA, PCI_DEVICE_ID_MOXA_CP104EL),
174 .driver_data = 23 },
175 { } 173 { }
176}; 174};
177MODULE_DEVICE_TABLE(pci, mxser_pcibrds); 175MODULE_DEVICE_TABLE(pci, mxser_pcibrds);