source: rtems/c/src/lib/libbsp/m68k/mrm332/console/sci.h @ 65c6425

4.115
Last change on this file since 65c6425 was 65c6425, checked in by Joel Sherrill <joel.sherrill@…>, on 05/03/12 at 17:24:46

Remove CVS Id Strings (manual edits after script)

These modifications were required by hand after running the script.
In some cases, the file names did not match patterns. In others,
the format of the file did not match any common patterns.

  • Property mode set to 100644
File size: 10.6 KB
Line 
1/****************************************************************************
2* File:     sci.h
3*
4* Desc:     This is the include file for the serial communications interface.
5*
6* Note:     See bsp.h,confdefs.h,system.h for installing drivers into RTEMS.
7*
8****************************************************************************/
9
10#ifndef _sci_h_
11#define _sci_h_
12
13/*******************************************************************************
14  IOCTL commands for the sci driver.
15  I'm still working on these...
16*******************************************************************************/
17
18#define SCI_IOCTL_PARITY_NONE           0x00    /* no parity bit after the data bits */
19#define SCI_IOCTL_PARITY_ODD            0x01    /* parity bit added after data bits */
20#define SCI_IOCTL_PARITY_EVEN           0x02    /* parity bit added after data bits */
21#define SCI_IOCTL_PARITY_MARK           0x03    /* parity bit is lo, -12 volts, logical 1 */
22#define SCI_IOCTL_PARITY_SPACE          0x04    /* parity bit is hi, +12 volts, logical 0 */
23#define SCI_IOCTL_PARITY_FORCED_ON      0x03    /* parity bit is forced hi or lo */
24#define SCI_IOCTL_PARITY_FORCED_OFF     0x04    /* parity bit is forced hi or lo */
25
26#define SCI_IOCTL_BAUD_RATE             0x20    /* set the baud rate, arg is baud */
27
28#define SCI_IOCTL_DATA_BITS             0x30    /* set the data bits, arg is # bits */
29
30#define SCI_IOCTL_STOP_BITS_1           0x40    /* 1 stop bit after char frame */
31#define SCI_IOCTL_STOP_BITS_2           0x41    /* 2 stop bit after char frame */
32
33#define SCI_IOCTL_MODE_NORMAL           0x50    /* normal operating mode */
34#define SCI_IOCTL_MODE_LOOP             0x51    /* internal loopback mode */
35
36#define SCI_IOCTL_FLOW_NONE             0x60    /* no flow control */
37#define SCI_IOCTL_FLOW_RTS_CTS          0x61    /* hardware flow control */
38
39#define SCI_IOCTL_SEND_BREAK            0x70    /* send an rs-232 break */
40
41#define SCI_IOCTL_MODE_1200             0x80    /* 1200,n,8,1 download mode */
42#define SCI_IOCTL_MODE_9600             0x81    /* 9600,n,8,1 download mode */
43#define SCI_IOCTL_MODE_9_BIT            0x82    /* 9600,forced,8,1 command mode */
44
45
46/*******************************************************************************
47  SCI Registers
48*******************************************************************************/
49
50/* SCI Control Register 0  (SCCR0)  $FFFC08
51
52    8 4 2 1 - 8 4 2 1 - 8 4 2 1 - 8 4 2 1
53    ^ ^ ^ ^   ^ ^ ^ ^   ^ ^ ^ ^   ^ ^ ^ ^
54    | | | |   | | | |   | | | |   | | | |
55    | | | |   | | | |   | | | |   | | | +-----   0 baud rate divisor
56    | | | |   | | | |   | | | |   | | +-------   1 baud rate divisor
57    | | | |   | | | |   | | | |   | +---------   2 baud rate divisor
58    | | | |   | | | |   | | | |   +-----------   3 baud rate divisor
59    | | | |   | | | |   | | | |
60    | | | |   | | | |   | | | +---------------   4 baud rate divisor
61    | | | |   | | | |   | | +-----------------   5 baud rate divisor
62    | | | |   | | | |   | +-------------------   6 baud rate divisor
63    | | | |   | | | |   +---------------------   7 baud rate divisor
64    | | | |   | | | |
65    | | | |   | | | +-------------------------   8 baud rate divisor
66    | | | |   | | +---------------------------   9 baud rate divisor
67    | | | |   | +-----------------------------  10 baud rate divisor
68    | | | |   +-------------------------------  11 baud rate divisor
69    | | | |
70    | | | +-----------------------------------  12 baud rate divisor
71    | | +-------------------------------------  13 unused
72    | +---------------------------------------  14 unused
73    +-----------------------------------------  15 unused
74
75    0 0 0 0 - 0 0 0 0 - 0 0 0 0 - 0 1 0 0       reset value - (64k baud?)
76 */
77
78#define SCI_BAUD_57_6K            9
79#define SCI_BAUD_38_4K           14
80#define SCI_BAUD_19_2K           27
81#define SCI_BAUD_9600            55
82#define SCI_BAUD_4800           109
83#define SCI_BAUD_2400           218
84#define SCI_BAUD_1200           437
85
86
87/*  SCI Control Register 1  (SCCR1)  $FFFC0A
88
89    8 4 2 1 - 8 4 2 1 - 8 4 2 1 - 8 4 2 1
90    ^ ^ ^ ^   ^ ^ ^ ^   ^ ^ ^ ^   ^ ^ ^ ^
91    | | | |   | | | |   | | | |   | | | |
92    | | | |   | | | |   | | | |   | | | +-----   0 send a break
93    | | | |   | | | |   | | | |   | | +-------   1 rcvr wakeup mode
94    | | | |   | | | |   | | | |   | +---------   2 rcvr enable
95    | | | |   | | | |   | | | |   +-----------   3 xmtr enable
96    | | | |   | | | |   | | | |
97    | | | |   | | | |   | | | +---------------   4 idle line intr enable
98    | | | |   | | | |   | | +-----------------   5 rcvr intr enable
99    | | | |   | | | |   | +-------------------   6 xmit complete intr enable
100    | | | |   | | | |   +---------------------   7 xmtr intr enable
101    | | | |   | | | |
102    | | | |   | | | +-------------------------   8 wakeup on address mark
103    | | | |   | | +---------------------------   9 mode 1=9 bits, 0=8 bits
104    | | | |   | +-----------------------------  10 parity enable 1=on, 0=off
105    | | | |   +-------------------------------  11 parity type 1=odd, 0=even
106    | | | |
107    | | | +-----------------------------------  12 idle line select
108    | | +-------------------------------------  13 wired-or mode
109    | +---------------------------------------  14 loop mode
110    +-----------------------------------------  15 unused
111
112    0 0 0 0 - 0 0 0 0 - 0 0 0 0 - 0 0 0 0       reset value
113*/
114
115#define SCI_SEND_BREAK          0x0001          /* 0000-0000-0000-0001 */
116#define SCI_RCVR_WAKEUP         0x0002          /* 0000-0000-0000-0010 */
117#define SCI_ENABLE_RCVR         0x0004          /* 0000-0000-0000-0100 */
118#define SCI_ENABLE_XMTR         0x0008          /* 0000-0000-0000-1000 */
119
120#define SCI_DISABLE_RCVR        0xFFFB          /* 1111-1111-1111-1011 */
121#define SCI_DISABLE_XMTR        0xFFF7          /* 1111-1111-1111-0111 */
122
123#define SCI_ENABLE_INT_IDLE     0x0010          /* 0000-0000-0001-0000 */
124#define SCI_ENABLE_INT_RX       0x0020          /* 0000-0000-0010-0000 */
125#define SCI_ENABLE_INT_TX_DONE  0x0040          /* 0000-0000-0100-0000 */
126#define SCI_ENABLE_INT_TX       0x0080          /* 0000-0000-1000-0000 */
127
128#define SCI_DISABLE_INT_ALL     0xFF00          /* 1111-1111-0000-0000 ??? */
129
130#define SCI_DISABLE_INT_RX      0xFFDF          /* 1111-1111-1101-1111 */
131#define SCI_CLEAR_RX_INT        0xFFBF          /* 1111-1111-1011-1111 */
132#define SCI_DISABLE_INT_TX      0xFF7F          /* 1111-1111-0111-1111 */
133#define SCI_CLEAR_TDRE          0xFEFF          /* 1111-1110-1111-1111 */
134
135#define SCI_RCVR_WAKE_ON_MARK   0x0100          /* 0000-0001-0000-0000 */
136#define SCI_9_DATA_BITS         0x0200          /* 0000-0010-0000-0000 */
137#define SCI_PARITY_ENABLE       0x0400          /* 0000-0100-0000-0000 */
138#define SCI_PARITY_ODD          0x0800          /* 0000-1000-0000-0000 */
139
140#define SCI_RCVR_WAKE_ON_IDLE   0xFEFF          /* 1111-1110-1111-1111 */
141#define SCI_8_DATA_BITS         0xFDFF          /* 1111-1101-1111-1111 */
142#define SCI_PARITY_DISABLE      0xFBFF          /* 1111-1011-1111-1111 */
143#define SCI_PARITY_EVEN         0xF7FF          /* 1111-0111-1111-1111 */
144
145#define SCI_PARITY_NONE         0xF3FF          /* 1111-0011-1111-1111 */
146
147#define SCI_IDLE_LINE_LONG      0x1000          /* 0001-0000-0000-0000 */
148#define SCI_TXD_OPEN_DRAIN      0x2000          /* 0010-0000-0000-0000 */
149#define SCI_LOOPBACK_MODE       0x4000          /* 0100-0000-0000-0000 */
150#define SCI_SCCR1_UNUSED        0x8000          /* 1000-0000-0000-0000 */
151
152
153/*  SCI Status Register  (SCSR)  $FFFC0C
154
155    8 4 2 1 - 8 4 2 1 - 8 4 2 1 - 8 4 2 1
156    ^ ^ ^ ^   ^ ^ ^ ^   ^ ^ ^ ^   ^ ^ ^ ^
157    | | | |   | | | |   | | | |   | | | |
158    | | | |   | | | |   | | | |   | | | +-----   0 PF - parity error
159    | | | |   | | | |   | | | |   | | +-------   1 FE - framing error
160    | | | |   | | | |   | | | |   | +---------   2 NF - noise flag
161    | | | |   | | | |   | | | |   +-----------   3 OR - overrun flag
162    | | | |   | | | |   | | | |
163    | | | |   | | | |   | | | +---------------   4 IDLE - idle line detected
164    | | | |   | | | |   | | +-----------------   5 RAF  - rcvr active flag
165    | | | |   | | | |   | +-------------------   6 RDRF - rcv data reg full
166    | | | |   | | | |   +---------------------   7 TC   - xmt complete flag
167    | | | |   | | | |
168    | | | |   | | | +-------------------------   8 TDRE - xmt data reg empty
169    | | | |   | | +---------------------------   9 always zero
170    | | | |   | +-----------------------------  10 always zero
171    | | | |   +-------------------------------  11 always zero
172    | | | |
173    | | | +-----------------------------------  12 always zero
174    | | +-------------------------------------  13 always zero
175    | +---------------------------------------  14 always zero
176    +-----------------------------------------  15 always zero
177
178    0 0 0 0 - 0 0 0 1 - 1 0 0 0 - 0 0 0 0       reset value
179*/
180
181#define SCI_ERROR_PARITY        0x0001          /* 0000-0000-0000-0001 */
182#define SCI_ERROR_FRAMING       0x0002          /* 0000-0000-0000-0010 */
183#define SCI_ERROR_NOISE         0x0004          /* 0000-0000-0000-0100 */
184#define SCI_ERROR_OVERRUN       0x0008          /* 0000-0000-0000-1000 */
185
186#define SCI_IDLE_LINE           0x0010          /* 0000-0000-0001-0000 */
187#define SCI_RCVR_ACTIVE         0x0020          /* 0000-0000-0010-0000 */
188#define SCI_RCVR_READY          0x0040          /* 0000-0000-0100-0000 */
189#define SCI_XMTR_IDLE           0x0080          /* 0000-0000-1000-0000 */
190
191#define SCI_CLEAR_RX_INT        0xFFBF          /* 1111-1111-1011-1111 */
192
193#define SCI_XMTR_READY          0x0100          /* 0000-0001-0000-0000 */
194
195#define SCI_CLEAR_TDRE          0xFEFF          /* 1111-1110-1111-1111 */
196
197#define SCI_XMTR_AVAILABLE      0x0180          /* 0000-0001-1000-0000 */
198
199
200
201/*******************************************************************************
202  Function prototypes
203*******************************************************************************/
204
205#ifdef __cplusplus
206extern "C" {
207#endif
208
209/* look at console_open to see how this is called */
210
211const rtems_termios_callbacks * SciGetTermiosHandlers( int32_t   polled );
212
213/* SCI interrupt */
214
215/*rtems_isr SciIsr( rtems_vector_number vector ); */
216
217/*int32_t   SciOpenPolled    ( int32_t   major, int32_t   minor, void *arg ); */
218/*int32_t   SciOpenInterrupt ( int32_t   major, int32_t   minor, void *arg ); */
219
220/*int32_t   SciClose         ( int32_t   major, int32_t   minor, void *arg ); */
221
222/*int32_t   SciWritePolled   ( int32_t   minor, const char *buf, int32_t   len ); */
223/*int32_t   SciWriteInterrupt( int32_t   minor, const char *buf, int32_t   len ); */
224
225/*int32_t   SciReadPolled    ( int32_t   minor ); */
226
227/*int32_t   SciSetAttributes ( int32_t   minor, const struct termios *t ); */
228
229#ifdef __cplusplus
230}
231#endif
232
233#endif  /* _sci_h_ */
Note: See TracBrowser for help on using the repository browser.