RTEMS  5.1
mc68681.h
1 /*
2  *
3  * COPYRIGHT (c) 1989-1999.
4  * On-Line Applications Research Corporation (OAR).
5  *
6  * The license and distribution terms for this file may be
7  * found in the file LICENSE in this distribution or at
8  * http://www.rtems.org/license/LICENSE.
9  */
10 
11 #ifndef _MC68681_H_
12 #define _MC68681_H_
13 
14 #include <rtems/termiostypes.h>
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 /*
21  * These are just used in the interface between this driver and
22  * the read/write register routines when accessing the first
23  * control port.
24  */
25 
26 #define MC68681_STATUS 1
27 #define MC68681_RX_BUFFER 3
28 
29 #define MC68681_MODE 0
30 #define MC68681_CLOCK_SELECT 1
31 #define MC68681_COMMAND 2
32 #define MC68681_TX_BUFFER 3
33 
34 /*
35  * Data Port bit map configuration
36  *
37  * D0 : Baud Rate Set Selection
38  * D1 - D2 : Extended Baud Rate Setting
39  */
40 
41 #define MC68681_DATA_BAUD_RATE_SET_1 0 /* ACR[7] = 0 */
42 #define MC68681_DATA_BAUD_RATE_SET_2 1 /* ACR[7] = 1 */
43 
44 #define MC68681_XBRG_IGNORED (0 << 1)
45 #define MC68681_XBRG_ENABLED (1 << 1)
46 #define MC68681_XBRG_DISABLED (2 << 1)
47 #define MC68681_XBRG_MASK (3 << 1)
48 
49 /*
50  * Custom baud rate table information
51  */
52 
53 typedef unsigned char mc68681_baud_t;
54 typedef mc68681_baud_t mc68681_baud_table_t[RTEMS_TERMIOS_NUMBER_BAUD_RATES];
55 
56 #define MC68681_BAUD_NOT_VALID 0xFF
57 
58 extern mc68681_baud_t
59  mc68681_baud_rate_table[4][RTEMS_TERMIOS_NUMBER_BAUD_RATES];
60 
61 
62 /*
63  * Driver function table
64  */
65 
66 extern const console_fns mc68681_fns;
67 extern const console_fns mc68681_fns_polled;
68 
69 /*
70  * Default register access routines
71  */
72 
73 uint8_t mc68681_get_register( /* registers are at 1 byte boundaries */
74  uintptr_t ulCtrlPort, /* and accessed as bytes */
75  uint8_t ucRegNum
76 );
77 
78 void mc68681_set_register(
79  uintptr_t ulCtrlPort,
80  uint8_t ucRegNum,
81  uint8_t ucData
82 );
83 
84 uint8_t mc68681_get_register_2( /* registers are at 2 byte boundaries */
85  uintptr_t ulCtrlPort, /* and accessed as bytes */
86  uint8_t ucRegNum
87 );
88 
89 void mc68681_set_register_2(
90  uintptr_t ulCtrlPort,
91  uint8_t ucRegNum,
92  uint8_t ucData
93 );
94 
95 uint8_t mc68681_get_register_4( /* registers are at 4 byte boundaries */
96  uintptr_t ulCtrlPort, /* and accessed as bytes */
97  uint8_t ucRegNum
98 );
99 
100 void mc68681_set_register_4(
101  uintptr_t ulCtrlPort,
102  uint8_t ucRegNum,
103  uint8_t ucData
104 );
105 
106 uint8_t mc68681_get_register_8( /* registers are at 8 byte boundaries */
107  uintptr_t ulCtrlPort, /* and accessed as bytes */
108  uint8_t ucRegNum
109 );
110 
111 void mc68681_set_register_8(
112  uintptr_t ulCtrlPort,
113  uint8_t ucRegNum,
114  uint8_t ucData
115 );
116 
117 
118 #ifdef __cplusplus
119 }
120 #endif
121 
122 #endif /* _MC68681_H_ */
Definition: serial.h:76