FreeCalypso > hg > fc-magnetite
comparison src/gpf2/inc/gsi.h @ 1:864b8cc0cf63
src/gpf2: preened GPF goo from TCS211
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 25 Sep 2016 23:38:58 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
0:945cf7f506b2 | 1:864b8cc0cf63 |
---|---|
1 #ifndef GSI_H | |
2 #define GSI_H | |
3 /* | |
4 +----------------------------------------------------------------------------- | |
5 | Project : | |
6 | Modul : | |
7 +----------------------------------------------------------------------------- | |
8 | Copyright 2002 Texas Instruments Berlin, AG | |
9 | All rights reserved. | |
10 | | |
11 | This file is confidential and a trade secret of Texas | |
12 | Instruments Berlin, AG | |
13 | The receipt of or possession of this file does not convey | |
14 | any rights to reproduce or disclose its contents or to | |
15 | manufacture, use, or sell anything it may describe, in | |
16 | whole, or in part, without the specific written consent of | |
17 | Texas Instruments Berlin, AG. | |
18 +----------------------------------------------------------------------------- | |
19 | Purpose : These definitions provide a driver interface to multiple serial | |
20 | ports. | |
21 +----------------------------------------------------------------------------- | |
22 */ | |
23 | |
24 | |
25 /*==== INCLUDES =============================================================*/ | |
26 | |
27 #include <gdi.h> | |
28 | |
29 /*==== DEFINITIONS ==========================================================*/ | |
30 | |
31 /* | |
32 * Baud rates | |
33 */ | |
34 #define GSI_BAUD_AUTO ( 1) | |
35 #define GSI_BAUD_75 ( 2) | |
36 #define GSI_BAUD_150 ( 3) | |
37 #define GSI_BAUD_300 ( 4) | |
38 #define GSI_BAUD_600 ( 5) | |
39 #define GSI_BAUD_1200 ( 6) | |
40 #define GSI_BAUD_2400 ( 7) | |
41 #define GSI_BAUD_4800 ( 8) | |
42 #define GSI_BAUD_7200 ( 9) | |
43 #define GSI_BAUD_9600 (10) | |
44 #define GSI_BAUD_14400 (11) | |
45 #define GSI_BAUD_19200 (12) | |
46 #define GSI_BAUD_28800 (13) | |
47 #define GSI_BAUD_33900 (14) | |
48 #define GSI_BAUD_38400 (15) | |
49 #define GSI_BAUD_57600 (16) | |
50 #define GSI_BAUD_115200 (17) | |
51 #define GSI_BAUD_203125 (18) | |
52 #define GSI_BAUD_406250 (19) | |
53 #define GSI_BAUD_812500 (20) | |
54 | |
55 /* | |
56 * Bits per character | |
57 */ | |
58 #define GSI_CHAR5 ( 5) | |
59 #define GSI_CHAR6 ( 6) | |
60 #define GSI_CHAR7 ( 7) | |
61 #define GSI_CHAR8 ( 8) | |
62 | |
63 /* | |
64 * Stop bits | |
65 */ | |
66 #define GSI_STOP1 ( 1) | |
67 #define GSI_STOP15 (15) | |
68 #define GSI_STOP2 ( 2) | |
69 | |
70 /* | |
71 * Parity bit | |
72 */ | |
73 #define GSI_PARITYNO ( 1) | |
74 #define GSI_PARITYODD ( 2) | |
75 #define GSI_PARITYEVEN ( 3) | |
76 #define GSI_PARITYSPACE ( 4) | |
77 | |
78 /* | |
79 * Flow control | |
80 */ | |
81 #define GSI_FLOWNO ( 1) | |
82 #define GSI_FLOWHW ( 2) | |
83 #define GSI_FLOWSW ( 3) | |
84 | |
85 /* | |
86 * Bit positions | |
87 */ | |
88 #define GSI_BRKLEN_POS ( 0) | |
89 #define GSI_BRK_POS (25) | |
90 #define GSI_DISC_POS (26) | |
91 #define GSI_ESC_POS (27) | |
92 #define GSI_RING_POS (28) | |
93 #define GSI_X_POS (29) | |
94 #define GSI_SB_POS (30) | |
95 #define GSI_SA_POS (31) | |
96 | |
97 /* | |
98 * Bit masks | |
99 */ | |
100 #define GSI_BRKLEN_MASK (255UL << GSI_BRKLEN_POS) | |
101 #define GSI_BRK_MASK (1UL << GSI_BRK_POS) | |
102 #define GSI_DISC_MASK (1UL << GSI_DISC_POS) | |
103 #define GSI_ESC_MASK (1UL << GSI_ESC_POS) | |
104 #define GSI_RING_MASK (1UL << GSI_RING_POS) | |
105 #define GSI_X_MASK (1UL << GSI_X_POS) | |
106 #define GSI_SB_MASK (1UL << GSI_SB_POS) | |
107 #define GSI_SA_MASK (1UL << GSI_SA_POS) | |
108 | |
109 /* | |
110 * Size of the circular buffers used in the driver. | |
111 */ | |
112 #define GSI_MAX_BUFFER_SIZE (512) | |
113 | |
114 /*==== TYPES ================================================================*/ | |
115 | |
116 /* | |
117 * Device Control Block | |
118 */ | |
119 typedef struct { | |
120 USHORT Baud; | |
121 UBYTE DataBits; | |
122 UBYTE StopBits; | |
123 UBYTE Parity; | |
124 UBYTE RxFlowControl; | |
125 UBYTE TxFlowControl; | |
126 USHORT RxBufferSize; | |
127 USHORT TxBufferSize; | |
128 USHORT RxThreshold; | |
129 USHORT TxThreshold; | |
130 UBYTE XON; | |
131 UBYTE XOFF; | |
132 UBYTE EscChar; | |
133 USHORT GuardPeriod; | |
134 } T_GSI_DCB; | |
135 | |
136 /*==== FUNCTION PROTOTYPES ==================================================*/ | |
137 | |
138 #ifdef _TARGET_ | |
139 /* | |
140 +------------------------------------------------------------------------------ | |
141 | Function : GSI_Init | |
142 +------------------------------------------------------------------------------ | |
143 | Description : The function initializes the module and the connected serial | |
144 | device. | |
145 | | |
146 | Parameters : DeviceNo - serial device number | |
147 | DrvHandle - unique handle for this device | |
148 | CallbackFunc - callback function for this device | |
149 | DrvInfo - pointer to the driver parameters | |
150 | | |
151 | Return : DRV_OK - Initialization successful | |
152 | DRV_INVALID_PARAMS - The specified device does not exist | |
153 | DRV_INTERNAL_ERROR - Internal driver error | |
154 | DRV_INITIALIZED - Driver already initialized | |
155 | | |
156 +------------------------------------------------------------------------------ | |
157 */ | |
158 extern USHORT GSI_Init (UBYTE DeviceNo, | |
159 USHORT DrvHANDLE, | |
160 T_DRV_CB_FUNC CallbackFunc, | |
161 T_DRV_EXPORT **DrvInfo); | |
162 | |
163 /* | |
164 +------------------------------------------------------------------------------ | |
165 | Function : GSI_Exit | |
166 +------------------------------------------------------------------------------ | |
167 | Description : The function is called when the driver functionality is no | |
168 | longer required. The driver terminates regardless of any | |
169 | outstanding data to be sent. | |
170 | | |
171 | Parameters : DeviceNo - serial device number | |
172 | | |
173 | Return : no return value | |
174 | | |
175 +------------------------------------------------------------------------------ | |
176 */ | |
177 extern void GSI_Exit (UBYTE DeviceNo); | |
178 | |
179 /* | |
180 +------------------------------------------------------------------------------ | |
181 | Function : GSI_Read | |
182 +------------------------------------------------------------------------------ | |
183 | Description : This function copies received data into a caller provided | |
184 | buffer and returns the line status. It should always return | |
185 | immediately after copying the data, without waiting for any | |
186 | more data. | |
187 | | |
188 | Parameters : DeviceNo - serial device number | |
189 | Buffer - buffer to copy the data | |
190 | Length - On call: size of Buffer; On return: copied bytes | |
191 | State - line states of the serial connection | |
192 | | |
193 | Return : DRV_OK - Function successful | |
194 | DRV_INVALID_PARAMS - The specified device does not exist | |
195 | DRV_INTERNAL_ERROR - Internal driver error | |
196 | DRV_NOTCONFIGURED - The driver is not yet configured | |
197 | | |
198 +------------------------------------------------------------------------------ | |
199 */ | |
200 extern USHORT GSI_Read (UBYTE DeviceNo, | |
201 void *Buffer, | |
202 USHORT *Length, | |
203 ULONG *State); | |
204 | |
205 /* | |
206 +------------------------------------------------------------------------------ | |
207 | Function : GSI_Write | |
208 +------------------------------------------------------------------------------ | |
209 | Description : This functions copies the provided data into the buffer of the | |
210 | driver and sets the line states. This function must return | |
211 | immediately after copying, even if there is not enough space in | |
212 | the driver buffer to copy all provided data. | |
213 | | |
214 | Parameters : DeviceNo - serial device number | |
215 | Buffer - buffer containing the data | |
216 | Length - On call: size of data; On return: copied bytes | |
217 | State - line states of the serial connection | |
218 | Mask - manipulated State bits | |
219 | | |
220 | Return : DRV_OK - Function successful | |
221 | DRV_INVALID_PARAMS - The specified device does not exist | |
222 | DRV_INTERNAL_ERROR - Internal driver error | |
223 | DRV_NOTCONFIGURED - The driver is not yet configured | |
224 | | |
225 +------------------------------------------------------------------------------ | |
226 */ | |
227 extern USHORT GSI_Write (UBYTE DeviceNo, | |
228 void *Buffer, | |
229 USHORT *Length, | |
230 ULONG State, | |
231 ULONG Mask); | |
232 | |
233 /* | |
234 +------------------------------------------------------------------------------ | |
235 | Function : GSI_Look | |
236 +------------------------------------------------------------------------------ | |
237 | Description : This function copies received data into a caller provided | |
238 | buffer without delete the data in the driver buffer. It should | |
239 | always return immediately after copying the data, without | |
240 | waiting for any more data. | |
241 | | |
242 | Parameters : DeviceNo - serial device number | |
243 | Buffer - buffer to copy the data | |
244 | Length - On call: size of Buffer; On return: copied bytes | |
245 | State - line states of the serial connection | |
246 | | |
247 | Return : DRV_OK - Function successful | |
248 | DRV_INVALID_PARAMS - The specified device does not exist | |
249 | DRV_INTERNAL_ERROR - Internal driver error | |
250 | DRV_NOTCONFIGURED - The driver is not yet configured | |
251 | | |
252 +------------------------------------------------------------------------------ | |
253 */ | |
254 extern USHORT GSI_Look (UBYTE DeviceNo, | |
255 void *Buffer, | |
256 USHORT *Length, | |
257 ULONG *State); | |
258 | |
259 /* | |
260 +------------------------------------------------------------------------------ | |
261 | Function : GSI_Clear | |
262 +------------------------------------------------------------------------------ | |
263 | Description : This function is used to clear the device internal buffers. | |
264 | | |
265 | Parameters : DeviceNo - serial device number | |
266 | BufferType - buffer to be cleared | |
267 | | |
268 | Return : DRV_OK - Function successful | |
269 | DRV_INVALID_PARAMS - The specified device does not exist | |
270 | DRV_INTERNAL_ERROR - Internal driver error | |
271 | DRV_INPROCESS - The driver is busy clearing the buffers | |
272 | | |
273 +------------------------------------------------------------------------------ | |
274 */ | |
275 extern USHORT GSI_Clear (UBYTE DeviceNo, | |
276 USHORT BufferType); | |
277 | |
278 /* | |
279 +------------------------------------------------------------------------------ | |
280 | Function : GSI_Flush | |
281 +------------------------------------------------------------------------------ | |
282 | Description : This function is used to flush the device internal transmit | |
283 | buffer. | |
284 | | |
285 | Parameters : DeviceNo - serial device number | |
286 | | |
287 | Return : DRV_OK - Function successful | |
288 | DRV_INVALID_PARAMS - The specified device does not exist | |
289 | DRV_INTERNAL_ERROR - Internal driver error | |
290 | DRV_INPROCESS - The driver is busy clearing the buffers | |
291 | DRV_NOTCONFIGURED - The driver is not yet configured | |
292 | | |
293 +------------------------------------------------------------------------------ | |
294 */ | |
295 extern USHORT GSI_Flush (UBYTE DeviceNo); | |
296 | |
297 /* | |
298 +------------------------------------------------------------------------------ | |
299 | Function : GSI_SetSignal | |
300 +------------------------------------------------------------------------------ | |
301 | Description : This function enables indication signals from the driver. These | |
302 | signals are sent via the device callback function. | |
303 | | |
304 | Parameters : DeviceNo - serial device number | |
305 | SignalType - Signal type to be set | |
306 | | |
307 | Return : DRV_OK - Function successful | |
308 | DRV_INVALID_PARAMS - parameters out of range | |
309 | DRV_INTERNAL_ERROR - Internal driver error | |
310 | DRV_SIGFCT_NOTAVAILABLE - no event signaling functionality | |
311 | | |
312 +------------------------------------------------------------------------------ | |
313 */ | |
314 extern USHORT GSI_SetSignal (UBYTE DeviceNo, | |
315 USHORT SignalType); | |
316 | |
317 /* | |
318 +------------------------------------------------------------------------------ | |
319 | Function : GSI_ResetSignal | |
320 +------------------------------------------------------------------------------ | |
321 | Description : This function disables indication signals from the driver. | |
322 | | |
323 | Parameters : DeviceNo - serial device number | |
324 | SignalType - Signal type to be reset | |
325 | | |
326 | Return : DRV_OK - Function successful | |
327 | DRV_INVALID_PARAMS - parameters out of range | |
328 | DRV_INTERNAL_ERROR - Internal driver error | |
329 | DRV_SIGFCT_NOTAVAILABLE - no event signaling functionality | |
330 | | |
331 +------------------------------------------------------------------------------ | |
332 */ | |
333 extern USHORT GSI_ResetSignal (UBYTE DeviceNo, | |
334 USHORT SignalType); | |
335 | |
336 /* | |
337 +------------------------------------------------------------------------------ | |
338 | Function : GSI_SetConfig | |
339 +------------------------------------------------------------------------------ | |
340 | Description : This function configures the serial device. | |
341 | | |
342 | Parameters : DeviceNo - serial device number | |
343 | DCBPtr - pointer to the driver control block | |
344 | | |
345 | Return : DRV_OK - Function successful | |
346 | DRV_INVALID_PARAMS - parameters out of range | |
347 | DRV_INTERNAL_ERROR - Internal driver error | |
348 | | |
349 +------------------------------------------------------------------------------ | |
350 */ | |
351 extern USHORT GSI_SetConfig (UBYTE DeviceNo, | |
352 T_GSI_DCB *DCBPtr); | |
353 | |
354 /* | |
355 +------------------------------------------------------------------------------ | |
356 | Function : GSI_GetConfig | |
357 +------------------------------------------------------------------------------ | |
358 | Description : This function reads the serial device configuration. | |
359 | | |
360 | Parameters : DeviceNo - serial device number | |
361 | DCBPtr - pointer to the driver control block | |
362 | | |
363 | Return : DRV_OK - Function successful | |
364 | DRV_INTERNAL_ERROR - Internal driver error | |
365 | DRV_NOTCONFIGURED - The driver is not yet configured | |
366 | | |
367 +------------------------------------------------------------------------------ | |
368 */ | |
369 extern USHORT GSI_GetConfig (UBYTE DeviceNo, | |
370 T_GSI_DCB *DCBPtr); | |
371 | |
372 /* | |
373 +------------------------------------------------------------------------------ | |
374 | Function : GSI_Callback | |
375 +------------------------------------------------------------------------------ | |
376 | Description : This function is needed for cascaded drivers. This function | |
377 | must not be confused with the parameter CallbackFunc passed to | |
378 | GSI_Init(). | |
379 | | |
380 | Parameters : Signal - pointer to the signal information data | |
381 | | |
382 | Return : no return value | |
383 | | |
384 +------------------------------------------------------------------------------ | |
385 */ | |
386 extern void GSI_Callback (T_DRV_SIGNAL *Signal); | |
387 | |
388 #endif /* _TARGET_ */ | |
389 #endif /* !GSI_H */ |