60 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#define UART0_BASEADDR 			0x44001000
 | 
						|
#define UART1_BASEADDR 			0x44005000
 | 
						|
#define UART2_BASEADDR 			0x44006000
 | 
						|
 | 
						|
/* CR bits */
 | 
						|
#define CTSEN  (1<<15)
 | 
						|
#define RTSEN  (1<<14)
 | 
						|
#define OUT2   (1<<13)
 | 
						|
#define OUT1   (1<<12)
 | 
						|
#define RTS    (1<<11)
 | 
						|
#define DTR    (1<<10)
 | 
						|
#define RXE    (1<<9) /* Receive enable */
 | 
						|
#define TXE    (1<<8) /* Transmit enable */
 | 
						|
#define LPE    (1<<7)
 | 
						|
#define IIRLP  (1<<2)
 | 
						|
#define SIREN  (1<<1)
 | 
						|
#define UARTEN (1<<0) /* UART enable */
 | 
						|
 | 
						|
/* FR bits */
 | 
						|
#define TXFE   (1<<7) /* TX FIFO empty */
 | 
						|
#define RXFF   (1<<6)
 | 
						|
#define TXFF   (1<<5)
 | 
						|
#define RXFE   (1<<4) /* RX FIFO empty */
 | 
						|
#define BUSY   (1<<3)
 | 
						|
#define TMSK    TXFF|BUSY
 | 
						|
 | 
						|
/* LCR_H bits */
 | 
						|
#define SPS    (1<<7) /* Stick parity select */
 | 
						|
#define WLEN_8 (3<<5)
 | 
						|
#define WLEN_7 (2<<5)
 | 
						|
#define WLEN_6 (1<<5)
 | 
						|
#define WLEN_5 (0<<5)
 | 
						|
#define FEN    (1<<4) /* FIFO enable */
 | 
						|
#define STP2   (1<<3) /* Two stop bits select */
 | 
						|
#define EPS    (1<<2) /* Even parity select */
 | 
						|
#define PEN    (1<<1) /* Parity enable */
 | 
						|
#define BRK    (1<<0) /* Send break */
 | 
						|
 | 
						|
/* Interrupt bits (IMSC, MIS, ICR) */
 | 
						|
#define OEI   (1<<10) /* Overrun Error interrupt mask */
 | 
						|
#define BEI   (1<<9)  /* Break Error interrupt mask */
 | 
						|
#define PEI   (1<<8)  /* Parity Error interrupt mask */
 | 
						|
#define FEI   (1<<7)  /* Framing Error interrupt mask */
 | 
						|
#define RTI   (1<<6)  /* Receive Timeout interrupt mask */
 | 
						|
#define TXI   (1<<5)  /* Transmit interrupt mask */
 | 
						|
#define RXI   (1<<4)  /* Receive interrupt mask */
 | 
						|
#define DSRMI (1<<3)  /* nUARTDSR Modem interrupt mask */
 | 
						|
#define DCDMI (1<<2)  /* nUARTDCD Modem interrupt mask */
 | 
						|
#define CTSMI (1<<1)  /* nUARTCTS Modem interrupt mask */
 | 
						|
#define RIMI  (1<<0)  /* nUARTRI Modem interrupt mask */
 | 
						|
#define ALLI  OEI|BEI|PEI|FEI|RTI|TXI|RXI|DSRMI|DCDMI|CTSMI|RIMI
 | 
						|
 | 
						|
/* These parity settings can be ORed directly into the LCR. */
 | 
						|
#define PARITY_NONE  (0)
 | 
						|
#define PARITY_ODD   (PEN)
 | 
						|
#define PARITY_EVEN  (PEN|EPS)
 | 
						|
#define PARITY_MARK  (PEN|SPS)
 | 
						|
#define PARITY_SPACE (PEN|EPS|SPS)
 | 
						|
 |