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)
							 | 
						||
| 
								 | 
							
								
							 |