• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/drivers/usb/serial/
1/*
2 * IO Edgeport Driver tables
3 *
4 *	Copyright (C) 2001
5 *	    Greg Kroah-Hartman (greg@kroah.com)
6 *
7 *	This program is free software; you can redistribute it and/or modify
8 *	it under the terms of the GNU General Public License as published by
9 *	the Free Software Foundation; either version 2 of the License, or
10 *	(at your option) any later version.
11 *
12 */
13
14#ifndef IO_TABLES_H
15#define IO_TABLES_H
16
17static const struct usb_device_id edgeport_2port_id_table[] = {
18	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_2) },
19	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_2I) },
20	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_421) },
21	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_21) },
22	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_2_DIN) },
23	{ }
24};
25
26static const struct usb_device_id edgeport_4port_id_table[] = {
27	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4) },
28	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_RAPIDPORT_4) },
29	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4T) },
30	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_MT4X56USB) },
31	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4I) },
32	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8_DUAL_CPU) },
33	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4_DIN) },
34	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_22I) },
35	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_412_4) },
36	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_COMPATIBLE) },
37	{ }
38};
39
40static const struct usb_device_id edgeport_8port_id_table[] = {
41	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8) },
42	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_16_DUAL_CPU) },
43	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8I) },
44	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8R) },
45	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8RR) },
46	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_412_8) },
47	{ }
48};
49
50static const struct usb_device_id Epic_port_id_table[] = {
51	{ USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0202) },
52	{ USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0203) },
53	{ USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0310) },
54	{ USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0311) },
55	{ USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0312) },
56	{ USB_DEVICE(USB_VENDOR_ID_AXIOHM, AXIOHM_DEVICE_ID_EPIC_A758) },
57	{ USB_DEVICE(USB_VENDOR_ID_AXIOHM, AXIOHM_DEVICE_ID_EPIC_A794) },
58	{ USB_DEVICE(USB_VENDOR_ID_AXIOHM, AXIOHM_DEVICE_ID_EPIC_A225) },
59	{ }
60};
61
62/* Devices that this driver supports */
63static const struct usb_device_id id_table_combined[] = {
64	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_4) },
65	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_RAPIDPORT_4) },
66	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_4T) },
67	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_MT4X56USB) },
68	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_2) },
69	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_4I) },
70	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_2I) },
71	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_421) },
72	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_21) },
73	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_8_DUAL_CPU) },
74	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_8) },
75	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_2_DIN) },
76	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_4_DIN) },
77	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_16_DUAL_CPU) },
78	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_22I) },
79	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_412_4) },
80	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_COMPATIBLE) },
81	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_8I) },
82	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8R) },
83	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8RR) },
84	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_412_8) },
85	{ USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0202) },
86	{ USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0203) },
87	{ USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0310) },
88	{ USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0311) },
89	{ USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0312) },
90	{ USB_DEVICE(USB_VENDOR_ID_AXIOHM, AXIOHM_DEVICE_ID_EPIC_A758) },
91	{ USB_DEVICE(USB_VENDOR_ID_AXIOHM, AXIOHM_DEVICE_ID_EPIC_A794) },
92	{ USB_DEVICE(USB_VENDOR_ID_AXIOHM, AXIOHM_DEVICE_ID_EPIC_A225) },
93	{ } /* Terminating entry */
94};
95
96MODULE_DEVICE_TABLE(usb, id_table_combined);
97
98static struct usb_driver io_driver = {
99	.name =		"io_edgeport",
100	.probe =	usb_serial_probe,
101	.disconnect =	usb_serial_disconnect,
102	.id_table =	id_table_combined,
103	.no_dynamic_id = 	1,
104};
105
106static struct usb_serial_driver edgeport_2port_device = {
107	.driver = {
108		.owner		= THIS_MODULE,
109		.name		= "edgeport_2",
110	},
111	.description		= "Edgeport 2 port adapter",
112	.usb_driver		= &io_driver,
113	.id_table		= edgeport_2port_id_table,
114	.num_ports		= 2,
115	.open			= edge_open,
116	.close			= edge_close,
117	.throttle		= edge_throttle,
118	.unthrottle		= edge_unthrottle,
119	.attach			= edge_startup,
120	.disconnect		= edge_disconnect,
121	.release		= edge_release,
122	.ioctl			= edge_ioctl,
123	.set_termios		= edge_set_termios,
124	.tiocmget		= edge_tiocmget,
125	.tiocmset		= edge_tiocmset,
126	.write			= edge_write,
127	.write_room		= edge_write_room,
128	.chars_in_buffer	= edge_chars_in_buffer,
129	.break_ctl		= edge_break,
130	.read_int_callback	= edge_interrupt_callback,
131	.read_bulk_callback	= edge_bulk_in_callback,
132	.write_bulk_callback	= edge_bulk_out_data_callback,
133};
134
135static struct usb_serial_driver edgeport_4port_device = {
136	.driver = {
137		.owner		= THIS_MODULE,
138		.name		= "edgeport_4",
139	},
140	.description		= "Edgeport 4 port adapter",
141	.usb_driver		= &io_driver,
142	.id_table		= edgeport_4port_id_table,
143	.num_ports		= 4,
144	.open			= edge_open,
145	.close			= edge_close,
146	.throttle		= edge_throttle,
147	.unthrottle		= edge_unthrottle,
148	.attach			= edge_startup,
149	.disconnect		= edge_disconnect,
150	.release		= edge_release,
151	.ioctl			= edge_ioctl,
152	.set_termios		= edge_set_termios,
153	.tiocmget		= edge_tiocmget,
154	.tiocmset		= edge_tiocmset,
155	.write			= edge_write,
156	.write_room		= edge_write_room,
157	.chars_in_buffer	= edge_chars_in_buffer,
158	.break_ctl		= edge_break,
159	.read_int_callback	= edge_interrupt_callback,
160	.read_bulk_callback	= edge_bulk_in_callback,
161	.write_bulk_callback	= edge_bulk_out_data_callback,
162};
163
164static struct usb_serial_driver edgeport_8port_device = {
165	.driver = {
166		.owner		= THIS_MODULE,
167		.name		= "edgeport_8",
168	},
169	.description		= "Edgeport 8 port adapter",
170	.usb_driver		= &io_driver,
171	.id_table		= edgeport_8port_id_table,
172	.num_ports		= 8,
173	.open			= edge_open,
174	.close			= edge_close,
175	.throttle		= edge_throttle,
176	.unthrottle		= edge_unthrottle,
177	.attach			= edge_startup,
178	.disconnect		= edge_disconnect,
179	.release		= edge_release,
180	.ioctl			= edge_ioctl,
181	.set_termios		= edge_set_termios,
182	.tiocmget		= edge_tiocmget,
183	.tiocmset		= edge_tiocmset,
184	.write			= edge_write,
185	.write_room		= edge_write_room,
186	.chars_in_buffer	= edge_chars_in_buffer,
187	.break_ctl		= edge_break,
188	.read_int_callback	= edge_interrupt_callback,
189	.read_bulk_callback	= edge_bulk_in_callback,
190	.write_bulk_callback	= edge_bulk_out_data_callback,
191};
192
193static struct usb_serial_driver epic_device = {
194	.driver = {
195		.owner		= THIS_MODULE,
196		.name		= "epic",
197	},
198	.description		= "EPiC device",
199	.usb_driver		= &io_driver,
200	.id_table		= Epic_port_id_table,
201	.num_ports		= 1,
202	.open			= edge_open,
203	.close			= edge_close,
204	.throttle		= edge_throttle,
205	.unthrottle		= edge_unthrottle,
206	.attach			= edge_startup,
207	.disconnect		= edge_disconnect,
208	.release		= edge_release,
209	.ioctl			= edge_ioctl,
210	.set_termios		= edge_set_termios,
211	.tiocmget		= edge_tiocmget,
212	.tiocmset		= edge_tiocmset,
213	.write			= edge_write,
214	.write_room		= edge_write_room,
215	.chars_in_buffer	= edge_chars_in_buffer,
216	.break_ctl		= edge_break,
217	.read_int_callback	= edge_interrupt_callback,
218	.read_bulk_callback	= edge_bulk_in_callback,
219	.write_bulk_callback	= edge_bulk_out_data_callback,
220};
221
222#endif
223