isicom.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. #ifndef _LINUX_ISICOM_H
  2. #define _LINUX_ISICOM_H
  3. /*#define ISICOM_DEBUG*/
  4. /*#define ISICOM_DEBUG_DTR_RTS*/
  5. /*
  6. * Firmware Loader definitions ...
  7. */
  8. #define __MultiTech ('M'<<8)
  9. #define MIOCTL_LOAD_FIRMWARE (__MultiTech | 0x01)
  10. #define MIOCTL_READ_FIRMWARE (__MultiTech | 0x02)
  11. #define MIOCTL_XFER_CTRL (__MultiTech | 0x03)
  12. #define MIOCTL_RESET_CARD (__MultiTech | 0x04)
  13. #define DATA_SIZE 16
  14. typedef struct {
  15. unsigned short exec_segment;
  16. unsigned short exec_addr;
  17. } exec_record;
  18. typedef struct {
  19. int board; /* Board to load */
  20. unsigned short addr;
  21. unsigned short count;
  22. } bin_header;
  23. typedef struct {
  24. int board; /* Board to load */
  25. unsigned short addr;
  26. unsigned short count;
  27. unsigned short segment;
  28. unsigned char bin_data[DATA_SIZE];
  29. } bin_frame;
  30. #ifdef __KERNEL__
  31. #define YES 1
  32. #define NO 0
  33. #define ISILOAD_MISC_MINOR 155 /* /dev/isctl */
  34. #define ISILOAD_NAME "ISILoad"
  35. /*
  36. * ISICOM Driver definitions ...
  37. *
  38. */
  39. #define ISICOM_NAME "ISICom"
  40. /*
  41. * PCI definitions
  42. */
  43. #define DEVID_COUNT 9
  44. #define VENDOR_ID 0x10b5
  45. /*
  46. * These are now officially allocated numbers
  47. */
  48. #define ISICOM_NMAJOR 112 /* normal */
  49. #define ISICOM_CMAJOR 113 /* callout */
  50. #define ISICOM_MAGIC (('M' << 8) | 'T')
  51. #define WAKEUP_CHARS 256 /* hard coded for now */
  52. #define TX_SIZE 254
  53. #define BOARD_COUNT 4
  54. #define PORT_COUNT (BOARD_COUNT*16)
  55. #define SERIAL_TYPE_NORMAL 1
  56. /* character sizes */
  57. #define ISICOM_CS5 0x0000
  58. #define ISICOM_CS6 0x0001
  59. #define ISICOM_CS7 0x0002
  60. #define ISICOM_CS8 0x0003
  61. /* stop bits */
  62. #define ISICOM_1SB 0x0000
  63. #define ISICOM_2SB 0x0004
  64. /* parity */
  65. #define ISICOM_NOPAR 0x0000
  66. #define ISICOM_ODPAR 0x0008
  67. #define ISICOM_EVPAR 0x0018
  68. /* flow control */
  69. #define ISICOM_CTSRTS 0x03
  70. #define ISICOM_INITIATE_XONXOFF 0x04
  71. #define ISICOM_RESPOND_XONXOFF 0x08
  72. #define InterruptTheCard(base) (outw(0,(base)+0xc))
  73. #define ClearInterrupt(base) (inw((base)+0x0a))
  74. #define BOARD(line) (((line) >> 4) & 0x3)
  75. /* isi kill queue bitmap */
  76. #define ISICOM_KILLTX 0x01
  77. #define ISICOM_KILLRX 0x02
  78. /* isi_board status bitmap */
  79. #define FIRMWARE_LOADED 0x0001
  80. #define BOARD_ACTIVE 0x0002
  81. /* isi_port status bitmap */
  82. #define ISI_CTS 0x1000
  83. #define ISI_DSR 0x2000
  84. #define ISI_RI 0x4000
  85. #define ISI_DCD 0x8000
  86. #define ISI_DTR 0x0100
  87. #define ISI_RTS 0x0200
  88. #define ISI_TXOK 0x0001
  89. #endif /* __KERNEL__ */
  90. #endif /* ISICOM_H */