blob: 650693b1e18b4b547b7973d8b7ec737b7a2aa17d [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
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.
Alan Cox03f0dbf2008-07-22 11:16:34 +010011 *
Linus Torvalds1da177e2005-04-16 15:20:36 -070012 */
13
14#ifndef IO_TABLES_H
15#define IO_TABLES_H
16
Németh Márton7d40d7e2010-01-10 15:34:24 +010017static const struct usb_device_id edgeport_2port_id_table[] = {
Linus Torvalds1da177e2005-04-16 15:20:36 -070018 { 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
Németh Márton7d40d7e2010-01-10 15:34:24 +010026static const struct usb_device_id edgeport_4port_id_table[] = {
Linus Torvalds1da177e2005-04-16 15:20:36 -070027 { 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
Németh Márton7d40d7e2010-01-10 15:34:24 +010040static const struct usb_device_id edgeport_8port_id_table[] = {
Linus Torvalds1da177e2005-04-16 15:20:36 -070041 { 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
Németh Márton7d40d7e2010-01-10 15:34:24 +010050static const struct usb_device_id Epic_port_id_table[] = {
Greg Kroah-Hartman6e8cf772007-01-18 00:20:19 -080051 { 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
Linus Torvalds1da177e2005-04-16 15:20:36 -070062/* Devices that this driver supports */
Németh Márton7d40d7e2010-01-10 15:34:24 +010063static const struct usb_device_id id_table_combined[] = {
Linus Torvalds1da177e2005-04-16 15:20:36 -070064 { 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) },
Greg Kroah-Hartman6e8cf772007-01-18 00:20:19 -080085 { 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) },
Alan Cox03f0dbf2008-07-22 11:16:34 +010093 { } /* Terminating entry */
Linus Torvalds1da177e2005-04-16 15:20:36 -070094};
95
Alan Cox03f0dbf2008-07-22 11:16:34 +010096MODULE_DEVICE_TABLE(usb, id_table_combined);
Linus Torvalds1da177e2005-04-16 15:20:36 -070097
Johannes Hölzld9b1b782006-12-17 21:50:24 +010098static struct usb_driver io_driver = {
99 .name = "io_edgeport",
Johannes Hölzld9b1b782006-12-17 21:50:24 +0100100 .id_table = id_table_combined,
Johannes Hölzld9b1b782006-12-17 21:50:24 +0100101};
102
Greg Kroah-Hartmanea653702005-06-20 21:15:16 -0700103static struct usb_serial_driver edgeport_2port_device = {
Greg Kroah-Hartman18fcac32005-06-20 21:15:16 -0700104 .driver = {
105 .owner = THIS_MODULE,
Greg Kroah-Hartman269bda12005-06-20 21:15:16 -0700106 .name = "edgeport_2",
Greg Kroah-Hartman18fcac32005-06-20 21:15:16 -0700107 },
Greg Kroah-Hartman269bda12005-06-20 21:15:16 -0700108 .description = "Edgeport 2 port adapter",
Linus Torvalds1da177e2005-04-16 15:20:36 -0700109 .id_table = edgeport_2port_id_table,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700110 .num_ports = 2,
111 .open = edge_open,
112 .close = edge_close,
113 .throttle = edge_throttle,
114 .unthrottle = edge_unthrottle,
115 .attach = edge_startup,
Alan Sternf9c99bb2009-06-02 11:53:55 -0400116 .disconnect = edge_disconnect,
117 .release = edge_release,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700118 .ioctl = edge_ioctl,
119 .set_termios = edge_set_termios,
120 .tiocmget = edge_tiocmget,
121 .tiocmset = edge_tiocmset,
Alan Cox0bca1b92010-09-16 18:21:40 +0100122 .get_icount = edge_get_icount,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700123 .write = edge_write,
124 .write_room = edge_write_room,
125 .chars_in_buffer = edge_chars_in_buffer,
126 .break_ctl = edge_break,
127 .read_int_callback = edge_interrupt_callback,
128 .read_bulk_callback = edge_bulk_in_callback,
129 .write_bulk_callback = edge_bulk_out_data_callback,
130};
131
Greg Kroah-Hartmanea653702005-06-20 21:15:16 -0700132static struct usb_serial_driver edgeport_4port_device = {
Greg Kroah-Hartman18fcac32005-06-20 21:15:16 -0700133 .driver = {
134 .owner = THIS_MODULE,
Greg Kroah-Hartman269bda12005-06-20 21:15:16 -0700135 .name = "edgeport_4",
Greg Kroah-Hartman18fcac32005-06-20 21:15:16 -0700136 },
Greg Kroah-Hartman269bda12005-06-20 21:15:16 -0700137 .description = "Edgeport 4 port adapter",
Linus Torvalds1da177e2005-04-16 15:20:36 -0700138 .id_table = edgeport_4port_id_table,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700139 .num_ports = 4,
140 .open = edge_open,
141 .close = edge_close,
142 .throttle = edge_throttle,
143 .unthrottle = edge_unthrottle,
144 .attach = edge_startup,
Alan Sternf9c99bb2009-06-02 11:53:55 -0400145 .disconnect = edge_disconnect,
146 .release = edge_release,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700147 .ioctl = edge_ioctl,
148 .set_termios = edge_set_termios,
149 .tiocmget = edge_tiocmget,
150 .tiocmset = edge_tiocmset,
Alan Cox0bca1b92010-09-16 18:21:40 +0100151 .get_icount = edge_get_icount,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700152 .write = edge_write,
153 .write_room = edge_write_room,
154 .chars_in_buffer = edge_chars_in_buffer,
155 .break_ctl = edge_break,
156 .read_int_callback = edge_interrupt_callback,
157 .read_bulk_callback = edge_bulk_in_callback,
158 .write_bulk_callback = edge_bulk_out_data_callback,
159};
160
Greg Kroah-Hartmanea653702005-06-20 21:15:16 -0700161static struct usb_serial_driver edgeport_8port_device = {
Greg Kroah-Hartman18fcac32005-06-20 21:15:16 -0700162 .driver = {
163 .owner = THIS_MODULE,
Greg Kroah-Hartman269bda12005-06-20 21:15:16 -0700164 .name = "edgeport_8",
Greg Kroah-Hartman18fcac32005-06-20 21:15:16 -0700165 },
Greg Kroah-Hartman269bda12005-06-20 21:15:16 -0700166 .description = "Edgeport 8 port adapter",
Linus Torvalds1da177e2005-04-16 15:20:36 -0700167 .id_table = edgeport_8port_id_table,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700168 .num_ports = 8,
169 .open = edge_open,
170 .close = edge_close,
171 .throttle = edge_throttle,
172 .unthrottle = edge_unthrottle,
173 .attach = edge_startup,
Alan Sternf9c99bb2009-06-02 11:53:55 -0400174 .disconnect = edge_disconnect,
175 .release = edge_release,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700176 .ioctl = edge_ioctl,
177 .set_termios = edge_set_termios,
178 .tiocmget = edge_tiocmget,
179 .tiocmset = edge_tiocmset,
Alan Cox0bca1b92010-09-16 18:21:40 +0100180 .get_icount = edge_get_icount,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700181 .write = edge_write,
182 .write_room = edge_write_room,
183 .chars_in_buffer = edge_chars_in_buffer,
184 .break_ctl = edge_break,
185 .read_int_callback = edge_interrupt_callback,
186 .read_bulk_callback = edge_bulk_in_callback,
187 .write_bulk_callback = edge_bulk_out_data_callback,
188};
189
Greg Kroah-Hartman6e8cf772007-01-18 00:20:19 -0800190static struct usb_serial_driver epic_device = {
191 .driver = {
192 .owner = THIS_MODULE,
193 .name = "epic",
194 },
195 .description = "EPiC device",
196 .id_table = Epic_port_id_table,
Greg Kroah-Hartman6e8cf772007-01-18 00:20:19 -0800197 .num_ports = 1,
198 .open = edge_open,
199 .close = edge_close,
200 .throttle = edge_throttle,
201 .unthrottle = edge_unthrottle,
202 .attach = edge_startup,
Alan Sternf9c99bb2009-06-02 11:53:55 -0400203 .disconnect = edge_disconnect,
204 .release = edge_release,
Greg Kroah-Hartman6e8cf772007-01-18 00:20:19 -0800205 .ioctl = edge_ioctl,
206 .set_termios = edge_set_termios,
207 .tiocmget = edge_tiocmget,
208 .tiocmset = edge_tiocmset,
Alan Cox0bca1b92010-09-16 18:21:40 +0100209 .get_icount = edge_get_icount,
Greg Kroah-Hartman6e8cf772007-01-18 00:20:19 -0800210 .write = edge_write,
211 .write_room = edge_write_room,
212 .chars_in_buffer = edge_chars_in_buffer,
213 .break_ctl = edge_break,
214 .read_int_callback = edge_interrupt_callback,
215 .read_bulk_callback = edge_bulk_in_callback,
216 .write_bulk_callback = edge_bulk_out_data_callback,
217};
218
Alan Stern7dbe2462012-02-23 14:56:57 -0500219static struct usb_serial_driver * const serial_drivers[] = {
220 &edgeport_2port_device, &edgeport_4port_device,
221 &edgeport_8port_device, &epic_device, NULL
222};
223
Linus Torvalds1da177e2005-04-16 15:20:36 -0700224#endif
225