Merge git://git.infradead.org/mtd-2.6
[linux-2.6] / include / asm-arm / arch-l7200 / serial_l7200.h
1 /*
2  * linux/include/asm-arm/arch-l7200/serial_l7200.h
3  *
4  * Copyright (c) 2000 Steven Hill (sjhill@cotw.com)
5  *
6  * Changelog:
7  *  05-09-2000  SJH     Created
8  */
9 #ifndef __ASM_ARCH_SERIAL_L7200_H
10 #define __ASM_ARCH_SERIAL_L7200_H
11
12 #include <asm/arch/memory.h>
13
14 /*
15  * This assumes you have a 3.6864 MHz clock for your UART.
16  */
17 #define BASE_BAUD 3686400
18
19 /*
20  * UART base register addresses
21  */
22 #define UART1_BASE      (IO_BASE + 0x00044000)
23 #define UART2_BASE      (IO_BASE + 0x00045000)
24
25 /*
26  * UART register offsets
27  */
28 #define UARTDR                  0x00    /* Tx/Rx data */
29 #define RXSTAT                  0x04    /* Rx status */
30 #define H_UBRLCR                0x08    /* mode register high */
31 #define M_UBRLCR                0x0C    /* mode reg mid (MSB of baud)*/
32 #define L_UBRLCR                0x10    /* mode reg low (LSB of baud)*/
33 #define UARTCON                 0x14    /* control register */
34 #define UARTFLG                 0x18    /* flag register */
35 #define UARTINTSTAT             0x1C    /* FIFO IRQ status register */
36 #define UARTINTMASK             0x20    /* FIFO IRQ mask register */
37
38 /*
39  * UART baud rate register values
40  */
41 #define BR_110                  0x827
42 #define BR_1200                 0x06e
43 #define BR_2400                 0x05f
44 #define BR_4800                 0x02f
45 #define BR_9600                 0x017
46 #define BR_14400                0x00f
47 #define BR_19200                0x00b
48 #define BR_38400                0x005
49 #define BR_57600                0x003
50 #define BR_76800                0x002
51 #define BR_115200               0x001
52
53 /*
54  * Receiver status register (RXSTAT) mask values
55  */
56 #define RXSTAT_NO_ERR           0x00    /* No error */
57 #define RXSTAT_FRM_ERR          0x01    /* Framing error */
58 #define RXSTAT_PAR_ERR          0x02    /* Parity error */
59 #define RXSTAT_OVR_ERR          0x04    /* Overrun error */
60
61 /*
62  * High byte of UART bit rate and line control register (H_UBRLCR) values
63  */
64 #define UBRLCR_BRK              0x01    /* generate break on tx */
65 #define UBRLCR_PEN              0x02    /* enable parity */
66 #define UBRLCR_PDIS             0x00    /* disable parity */
67 #define UBRLCR_EVEN             0x04    /* 1= even parity,0 = odd parity */
68 #define UBRLCR_STP2             0x08    /* transmit 2 stop bits */
69 #define UBRLCR_FIFO             0x10    /* enable FIFO */
70 #define UBRLCR_LEN5             0x60    /* word length5 */
71 #define UBRLCR_LEN6             0x40    /* word length6 */
72 #define UBRLCR_LEN7             0x20    /* word length7 */
73 #define UBRLCR_LEN8             0x00    /* word length8 */
74
75 /*
76  * UART control register (UARTCON) values
77  */
78 #define UARTCON_UARTEN          0x01    /* Enable UART */
79 #define UARTCON_DMAONERR        0x08    /* Mask RxDmaRq when errors occur */
80
81 /*
82  * UART flag register (UARTFLG) mask values
83  */
84 #define UARTFLG_UTXFF           0x20    /* Transmit FIFO full */
85 #define UARTFLG_URXFE           0x10    /* Receiver FIFO empty */
86 #define UARTFLG_UBUSY           0x08    /* Transmitter busy */
87 #define UARTFLG_DCD             0x04    /* Data carrier detect */
88 #define UARTFLG_DSR             0x02    /* Data set ready */
89 #define UARTFLG_CTS             0x01    /* Clear to send */
90
91 /*
92  * UART interrupt status/clear registers (UARTINTSTAT/CLR) values
93  */
94 #define UART_TXINT              0x01    /* TX interrupt */
95 #define UART_RXINT              0x02    /* RX interrupt */
96 #define UART_RXERRINT           0x04    /* RX error interrupt */
97 #define UART_MSINT              0x08    /* Modem Status interrupt */
98 #define UART_UDINT              0x10    /* UART Disabled interrupt */
99 #define UART_ALLIRQS            0x1f    /* All interrupts */
100
101 #endif