RTEMS 5.2
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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
17extern "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
53typedef unsigned char mc68681_baud_t;
54typedef mc68681_baud_t mc68681_baud_table_t[RTEMS_TERMIOS_NUMBER_BAUD_RATES];
55
56#define MC68681_BAUD_NOT_VALID 0xFF
57
58extern mc68681_baud_t
59 mc68681_baud_rate_table[4][RTEMS_TERMIOS_NUMBER_BAUD_RATES];
60
61
62/*
63 * Driver function table
64 */
65
66extern const console_fns mc68681_fns;
67extern const console_fns mc68681_fns_polled;
68
69/*
70 * Default register access routines
71 */
72
73uint8_t mc68681_get_register( /* registers are at 1 byte boundaries */
74 uintptr_t ulCtrlPort, /* and accessed as bytes */
75 uint8_t ucRegNum
76);
77
78void mc68681_set_register(
79 uintptr_t ulCtrlPort,
80 uint8_t ucRegNum,
81 uint8_t ucData
82);
83
84uint8_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
89void mc68681_set_register_2(
90 uintptr_t ulCtrlPort,
91 uint8_t ucRegNum,
92 uint8_t ucData
93);
94
95uint8_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
100void mc68681_set_register_4(
101 uintptr_t ulCtrlPort,
102 uint8_t ucRegNum,
103 uint8_t ucData
104);
105
106uint8_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
111void 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