|  | /* | 
|  | * IO Edgeport Driver tables | 
|  | * | 
|  | *	Copyright (C) 2001 | 
|  | *	    Greg Kroah-Hartman (greg@kroah.com) | 
|  | * | 
|  | *	This program is free software; you can redistribute it and/or modify | 
|  | *	it under the terms of the GNU General Public License as published by | 
|  | *	the Free Software Foundation; either version 2 of the License, or | 
|  | *	(at your option) any later version. | 
|  | * | 
|  | */ | 
|  |  | 
|  | #ifndef IO_TABLES_H | 
|  | #define IO_TABLES_H | 
|  |  | 
|  | static const struct usb_device_id edgeport_2port_id_table[] = { | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_2) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_2I) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_421) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_21) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_2_DIN) }, | 
|  | { } | 
|  | }; | 
|  |  | 
|  | static const struct usb_device_id edgeport_4port_id_table[] = { | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_RAPIDPORT_4) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4T) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_MT4X56USB) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4I) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8_DUAL_CPU) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4_DIN) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_22I) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_412_4) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_COMPATIBLE) }, | 
|  | { } | 
|  | }; | 
|  |  | 
|  | static const struct usb_device_id edgeport_8port_id_table[] = { | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_16_DUAL_CPU) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8I) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8R) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8RR) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_412_8) }, | 
|  | { } | 
|  | }; | 
|  |  | 
|  | static const struct usb_device_id Epic_port_id_table[] = { | 
|  | { USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0202) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0203) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0310) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0311) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0312) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_AXIOHM, AXIOHM_DEVICE_ID_EPIC_A758) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_AXIOHM, AXIOHM_DEVICE_ID_EPIC_A794) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_AXIOHM, AXIOHM_DEVICE_ID_EPIC_A225) }, | 
|  | { } | 
|  | }; | 
|  |  | 
|  | /* Devices that this driver supports */ | 
|  | static const struct usb_device_id id_table_combined[] = { | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_4) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_RAPIDPORT_4) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_4T) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_MT4X56USB) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_2) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_4I) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_2I) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_421) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_21) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_8_DUAL_CPU) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_8) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_2_DIN) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_4_DIN) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_16_DUAL_CPU) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_22I) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_412_4) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_COMPATIBLE) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION,	ION_DEVICE_ID_EDGEPORT_8I) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8R) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8RR) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_412_8) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0202) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0203) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0310) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0311) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0312) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_AXIOHM, AXIOHM_DEVICE_ID_EPIC_A758) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_AXIOHM, AXIOHM_DEVICE_ID_EPIC_A794) }, | 
|  | { USB_DEVICE(USB_VENDOR_ID_AXIOHM, AXIOHM_DEVICE_ID_EPIC_A225) }, | 
|  | { } /* Terminating entry */ | 
|  | }; | 
|  |  | 
|  | MODULE_DEVICE_TABLE(usb, id_table_combined); | 
|  |  | 
|  | static struct usb_driver io_driver = { | 
|  | .name =		"io_edgeport", | 
|  | .probe =	usb_serial_probe, | 
|  | .disconnect =	usb_serial_disconnect, | 
|  | .id_table =	id_table_combined, | 
|  | .no_dynamic_id = 	1, | 
|  | }; | 
|  |  | 
|  | static struct usb_serial_driver edgeport_2port_device = { | 
|  | .driver = { | 
|  | .owner		= THIS_MODULE, | 
|  | .name		= "edgeport_2", | 
|  | }, | 
|  | .description		= "Edgeport 2 port adapter", | 
|  | .usb_driver		= &io_driver, | 
|  | .id_table		= edgeport_2port_id_table, | 
|  | .num_ports		= 2, | 
|  | .open			= edge_open, | 
|  | .close			= edge_close, | 
|  | .throttle		= edge_throttle, | 
|  | .unthrottle		= edge_unthrottle, | 
|  | .attach			= edge_startup, | 
|  | .disconnect		= edge_disconnect, | 
|  | .release		= edge_release, | 
|  | .ioctl			= edge_ioctl, | 
|  | .set_termios		= edge_set_termios, | 
|  | .tiocmget		= edge_tiocmget, | 
|  | .tiocmset		= edge_tiocmset, | 
|  | .get_icount		= edge_get_icount, | 
|  | .write			= edge_write, | 
|  | .write_room		= edge_write_room, | 
|  | .chars_in_buffer	= edge_chars_in_buffer, | 
|  | .break_ctl		= edge_break, | 
|  | .read_int_callback	= edge_interrupt_callback, | 
|  | .read_bulk_callback	= edge_bulk_in_callback, | 
|  | .write_bulk_callback	= edge_bulk_out_data_callback, | 
|  | }; | 
|  |  | 
|  | static struct usb_serial_driver edgeport_4port_device = { | 
|  | .driver = { | 
|  | .owner		= THIS_MODULE, | 
|  | .name		= "edgeport_4", | 
|  | }, | 
|  | .description		= "Edgeport 4 port adapter", | 
|  | .usb_driver		= &io_driver, | 
|  | .id_table		= edgeport_4port_id_table, | 
|  | .num_ports		= 4, | 
|  | .open			= edge_open, | 
|  | .close			= edge_close, | 
|  | .throttle		= edge_throttle, | 
|  | .unthrottle		= edge_unthrottle, | 
|  | .attach			= edge_startup, | 
|  | .disconnect		= edge_disconnect, | 
|  | .release		= edge_release, | 
|  | .ioctl			= edge_ioctl, | 
|  | .set_termios		= edge_set_termios, | 
|  | .tiocmget		= edge_tiocmget, | 
|  | .tiocmset		= edge_tiocmset, | 
|  | .get_icount		= edge_get_icount, | 
|  | .write			= edge_write, | 
|  | .write_room		= edge_write_room, | 
|  | .chars_in_buffer	= edge_chars_in_buffer, | 
|  | .break_ctl		= edge_break, | 
|  | .read_int_callback	= edge_interrupt_callback, | 
|  | .read_bulk_callback	= edge_bulk_in_callback, | 
|  | .write_bulk_callback	= edge_bulk_out_data_callback, | 
|  | }; | 
|  |  | 
|  | static struct usb_serial_driver edgeport_8port_device = { | 
|  | .driver = { | 
|  | .owner		= THIS_MODULE, | 
|  | .name		= "edgeport_8", | 
|  | }, | 
|  | .description		= "Edgeport 8 port adapter", | 
|  | .usb_driver		= &io_driver, | 
|  | .id_table		= edgeport_8port_id_table, | 
|  | .num_ports		= 8, | 
|  | .open			= edge_open, | 
|  | .close			= edge_close, | 
|  | .throttle		= edge_throttle, | 
|  | .unthrottle		= edge_unthrottle, | 
|  | .attach			= edge_startup, | 
|  | .disconnect		= edge_disconnect, | 
|  | .release		= edge_release, | 
|  | .ioctl			= edge_ioctl, | 
|  | .set_termios		= edge_set_termios, | 
|  | .tiocmget		= edge_tiocmget, | 
|  | .tiocmset		= edge_tiocmset, | 
|  | .get_icount		= edge_get_icount, | 
|  | .write			= edge_write, | 
|  | .write_room		= edge_write_room, | 
|  | .chars_in_buffer	= edge_chars_in_buffer, | 
|  | .break_ctl		= edge_break, | 
|  | .read_int_callback	= edge_interrupt_callback, | 
|  | .read_bulk_callback	= edge_bulk_in_callback, | 
|  | .write_bulk_callback	= edge_bulk_out_data_callback, | 
|  | }; | 
|  |  | 
|  | static struct usb_serial_driver epic_device = { | 
|  | .driver = { | 
|  | .owner		= THIS_MODULE, | 
|  | .name		= "epic", | 
|  | }, | 
|  | .description		= "EPiC device", | 
|  | .usb_driver		= &io_driver, | 
|  | .id_table		= Epic_port_id_table, | 
|  | .num_ports		= 1, | 
|  | .open			= edge_open, | 
|  | .close			= edge_close, | 
|  | .throttle		= edge_throttle, | 
|  | .unthrottle		= edge_unthrottle, | 
|  | .attach			= edge_startup, | 
|  | .disconnect		= edge_disconnect, | 
|  | .release		= edge_release, | 
|  | .ioctl			= edge_ioctl, | 
|  | .set_termios		= edge_set_termios, | 
|  | .tiocmget		= edge_tiocmget, | 
|  | .tiocmset		= edge_tiocmset, | 
|  | .get_icount		= edge_get_icount, | 
|  | .write			= edge_write, | 
|  | .write_room		= edge_write_room, | 
|  | .chars_in_buffer	= edge_chars_in_buffer, | 
|  | .break_ctl		= edge_break, | 
|  | .read_int_callback	= edge_interrupt_callback, | 
|  | .read_bulk_callback	= edge_bulk_in_callback, | 
|  | .write_bulk_callback	= edge_bulk_out_data_callback, | 
|  | }; | 
|  |  | 
|  | #endif | 
|  |  |