io_tables.h 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  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. #ifndef IO_TABLES_H
  14. #define IO_TABLES_H
  15. static const struct usb_device_id edgeport_2port_id_table[] = {
  16. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_2) },
  17. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_2I) },
  18. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_421) },
  19. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_21) },
  20. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_2_DIN) },
  21. { }
  22. };
  23. static const struct usb_device_id edgeport_4port_id_table[] = {
  24. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4) },
  25. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_RAPIDPORT_4) },
  26. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4T) },
  27. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_MT4X56USB) },
  28. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4I) },
  29. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8_DUAL_CPU) },
  30. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4_DIN) },
  31. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_22I) },
  32. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_412_4) },
  33. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_COMPATIBLE) },
  34. { }
  35. };
  36. static const struct usb_device_id edgeport_8port_id_table[] = {
  37. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8) },
  38. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_16_DUAL_CPU) },
  39. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8I) },
  40. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8R) },
  41. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8RR) },
  42. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_412_8) },
  43. { }
  44. };
  45. static const struct usb_device_id Epic_port_id_table[] = {
  46. { USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0202) },
  47. { USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0203) },
  48. { USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0310) },
  49. { USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0311) },
  50. { USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0312) },
  51. { USB_DEVICE(USB_VENDOR_ID_AXIOHM, AXIOHM_DEVICE_ID_EPIC_A758) },
  52. { USB_DEVICE(USB_VENDOR_ID_AXIOHM, AXIOHM_DEVICE_ID_EPIC_A794) },
  53. { USB_DEVICE(USB_VENDOR_ID_AXIOHM, AXIOHM_DEVICE_ID_EPIC_A225) },
  54. { }
  55. };
  56. /* Devices that this driver supports */
  57. static const struct usb_device_id id_table_combined[] = {
  58. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4) },
  59. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_RAPIDPORT_4) },
  60. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4T) },
  61. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_MT4X56USB) },
  62. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_2) },
  63. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4I) },
  64. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_2I) },
  65. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_421) },
  66. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_21) },
  67. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8_DUAL_CPU) },
  68. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8) },
  69. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_2_DIN) },
  70. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_4_DIN) },
  71. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_16_DUAL_CPU) },
  72. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_22I) },
  73. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_412_4) },
  74. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_COMPATIBLE) },
  75. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8I) },
  76. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8R) },
  77. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_8RR) },
  78. { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_EDGEPORT_412_8) },
  79. { USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0202) },
  80. { USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0203) },
  81. { USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0310) },
  82. { USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0311) },
  83. { USB_DEVICE(USB_VENDOR_ID_NCR, NCR_DEVICE_ID_EPIC_0312) },
  84. { USB_DEVICE(USB_VENDOR_ID_AXIOHM, AXIOHM_DEVICE_ID_EPIC_A758) },
  85. { USB_DEVICE(USB_VENDOR_ID_AXIOHM, AXIOHM_DEVICE_ID_EPIC_A794) },
  86. { USB_DEVICE(USB_VENDOR_ID_AXIOHM, AXIOHM_DEVICE_ID_EPIC_A225) },
  87. { } /* Terminating entry */
  88. };
  89. MODULE_DEVICE_TABLE(usb, id_table_combined);
  90. static struct usb_driver io_driver = {
  91. .name = "io_edgeport",
  92. .probe = usb_serial_probe,
  93. .disconnect = usb_serial_disconnect,
  94. .id_table = id_table_combined,
  95. };
  96. static struct usb_serial_driver edgeport_2port_device = {
  97. .driver = {
  98. .owner = THIS_MODULE,
  99. .name = "edgeport_2",
  100. },
  101. .description = "Edgeport 2 port adapter",
  102. .id_table = edgeport_2port_id_table,
  103. .num_ports = 2,
  104. .open = edge_open,
  105. .close = edge_close,
  106. .throttle = edge_throttle,
  107. .unthrottle = edge_unthrottle,
  108. .attach = edge_startup,
  109. .disconnect = edge_disconnect,
  110. .release = edge_release,
  111. .ioctl = edge_ioctl,
  112. .set_termios = edge_set_termios,
  113. .tiocmget = edge_tiocmget,
  114. .tiocmset = edge_tiocmset,
  115. .get_icount = edge_get_icount,
  116. .write = edge_write,
  117. .write_room = edge_write_room,
  118. .chars_in_buffer = edge_chars_in_buffer,
  119. .break_ctl = edge_break,
  120. .read_int_callback = edge_interrupt_callback,
  121. .read_bulk_callback = edge_bulk_in_callback,
  122. .write_bulk_callback = edge_bulk_out_data_callback,
  123. };
  124. static struct usb_serial_driver edgeport_4port_device = {
  125. .driver = {
  126. .owner = THIS_MODULE,
  127. .name = "edgeport_4",
  128. },
  129. .description = "Edgeport 4 port adapter",
  130. .id_table = edgeport_4port_id_table,
  131. .num_ports = 4,
  132. .open = edge_open,
  133. .close = edge_close,
  134. .throttle = edge_throttle,
  135. .unthrottle = edge_unthrottle,
  136. .attach = edge_startup,
  137. .disconnect = edge_disconnect,
  138. .release = edge_release,
  139. .ioctl = edge_ioctl,
  140. .set_termios = edge_set_termios,
  141. .tiocmget = edge_tiocmget,
  142. .tiocmset = edge_tiocmset,
  143. .get_icount = edge_get_icount,
  144. .write = edge_write,
  145. .write_room = edge_write_room,
  146. .chars_in_buffer = edge_chars_in_buffer,
  147. .break_ctl = edge_break,
  148. .read_int_callback = edge_interrupt_callback,
  149. .read_bulk_callback = edge_bulk_in_callback,
  150. .write_bulk_callback = edge_bulk_out_data_callback,
  151. };
  152. static struct usb_serial_driver edgeport_8port_device = {
  153. .driver = {
  154. .owner = THIS_MODULE,
  155. .name = "edgeport_8",
  156. },
  157. .description = "Edgeport 8 port adapter",
  158. .id_table = edgeport_8port_id_table,
  159. .num_ports = 8,
  160. .open = edge_open,
  161. .close = edge_close,
  162. .throttle = edge_throttle,
  163. .unthrottle = edge_unthrottle,
  164. .attach = edge_startup,
  165. .disconnect = edge_disconnect,
  166. .release = edge_release,
  167. .ioctl = edge_ioctl,
  168. .set_termios = edge_set_termios,
  169. .tiocmget = edge_tiocmget,
  170. .tiocmset = edge_tiocmset,
  171. .get_icount = edge_get_icount,
  172. .write = edge_write,
  173. .write_room = edge_write_room,
  174. .chars_in_buffer = edge_chars_in_buffer,
  175. .break_ctl = edge_break,
  176. .read_int_callback = edge_interrupt_callback,
  177. .read_bulk_callback = edge_bulk_in_callback,
  178. .write_bulk_callback = edge_bulk_out_data_callback,
  179. };
  180. static struct usb_serial_driver epic_device = {
  181. .driver = {
  182. .owner = THIS_MODULE,
  183. .name = "epic",
  184. },
  185. .description = "EPiC device",
  186. .id_table = Epic_port_id_table,
  187. .num_ports = 1,
  188. .open = edge_open,
  189. .close = edge_close,
  190. .throttle = edge_throttle,
  191. .unthrottle = edge_unthrottle,
  192. .attach = edge_startup,
  193. .disconnect = edge_disconnect,
  194. .release = edge_release,
  195. .ioctl = edge_ioctl,
  196. .set_termios = edge_set_termios,
  197. .tiocmget = edge_tiocmget,
  198. .tiocmset = edge_tiocmset,
  199. .get_icount = edge_get_icount,
  200. .write = edge_write,
  201. .write_room = edge_write_room,
  202. .chars_in_buffer = edge_chars_in_buffer,
  203. .break_ctl = edge_break,
  204. .read_int_callback = edge_interrupt_callback,
  205. .read_bulk_callback = edge_bulk_in_callback,
  206. .write_bulk_callback = edge_bulk_out_data_callback,
  207. };
  208. static struct usb_serial_driver * const serial_drivers[] = {
  209. &edgeport_2port_device, &edgeport_4port_device,
  210. &edgeport_8port_device, &epic_device, NULL
  211. };
  212. #endif