source: SVN/rincon/u-boot/board/bmw/ns16550.h @ 55

Last change on this file since 55 was 55, checked in by Tim Harvey, 22 months ago

rincon: added latest u-boot source

restored form server backup

Signed-off-by: Tim Harvey <tharvey@…>

File size: 2.7 KB
Line 
1/*
2 * NS16550 Serial Port
3 * originally from linux source (arch/ppc/boot/ns16550.h)
4 * modified slightly to
5 * have addresses as offsets from CFG_ISA_BASE
6 * added a few more definitions
7 * added prototypes for ns16550.c
8 * reduced no of com ports to 2
9 * modifications (c) Rob Taylor, Flying Pig Systems. 2000.
10 * further modified to support the 8245 duart
11 * modifications (c) Paul Jimenez, Musenki, Inc. 2001.
12 */
13
14
15struct NS16550 {
16        unsigned char rbrthrdlb;        /* 0 */
17        unsigned char ierdmb;           /* 1 */
18        unsigned char iirfcrafr;        /* 2 */
19        unsigned char lcr;              /* 3 */
20        unsigned char mcr;              /* 4 */
21        unsigned char lsr;              /* 5 */
22        unsigned char msr;              /* 6 */
23        unsigned char scr;              /* 7 */
24        unsigned char reserved[2];      /* 8 & 9 */
25        unsigned char dsr;              /* 10 */
26        unsigned char dcr;              /* 11 */
27};
28
29
30#define rbr rbrthrdlb
31#define thr rbrthrdlb
32#define dll rbrthrdlb
33#define ier ierdmb
34#define dlm ierdmb
35#define iir iirfcrafr
36#define fcr iirfcrafr
37#define afr iirfcrafr
38
39#define FCR_FIFO_EN     0x01    /*fifo enable */
40#define FCR_RXSR        0x02    /*reciever soft reset */
41#define FCR_TXSR        0x04    /*transmitter soft reset */
42#define FCR_DMS         0x08    /* DMA Mode Select */
43
44#define MCR_RTS         0x02    /* Readyu to Send */
45#define MCR_LOOP        0x10    /* Local loopback mode enable */
46/* #define MCR_DTR         0x01    noton 8245 duart */
47/* #define MCR_DMA_EN      0x04    noton 8245 duart */
48/* #define MCR_TX_DFR      0x08    noton 8245 duart */
49
50#define LCR_WLS_MSK 0x03        /* character length slect mask */
51#define LCR_WLS_5   0x00        /* 5 bit character length */
52#define LCR_WLS_6   0x01        /* 6 bit character length */
53#define LCR_WLS_7   0x02        /* 7 bit character length */
54#define LCR_WLS_8   0x03        /* 8 bit character length */
55#define LCR_STB     0x04        /* Number of stop Bits, off = 1, on = 1.5 or 2) */
56#define LCR_PEN     0x08        /* Parity eneble */
57#define LCR_EPS     0x10        /* Even Parity Select */
58#define LCR_STKP    0x20        /* Stick Parity */
59#define LCR_SBRK    0x40        /* Set Break */
60#define LCR_BKSE    0x80        /* Bank select enable - aka DLAB on 8245 */
61
62#define LSR_DR      0x01        /* Data ready */
63#define LSR_OE      0x02        /* Overrun */
64#define LSR_PE      0x04        /* Parity error */
65#define LSR_FE      0x08        /* Framing error */
66#define LSR_BI      0x10        /* Break */
67#define LSR_THRE    0x20        /* Xmit holding register empty */
68#define LSR_TEMT    0x40        /* Xmitter empty */
69#define LSR_ERR     0x80        /* Error */
70
71/* useful defaults for LCR*/
72#define LCR_8N1     0x03
73
74
75volatile struct NS16550 *NS16550_init (int chan, int baud_divisor);
76void NS16550_putc (volatile struct NS16550 *com_port, unsigned char c);
77unsigned char NS16550_getc (volatile struct NS16550 *com_port);
78int NS16550_tstc (volatile struct NS16550 *com_port);
79void NS16550_reinit (volatile struct NS16550 *com_port, int baud_divisor);
Note: See TracBrowser for help on using the repository browser.