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 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 26 static 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 40 static 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 50 static 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 */ 63 static 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 96 MODULE_DEVICE_TABLE(usb, id_table_combined); 97 98 static 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 106 static 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 .get_icount = edge_get_icount, 127 .write = edge_write, 128 .write_room = edge_write_room, 129 .chars_in_buffer = edge_chars_in_buffer, 130 .break_ctl = edge_break, 131 .read_int_callback = edge_interrupt_callback, 132 .read_bulk_callback = edge_bulk_in_callback, 133 .write_bulk_callback = edge_bulk_out_data_callback, 134 }; 135 136 static struct usb_serial_driver edgeport_4port_device = { 137 .driver = { 138 .owner = THIS_MODULE, 139 .name = "edgeport_4", 140 }, 141 .description = "Edgeport 4 port adapter", 142 .usb_driver = &io_driver, 143 .id_table = edgeport_4port_id_table, 144 .num_ports = 4, 145 .open = edge_open, 146 .close = edge_close, 147 .throttle = edge_throttle, 148 .unthrottle = edge_unthrottle, 149 .attach = edge_startup, 150 .disconnect = edge_disconnect, 151 .release = edge_release, 152 .ioctl = edge_ioctl, 153 .set_termios = edge_set_termios, 154 .tiocmget = edge_tiocmget, 155 .tiocmset = edge_tiocmset, 156 .get_icount = edge_get_icount, 157 .write = edge_write, 158 .write_room = edge_write_room, 159 .chars_in_buffer = edge_chars_in_buffer, 160 .break_ctl = edge_break, 161 .read_int_callback = edge_interrupt_callback, 162 .read_bulk_callback = edge_bulk_in_callback, 163 .write_bulk_callback = edge_bulk_out_data_callback, 164 }; 165 166 static struct usb_serial_driver edgeport_8port_device = { 167 .driver = { 168 .owner = THIS_MODULE, 169 .name = "edgeport_8", 170 }, 171 .description = "Edgeport 8 port adapter", 172 .usb_driver = &io_driver, 173 .id_table = edgeport_8port_id_table, 174 .num_ports = 8, 175 .open = edge_open, 176 .close = edge_close, 177 .throttle = edge_throttle, 178 .unthrottle = edge_unthrottle, 179 .attach = edge_startup, 180 .disconnect = edge_disconnect, 181 .release = edge_release, 182 .ioctl = edge_ioctl, 183 .set_termios = edge_set_termios, 184 .tiocmget = edge_tiocmget, 185 .tiocmset = edge_tiocmset, 186 .get_icount = edge_get_icount, 187 .write = edge_write, 188 .write_room = edge_write_room, 189 .chars_in_buffer = edge_chars_in_buffer, 190 .break_ctl = edge_break, 191 .read_int_callback = edge_interrupt_callback, 192 .read_bulk_callback = edge_bulk_in_callback, 193 .write_bulk_callback = edge_bulk_out_data_callback, 194 }; 195 196 static struct usb_serial_driver epic_device = { 197 .driver = { 198 .owner = THIS_MODULE, 199 .name = "epic", 200 }, 201 .description = "EPiC device", 202 .usb_driver = &io_driver, 203 .id_table = Epic_port_id_table, 204 .num_ports = 1, 205 .open = edge_open, 206 .close = edge_close, 207 .throttle = edge_throttle, 208 .unthrottle = edge_unthrottle, 209 .attach = edge_startup, 210 .disconnect = edge_disconnect, 211 .release = edge_release, 212 .ioctl = edge_ioctl, 213 .set_termios = edge_set_termios, 214 .tiocmget = edge_tiocmget, 215 .tiocmset = edge_tiocmset, 216 .get_icount = edge_get_icount, 217 .write = edge_write, 218 .write_room = edge_write_room, 219 .chars_in_buffer = edge_chars_in_buffer, 220 .break_ctl = edge_break, 221 .read_int_callback = edge_interrupt_callback, 222 .read_bulk_callback = edge_bulk_in_callback, 223 .write_bulk_callback = edge_bulk_out_data_callback, 224 }; 225 226 #endif 227 228