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