special usb hub handling, IDE disks, and retries all over the place
[linux-2.4.git] / drivers / usb / serial / io_tables.h
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