FreeCalypso > hg > freecalypso-tools
comparison target-utils/include/ns16550.h @ 0:e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 11 Jun 2016 00:13:35 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:e7502631a0f9 |
---|---|
1 #ifndef __NS16550_H | |
2 #define __NS16550_H | |
3 | |
4 /* NS16550 registers */ | |
5 #define NS16550_RBR 0 | |
6 #define NS16550_THR 0 | |
7 #define NS16550_IER 1 | |
8 #define NS16550_IIR 2 | |
9 #define NS16550_FCR 2 | |
10 #define NS16550_LCR 3 | |
11 #define NS16550_MCR 4 | |
12 #define NS16550_LSR 5 | |
13 #define NS16550_MSR 6 | |
14 #define NS16550_SCR 7 | |
15 #define NS16550_DLL 0 | |
16 #define NS16550_DLM 1 | |
17 | |
18 #ifndef __ASSEMBLER__ | |
19 #include "types.h" | |
20 | |
21 struct ns16550_regs { | |
22 u8 datareg; | |
23 u8 ier; | |
24 u8 iir_fcr; | |
25 u8 lcr; | |
26 u8 mcr; | |
27 u8 lsr; | |
28 u8 msr; | |
29 u8 scr; | |
30 }; | |
31 #endif | |
32 | |
33 /* IER bits */ | |
34 #define NS16550_IER_EDSSI 0x08 | |
35 #define NS16550_IER_ELSI 0x04 | |
36 #define NS16550_IER_ETBEI 0x02 | |
37 #define NS16550_IER_ERBFI 0x01 | |
38 | |
39 /* IIR bits */ | |
40 #define NS16550_IIR_FIFOEN 0xC0 | |
41 #define NS16550_IIR_INTID 0x0E | |
42 #define NS16550_IIR_INT_RLS 0x06 | |
43 #define NS16550_IIR_INT_RDA 0x04 | |
44 #define NS16550_IIR_INT_CTO 0x0C | |
45 #define NS16550_IIR_INT_THRE 0x02 | |
46 #define NS16550_IIR_INT_MODEM 0x00 | |
47 #define NS16550_IIR_INTPEND 0x01 | |
48 | |
49 /* FCR bits */ | |
50 | |
51 #define NS16550_FCR_RXTR 0xC0 | |
52 #define NS16550_FCR_RXTR_1 0x00 | |
53 #define NS16550_FCR_RXTR_4 0x40 | |
54 #define NS16550_FCR_RXTR_8 0x80 | |
55 #define NS16550_FCR_RXTR_14 0xC0 | |
56 #define NS16550_FCR_DMAMODE 0x08 | |
57 #define NS16550_FCR_TXRST 0x04 | |
58 #define NS16550_FCR_RXRST 0x02 | |
59 #define NS16550_FCR_FIFOEN 0x01 | |
60 | |
61 /* LCR bits */ | |
62 #define NS16550_LCR_DLAB 0x80 | |
63 #define NS16550_LCR_BREAK 0x40 | |
64 #define NS16550_LCR_STICK 0x20 | |
65 #define NS16550_LCR_EPS 0x10 | |
66 #define NS16550_LCR_PEN 0x08 | |
67 #define NS16550_LCR_STB 0x04 | |
68 #define NS16550_LCR_WLS 0x03 | |
69 #define NS16550_LCR_WLS_5 0x00 | |
70 #define NS16550_LCR_WLS_6 0x01 | |
71 #define NS16550_LCR_WLS_7 0x02 | |
72 #define NS16550_LCR_WLS_8 0x03 | |
73 | |
74 /* MCR bits */ | |
75 #define NS16550_MCR_LOOP 0x10 | |
76 #define NS16550_MCR_OUT2 0x08 | |
77 #define NS16550_MCR_OUT1 0x04 | |
78 #define NS16550_MCR_RTS 0x02 | |
79 #define NS16550_MCR_DTR 0x01 | |
80 | |
81 /* LSR bits */ | |
82 #define NS16550_LSR_ERR 0x80 | |
83 #define NS16550_LSR_TEMP 0x40 | |
84 #define NS16550_LSR_THRE 0x20 | |
85 #define NS16550_LSR_BI 0x10 | |
86 #define NS16550_LSR_FE 0x08 | |
87 #define NS16550_LSR_PE 0x04 | |
88 #define NS16550_LSR_OE 0x02 | |
89 #define NS16550_LSR_DR 0x01 | |
90 | |
91 /* MSR bits */ | |
92 #define NS16550_MSR_DCD 0x80 | |
93 #define NS16550_MSR_RI 0x40 | |
94 #define NS16550_MSR_DSR 0x20 | |
95 #define NS16550_MSR_CTS 0x10 | |
96 #define NS16550_MSR_DDCD 0x08 | |
97 #define NS16550_MSR_TERI 0x04 | |
98 #define NS16550_MSR_DDSR 0x02 | |
99 #define NS16550_MSR_DCTS 0x01 | |
100 | |
101 #endif /* __NS16550_H */ |