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