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