io_tables.h 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  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_serial_driver edgeport_2port_device = {
  91. .driver = {
  92. .owner = THIS_MODULE,
  93. .name = "edgeport_2",
  94. },
  95. .description = "Edgeport 2 port adapter",
  96. .id_table = edgeport_2port_id_table,
  97. .num_ports = 2,
  98. .open = edge_open,
  99. .close = edge_close,
  100. .throttle = edge_throttle,
  101. .unthrottle = edge_unthrottle,
  102. .attach = edge_startup,
  103. .disconnect = edge_disconnect,
  104. .release = edge_release,
  105. .ioctl = edge_ioctl,
  106. .set_termios = edge_set_termios,
  107. .tiocmget = edge_tiocmget,
  108. .tiocmset = edge_tiocmset,
  109. .get_icount = edge_get_icount,
  110. .write = edge_write,
  111. .write_room = edge_write_room,
  112. .chars_in_buffer = edge_chars_in_buffer,
  113. .break_ctl = edge_break,
  114. .read_int_callback = edge_interrupt_callback,
  115. .read_bulk_callback = edge_bulk_in_callback,
  116. .write_bulk_callback = edge_bulk_out_data_callback,
  117. };
  118. static struct usb_serial_driver edgeport_4port_device = {
  119. .driver = {
  120. .owner = THIS_MODULE,
  121. .name = "edgeport_4",
  122. },
  123. .description = "Edgeport 4 port adapter",
  124. .id_table = edgeport_4port_id_table,
  125. .num_ports = 4,
  126. .open = edge_open,
  127. .close = edge_close,
  128. .throttle = edge_throttle,
  129. .unthrottle = edge_unthrottle,
  130. .attach = edge_startup,
  131. .disconnect = edge_disconnect,
  132. .release = edge_release,
  133. .ioctl = edge_ioctl,
  134. .set_termios = edge_set_termios,
  135. .tiocmget = edge_tiocmget,
  136. .tiocmset = edge_tiocmset,
  137. .get_icount = edge_get_icount,
  138. .write = edge_write,
  139. .write_room = edge_write_room,
  140. .chars_in_buffer = edge_chars_in_buffer,
  141. .break_ctl = edge_break,
  142. .read_int_callback = edge_interrupt_callback,
  143. .read_bulk_callback = edge_bulk_in_callback,
  144. .write_bulk_callback = edge_bulk_out_data_callback,
  145. };
  146. static struct usb_serial_driver edgeport_8port_device = {
  147. .driver = {
  148. .owner = THIS_MODULE,
  149. .name = "edgeport_8",
  150. },
  151. .description = "Edgeport 8 port adapter",
  152. .id_table = edgeport_8port_id_table,
  153. .num_ports = 8,
  154. .open = edge_open,
  155. .close = edge_close,
  156. .throttle = edge_throttle,
  157. .unthrottle = edge_unthrottle,
  158. .attach = edge_startup,
  159. .disconnect = edge_disconnect,
  160. .release = edge_release,
  161. .ioctl = edge_ioctl,
  162. .set_termios = edge_set_termios,
  163. .tiocmget = edge_tiocmget,
  164. .tiocmset = edge_tiocmset,
  165. .get_icount = edge_get_icount,
  166. .write = edge_write,
  167. .write_room = edge_write_room,
  168. .chars_in_buffer = edge_chars_in_buffer,
  169. .break_ctl = edge_break,
  170. .read_int_callback = edge_interrupt_callback,
  171. .read_bulk_callback = edge_bulk_in_callback,
  172. .write_bulk_callback = edge_bulk_out_data_callback,
  173. };
  174. static struct usb_serial_driver epic_device = {
  175. .driver = {
  176. .owner = THIS_MODULE,
  177. .name = "epic",
  178. },
  179. .description = "EPiC device",
  180. .id_table = Epic_port_id_table,
  181. .num_ports = 1,
  182. .open = edge_open,
  183. .close = edge_close,
  184. .throttle = edge_throttle,
  185. .unthrottle = edge_unthrottle,
  186. .attach = edge_startup,
  187. .disconnect = edge_disconnect,
  188. .release = edge_release,
  189. .ioctl = edge_ioctl,
  190. .set_termios = edge_set_termios,
  191. .tiocmget = edge_tiocmget,
  192. .tiocmset = edge_tiocmset,
  193. .get_icount = edge_get_icount,
  194. .write = edge_write,
  195. .write_room = edge_write_room,
  196. .chars_in_buffer = edge_chars_in_buffer,
  197. .break_ctl = edge_break,
  198. .read_int_callback = edge_interrupt_callback,
  199. .read_bulk_callback = edge_bulk_in_callback,
  200. .write_bulk_callback = edge_bulk_out_data_callback,
  201. };
  202. static struct usb_serial_driver * const serial_drivers[] = {
  203. &edgeport_2port_device, &edgeport_4port_device,
  204. &edgeport_8port_device, &epic_device, NULL
  205. };
  206. #endif