]> git.ipfire.org Git - thirdparty/kernel/stable.git/blob - include/linux/isicom.h
Linux-2.6.12-rc2
[thirdparty/kernel/stable.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