diff options
Diffstat (limited to 'include/linux/scc.h')
-rw-r--r-- | include/linux/scc.h | 169 |
1 files changed, 1 insertions, 168 deletions
diff --git a/include/linux/scc.h b/include/linux/scc.h index 3495bd953cc6..c5a004962679 100644 --- a/include/linux/scc.h +++ b/include/linux/scc.h | |||
@@ -1,175 +1,9 @@ | |||
1 | /* $Id: scc.h,v 1.29 1997/04/02 14:56:45 jreuter Exp jreuter $ */ | 1 | /* $Id: scc.h,v 1.29 1997/04/02 14:56:45 jreuter Exp jreuter $ */ |
2 | |||
3 | #ifndef _SCC_H | 2 | #ifndef _SCC_H |
4 | #define _SCC_H | 3 | #define _SCC_H |
5 | 4 | ||
5 | #include <uapi/linux/scc.h> | ||
6 | 6 | ||
7 | /* selection of hardware types */ | ||
8 | |||
9 | #define PA0HZP 0x00 /* hardware type for PA0HZP SCC card and compatible */ | ||
10 | #define EAGLE 0x01 /* hardware type for EAGLE card */ | ||
11 | #define PC100 0x02 /* hardware type for PC100 card */ | ||
12 | #define PRIMUS 0x04 /* hardware type for PRIMUS-PC (DG9BL) card */ | ||
13 | #define DRSI 0x08 /* hardware type for DRSI PC*Packet card */ | ||
14 | #define BAYCOM 0x10 /* hardware type for BayCom (U)SCC */ | ||
15 | |||
16 | /* DEV ioctl() commands */ | ||
17 | |||
18 | enum SCC_ioctl_cmds { | ||
19 | SIOCSCCRESERVED = SIOCDEVPRIVATE, | ||
20 | SIOCSCCCFG, | ||
21 | SIOCSCCINI, | ||
22 | SIOCSCCCHANINI, | ||
23 | SIOCSCCSMEM, | ||
24 | SIOCSCCGKISS, | ||
25 | SIOCSCCSKISS, | ||
26 | SIOCSCCGSTAT, | ||
27 | SIOCSCCCAL | ||
28 | }; | ||
29 | |||
30 | /* Device parameter control (from WAMPES) */ | ||
31 | |||
32 | enum L1_params { | ||
33 | PARAM_DATA, | ||
34 | PARAM_TXDELAY, | ||
35 | PARAM_PERSIST, | ||
36 | PARAM_SLOTTIME, | ||
37 | PARAM_TXTAIL, | ||
38 | PARAM_FULLDUP, | ||
39 | PARAM_SOFTDCD, /* was: PARAM_HW */ | ||
40 | PARAM_MUTE, /* ??? */ | ||
41 | PARAM_DTR, | ||
42 | PARAM_RTS, | ||
43 | PARAM_SPEED, | ||
44 | PARAM_ENDDELAY, /* ??? */ | ||
45 | PARAM_GROUP, | ||
46 | PARAM_IDLE, | ||
47 | PARAM_MIN, | ||
48 | PARAM_MAXKEY, | ||
49 | PARAM_WAIT, | ||
50 | PARAM_MAXDEFER, | ||
51 | PARAM_TX, | ||
52 | PARAM_HWEVENT = 31, | ||
53 | PARAM_RETURN = 255 /* reset kiss mode */ | ||
54 | }; | ||
55 | |||
56 | /* fulldup parameter */ | ||
57 | |||
58 | enum FULLDUP_modes { | ||
59 | KISS_DUPLEX_HALF, /* normal CSMA operation */ | ||
60 | KISS_DUPLEX_FULL, /* fullduplex, key down trx after transmission */ | ||
61 | KISS_DUPLEX_LINK, /* fullduplex, key down trx after 'idletime' sec */ | ||
62 | KISS_DUPLEX_OPTIMA /* fullduplex, let the protocol layer control the hw */ | ||
63 | }; | ||
64 | |||
65 | /* misc. parameters */ | ||
66 | |||
67 | #define TIMER_OFF 65535U /* to switch off timers */ | ||
68 | #define NO_SUCH_PARAM 65534U /* param not implemented */ | ||
69 | |||
70 | /* HWEVENT parameter */ | ||
71 | |||
72 | enum HWEVENT_opts { | ||
73 | HWEV_DCD_ON, | ||
74 | HWEV_DCD_OFF, | ||
75 | HWEV_ALL_SENT | ||
76 | }; | ||
77 | |||
78 | /* channel grouping */ | ||
79 | |||
80 | #define RXGROUP 0100 /* if set, only tx when all channels clear */ | ||
81 | #define TXGROUP 0200 /* if set, don't transmit simultaneously */ | ||
82 | |||
83 | /* Tx/Rx clock sources */ | ||
84 | |||
85 | enum CLOCK_sources { | ||
86 | CLK_DPLL, /* normal halfduplex operation */ | ||
87 | CLK_EXTERNAL, /* external clocking (G3RUH/DF9IC modems) */ | ||
88 | CLK_DIVIDER, /* Rx = DPLL, Tx = divider (fullduplex with */ | ||
89 | /* modems without clock regeneration */ | ||
90 | CLK_BRG /* experimental fullduplex mode with DPLL/BRG for */ | ||
91 | /* MODEMs without clock recovery */ | ||
92 | }; | ||
93 | |||
94 | /* Tx state */ | ||
95 | |||
96 | enum TX_state { | ||
97 | TXS_IDLE, /* Transmitter off, no data pending */ | ||
98 | TXS_BUSY, /* waiting for permission to send / tailtime */ | ||
99 | TXS_ACTIVE, /* Transmitter on, sending data */ | ||
100 | TXS_NEWFRAME, /* reset CRC and send (next) frame */ | ||
101 | TXS_IDLE2, /* Transmitter on, no data pending */ | ||
102 | TXS_WAIT, /* Waiting for Mintime to expire */ | ||
103 | TXS_TIMEOUT /* We had a transmission timeout */ | ||
104 | }; | ||
105 | |||
106 | typedef unsigned long io_port; /* type definition for an 'io port address' */ | ||
107 | |||
108 | /* SCC statistical information */ | ||
109 | |||
110 | struct scc_stat { | ||
111 | long rxints; /* Receiver interrupts */ | ||
112 | long txints; /* Transmitter interrupts */ | ||
113 | long exints; /* External/status interrupts */ | ||
114 | long spints; /* Special receiver interrupts */ | ||
115 | |||
116 | long txframes; /* Packets sent */ | ||
117 | long rxframes; /* Number of Frames Actually Received */ | ||
118 | long rxerrs; /* CRC Errors */ | ||
119 | long txerrs; /* KISS errors */ | ||
120 | |||
121 | unsigned int nospace; /* "Out of buffers" */ | ||
122 | unsigned int rx_over; /* Receiver Overruns */ | ||
123 | unsigned int tx_under; /* Transmitter Underruns */ | ||
124 | |||
125 | unsigned int tx_state; /* Transmitter state */ | ||
126 | int tx_queued; /* tx frames enqueued */ | ||
127 | |||
128 | unsigned int maxqueue; /* allocated tx_buffers */ | ||
129 | unsigned int bufsize; /* used buffersize */ | ||
130 | }; | ||
131 | |||
132 | struct scc_modem { | ||
133 | long speed; /* Line speed, bps */ | ||
134 | char clocksrc; /* 0 = DPLL, 1 = external, 2 = divider */ | ||
135 | char nrz; /* NRZ instead of NRZI */ | ||
136 | }; | ||
137 | |||
138 | struct scc_kiss_cmd { | ||
139 | int command; /* one of the KISS-Commands defined above */ | ||
140 | unsigned param; /* KISS-Param */ | ||
141 | }; | ||
142 | |||
143 | struct scc_hw_config { | ||
144 | io_port data_a; /* data port channel A */ | ||
145 | io_port ctrl_a; /* control port channel A */ | ||
146 | io_port data_b; /* data port channel B */ | ||
147 | io_port ctrl_b; /* control port channel B */ | ||
148 | io_port vector_latch; /* INTACK-Latch (#) */ | ||
149 | io_port special; /* special function port */ | ||
150 | |||
151 | int irq; /* irq */ | ||
152 | long clock; /* clock */ | ||
153 | char option; /* command for function port */ | ||
154 | |||
155 | char brand; /* hardware type */ | ||
156 | char escc; /* use ext. features of a 8580/85180/85280 */ | ||
157 | }; | ||
158 | |||
159 | /* (#) only one INTACK latch allowed. */ | ||
160 | |||
161 | |||
162 | struct scc_mem_config { | ||
163 | unsigned int dummy; | ||
164 | unsigned int bufsize; | ||
165 | }; | ||
166 | |||
167 | struct scc_calibrate { | ||
168 | unsigned int time; | ||
169 | unsigned char pattern; | ||
170 | }; | ||
171 | |||
172 | #ifdef __KERNEL__ | ||
173 | 7 | ||
174 | enum {TX_OFF, TX_ON}; /* command for scc_key_trx() */ | 8 | enum {TX_OFF, TX_ON}; /* command for scc_key_trx() */ |
175 | 9 | ||
@@ -248,5 +82,4 @@ struct scc_channel { | |||
248 | spinlock_t lock; /* Channel guard lock */ | 82 | spinlock_t lock; /* Channel guard lock */ |
249 | }; | 83 | }; |
250 | 84 | ||
251 | #endif /* defined(__KERNEL__) */ | ||
252 | #endif /* defined(_SCC_H) */ | 85 | #endif /* defined(_SCC_H) */ |