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 
17 static struct usb_device_id edgeport_1port_id_table [] = {
18 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_PARALLEL_PORT) },
19 	{ }
20 };
21 
22 static struct usb_device_id edgeport_2port_id_table [] = {
23 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_2) },
24 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_2I) },
25 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_421) },
26 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_21) },
27 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_2_DIN) },
28 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_2) },
29 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_2I) },
30 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_421) },
31 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_21) },
32 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_2_DIN) },
33 	{ }
34 };
35 
36 static struct usb_device_id edgeport_4port_id_table [] = {
37 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4) },
38 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_RAPIDPORT_4) },
39 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4T) },
40 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_MT4X56USB) },
41 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4I) },
42 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8_DUAL_CPU) },
43 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4_DIN) },
44 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_COMPATIBLE) },
45 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_4) },
46 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_4T) },
47 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_4I) },
48 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_8_DUAL_CPU) },
49 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_4_DIN) },
50 	{ }
51 };
52 
53 static struct usb_device_id edgeport_8port_id_table [] = {
54 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8) },
55 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_16_DUAL_CPU) },
56 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8I) },
57 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_8) },
58 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_16_DUAL_CPU) },
59 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_8I) },
60 	{ }
61 };
62 
63 /* Devices that this driver supports */
64 static __devinitdata struct usb_device_id id_table_combined [] = {
65 	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_4) },
66 	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_RAPIDPORT_4) },
67 	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_4T) },
68 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_MT4X56USB) },
69 	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_2) },
70 	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_4I) },
71 	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_2I) },
72 	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_PARALLEL_PORT) },
73 	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_421) },
74 	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_21) },
75 	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_8_DUAL_CPU) },
76 	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_8) },
77 	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_2_DIN) },
78 	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_4_DIN) },
79 	{ USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_16_DUAL_CPU) },
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_BB_EDGEPORT_2) },
83 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_2I) },
84 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_421) },
85 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_21) },
86 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_2_DIN) },
87 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_4) },
88 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_4T) },
89 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_4I) },
90 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_8_DUAL_CPU) },
91 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_4_DIN) },
92 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_8) },
93 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_16_DUAL_CPU) },
94 	{ USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_BB_EDGEPORT_8I) },
95 	{ }							/* Terminating entry */
96 };
97 
98 MODULE_DEVICE_TABLE (usb, id_table_combined);
99 
100 static struct usb_serial_device_type edgeport_1port_device = {
101 	owner:			THIS_MODULE,
102 	name:			"Edgeport 1 port adapter",
103 	id_table:		edgeport_1port_id_table,
104 	num_interrupt_in:	1,
105 	num_bulk_in:		1,
106 	num_bulk_out:		1,
107 	num_ports:		1,
108 	open:			edge_open,
109 	close:			edge_close,
110 	throttle:		edge_throttle,
111 	unthrottle:		edge_unthrottle,
112 	startup:		edge_startup,
113 	shutdown:		edge_shutdown,
114 	ioctl:			edge_ioctl,
115 	set_termios:		edge_set_termios,
116 	write:			edge_write,
117 	write_room:		edge_write_room,
118 	chars_in_buffer:	edge_chars_in_buffer,
119 	break_ctl:		edge_break,
120 };
121 
122 static struct usb_serial_device_type edgeport_2port_device = {
123 	owner:			THIS_MODULE,
124 	name:			"Edgeport 2 port adapter",
125 	id_table:		edgeport_2port_id_table,
126 	num_interrupt_in:	1,
127 	num_bulk_in:		1,
128 	num_bulk_out:		1,
129 	num_ports:		2,
130 	open:			edge_open,
131 	close:			edge_close,
132 	throttle:		edge_throttle,
133 	unthrottle:		edge_unthrottle,
134 	startup:		edge_startup,
135 	shutdown:		edge_shutdown,
136 	ioctl:			edge_ioctl,
137 	set_termios:		edge_set_termios,
138 	write:			edge_write,
139 	write_room:		edge_write_room,
140 	chars_in_buffer:	edge_chars_in_buffer,
141 	break_ctl:		edge_break,
142 };
143 
144 static struct usb_serial_device_type edgeport_4port_device = {
145 	owner:			THIS_MODULE,
146 	name:			"Edgeport 4 port adapter",
147 	id_table:		edgeport_4port_id_table,
148 	num_interrupt_in:	1,
149 	num_bulk_in:		1,
150 	num_bulk_out:		1,
151 	num_ports:		4,
152 	open:			edge_open,
153 	close:			edge_close,
154 	throttle:		edge_throttle,
155 	unthrottle:		edge_unthrottle,
156 	startup:		edge_startup,
157 	shutdown:		edge_shutdown,
158 	ioctl:			edge_ioctl,
159 	set_termios:		edge_set_termios,
160 	write:			edge_write,
161 	write_room:		edge_write_room,
162 	chars_in_buffer:	edge_chars_in_buffer,
163 	break_ctl:		edge_break,
164 };
165 
166 static struct usb_serial_device_type edgeport_8port_device = {
167 	owner:			THIS_MODULE,
168 	name:			"Edgeport 8 port adapter",
169 	id_table:		edgeport_8port_id_table,
170 	num_interrupt_in:	1,
171 	num_bulk_in:		1,
172 	num_bulk_out:		1,
173 	num_ports:		8,
174 	open:			edge_open,
175 	close:			edge_close,
176 	throttle:		edge_throttle,
177 	unthrottle:		edge_unthrottle,
178 	startup:		edge_startup,
179 	shutdown:		edge_shutdown,
180 	ioctl:			edge_ioctl,
181 	set_termios:		edge_set_termios,
182 	write:			edge_write,
183 	write_room:		edge_write_room,
184 	chars_in_buffer:	edge_chars_in_buffer,
185 	break_ctl:		edge_break,
186 };
187 
188 #endif
189 
190