RTEMS  5.0.0
ns16550_p.h
Go to the documentation of this file.
1 
6 /*
7  * COPYRIGHT (c) 1998 by Radstone Technology
8  *
9  *
10  * THIS FILE IS PROVIDED TO YOU, THE USER, "AS IS", WITHOUT WARRANTY OF ANY
11  * KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
12  * IMPLIED WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK
13  * AS TO THE QUALITY AND PERFORMANCE OF ALL CODE IN THIS FILE IS WITH YOU.
14  *
15  * You are hereby granted permission to use, copy, modify, and distribute
16  * this file, provided that this notice, plus the above copyright notice
17  * and disclaimer, appears in all copies. Radstone Technology will provide
18  * no support for this code.
19  *
20  * COPYRIGHT (c) 1989-2012.
21  * On-Line Applications Research Corporation (OAR).
22  *
23  * The license and distribution terms for this file may be
24  * found in the file LICENSE in this distribution or at
25  * http://www.rtems.org/license/LICENSE.
26  */
27 
28 #ifndef _NS16550_P_H_
29 #define _NS16550_P_H_
30 
31 #ifndef ASM
32 #include <libchip/serial.h>
33 #endif
34 
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38 
39 /*
40  * Define NS16550_STATIC to nothing while debugging so the entry points
41  * will show up in the symbol table.
42  */
43 
44 #define NS16550_STATIC static
45 
46 #define NS16550_RECEIVE_BUFFER 0
47 #define NS16550_TRANSMIT_BUFFER 0
48 #define NS16550_DIVISOR_LATCH_L 0
49 #define NS16550_INTERRUPT_ENABLE 1
50 #define NS16550_DIVISOR_LATCH_M 1
51 #define NS16550_INTERRUPT_ID 2
52 #define NS16550_FIFO_CONTROL 2
53 #define NS16550_LINE_CONTROL 3
54 #define NS16550_MODEM_CONTROL 4
55 #define NS16550_LINE_STATUS 5
56 #define NS16550_MODEM_STATUS 6
57 #define NS16550_SCRATCH_PAD 7
58 #define NS16550_FRACTIONAL_DIVIDER 10
59 
60 /*
61  * Define serial port interrupt enable register structure.
62  */
63 
64 #define SP_INT_RX_ENABLE 0x01
65 #define SP_INT_TX_ENABLE 0x02
66 #define SP_INT_LS_ENABLE 0x04
67 #define SP_INT_MS_ENABLE 0x08
68 
69 #define NS16550_ENABLE_ALL_INTR (SP_INT_RX_ENABLE | SP_INT_TX_ENABLE)
70 #define NS16550_DISABLE_ALL_INTR 0x00
71 #define NS16550_ENABLE_ALL_INTR_EXCEPT_TX (SP_INT_RX_ENABLE)
72 
73 /*
74  * Define serial port interrupt ID register structure.
75  */
76 
77 #define SP_IID_0 0x01
78 #define SP_IID_1 0x02
79 #define SP_IID_2 0x04
80 #define SP_IID_3 0x08
81 
82 /*
83  * Define serial port fifo control register structure.
84  */
85 
86 #define SP_FIFO_ENABLE 0x01
87 #define SP_FIFO_RXRST 0x02
88 #define SP_FIFO_TXRST 0x04
89 #define SP_FIFO_DMA 0x08
90 #define SP_FIFO_RXLEVEL 0xc0
91 
92 #define SP_FIFO_SIZE 16
93 
94 /*
95  * Define serial port line control register structure.
96  */
97 
98 #define SP_LINE_SIZE 0x03
99 #define SP_LINE_STOP 0x04
100 #define SP_LINE_PAR 0x08
101 #define SP_LINE_ODD 0x10
102 #define SP_LINE_STICK 0x20
103 #define SP_LINE_BREAK 0x40
104 #define SP_LINE_DLAB 0x80
105 
106 /*
107  * Line status register character size definitions.
108  */
109 
110 #define FIVE_BITS 0x0 /* five bits per character */
111 #define SIX_BITS 0x1 /* six bits per character */
112 #define SEVEN_BITS 0x2 /* seven bits per character */
113 #define EIGHT_BITS 0x3 /* eight bits per character */
114 
115 /*
116  * Define serial port modem control register structure.
117  */
118 
119 #define SP_MODEM_DTR 0x01
120 #define SP_MODEM_RTS 0x02
121 #define SP_MODEM_IRQ 0x08
122 #define SP_MODEM_LOOP 0x10
123 #define SP_MODEM_DIV4 0x80
124 
125 /*
126  * Define serial port line status register structure.
127  */
128 
129 #define SP_LSR_RDY 0x01
130 #define SP_LSR_EOVRUN 0x02
131 #define SP_LSR_EPAR 0x04
132 #define SP_LSR_EFRAME 0x08
133 #define SP_LSR_BREAK 0x10
134 #define SP_LSR_THOLD 0x20
135 #define SP_LSR_TX 0x40
136 #define SP_LSR_EFIFO 0x80
137 
138 #ifdef __cplusplus
139 }
140 #endif
141 
142 #endif /* _NS16550_P_H_ */
The generic libchip serial driver interface.