/****************************************************************************
 ****************************************************************************
 ***
 ***   This header was automatically generated from a Linux kernel header
 ***   of the same name, to make information necessary for userspace to
 ***   call into the kernel available to libc.  It contains only constants,
 ***   structures, and macros generated from the original header, and thus,
 ***   contains no copyrightable information.
 ***
 ****************************************************************************
 ****************************************************************************/
#ifndef _LINUX_SERIAL_REG_H
#define _LINUX_SERIAL_REG_H

#define UART_RX 0  
#define UART_TX 0  

#define UART_IER 1  
#define UART_IER_MSI 0x08  
#define UART_IER_RLSI 0x04  
#define UART_IER_THRI 0x02  
#define UART_IER_RDI 0x01  

#define UART_IERX_SLEEP 0x10  

#define UART_IIR 2  
#define UART_IIR_NO_INT 0x01  
#define UART_IIR_ID 0x06  
#define UART_IIR_MSI 0x00  
#define UART_IIR_THRI 0x02  
#define UART_IIR_RDI 0x04  
#define UART_IIR_RLSI 0x06  

#define UART_FCR 2  
#define UART_FCR_ENABLE_FIFO 0x01  
#define UART_FCR_CLEAR_RCVR 0x02  
#define UART_FCR_CLEAR_XMIT 0x04  
#define UART_FCR_DMA_SELECT 0x08  

#define UART_FCR_R_TRIG_00 0x00
#define UART_FCR_R_TRIG_01 0x40
#define UART_FCR_R_TRIG_10 0x80
#define UART_FCR_R_TRIG_11 0xc0
#define UART_FCR_T_TRIG_00 0x00
#define UART_FCR_T_TRIG_01 0x10
#define UART_FCR_T_TRIG_10 0x20
#define UART_FCR_T_TRIG_11 0x30

#define UART_FCR_TRIGGER_MASK 0xC0  
#define UART_FCR_TRIGGER_1 0x00  
#define UART_FCR_TRIGGER_4 0x40  
#define UART_FCR_TRIGGER_8 0x80  
#define UART_FCR_TRIGGER_14 0xC0  

#define UART_FCR6_R_TRIGGER_8 0x00  
#define UART_FCR6_R_TRIGGER_16 0x40  
#define UART_FCR6_R_TRIGGER_24 0x80  
#define UART_FCR6_R_TRIGGER_28 0xC0  
#define UART_FCR6_T_TRIGGER_16 0x00  
#define UART_FCR6_T_TRIGGER_8 0x10  
#define UART_FCR6_T_TRIGGER_24 0x20  
#define UART_FCR6_T_TRIGGER_30 0x30  
#define UART_FCR7_64BYTE 0x20  

#define UART_LCR 3  

#define UART_LCR_DLAB 0x80  
#define UART_LCR_SBC 0x40  
#define UART_LCR_SPAR 0x20  
#define UART_LCR_EPAR 0x10  
#define UART_LCR_PARITY 0x08  
#define UART_LCR_STOP 0x04  
#define UART_LCR_WLEN5 0x00  
#define UART_LCR_WLEN6 0x01  
#define UART_LCR_WLEN7 0x02  
#define UART_LCR_WLEN8 0x03  

#define UART_MCR 4  
#define UART_MCR_CLKSEL 0x80  
#define UART_MCR_TCRTLR 0x40  
#define UART_MCR_XONANY 0x20  
#define UART_MCR_AFE 0x20  
#define UART_MCR_LOOP 0x10  
#define UART_MCR_OUT2 0x08  
#define UART_MCR_OUT1 0x04  
#define UART_MCR_RTS 0x02  
#define UART_MCR_DTR 0x01  

#define UART_LSR 5  
#define UART_LSR_TEMT 0x40  
#define UART_LSR_THRE 0x20  
#define UART_LSR_BI 0x10  
#define UART_LSR_FE 0x08  
#define UART_LSR_PE 0x04  
#define UART_LSR_OE 0x02  
#define UART_LSR_DR 0x01  

#define UART_MSR 6  
#define UART_MSR_DCD 0x80  
#define UART_MSR_RI 0x40  
#define UART_MSR_DSR 0x20  
#define UART_MSR_CTS 0x10  
#define UART_MSR_DDCD 0x08  
#define UART_MSR_TERI 0x04  
#define UART_MSR_DDSR 0x02  
#define UART_MSR_DCTS 0x01  
#define UART_MSR_ANY_DELTA 0x0F  

#define UART_SCR 7  

#define UART_DLL 0  
#define UART_DLM 1  

#define UART_EFR 2  
#define UART_EFR_CTS 0x80  
#define UART_EFR_RTS 0x40  
#define UART_EFR_SCD 0x20  
#define UART_EFR_ECB 0x10  

#define UART_XON1 4  
#define UART_XON2 5  
#define UART_XOFF1 6  
#define UART_XOFF2 7  

#define UART_TI752_TCR 6  
#define UART_TI752_TLR 7  

#define UART_TRG 0  

#define UART_TRG_1 0x01
#define UART_TRG_4 0x04
#define UART_TRG_8 0x08
#define UART_TRG_16 0x10
#define UART_TRG_32 0x20
#define UART_TRG_64 0x40
#define UART_TRG_96 0x60
#define UART_TRG_120 0x78
#define UART_TRG_128 0x80

#define UART_FCTR 1  
#define UART_FCTR_RTS_NODELAY 0x00  
#define UART_FCTR_RTS_4DELAY 0x01
#define UART_FCTR_RTS_6DELAY 0x02
#define UART_FCTR_RTS_8DELAY 0x03
#define UART_FCTR_IRDA 0x04  
#define UART_FCTR_TX_INT 0x08  
#define UART_FCTR_TRGA 0x00  
#define UART_FCTR_TRGB 0x10  
#define UART_FCTR_TRGC 0x20  
#define UART_FCTR_TRGD 0x30  
#define UART_FCTR_SCR_SWAP 0x40  
#define UART_FCTR_RX 0x00  
#define UART_FCTR_TX 0x80  

#define UART_EMSR 7  
#define UART_EMSR_FIFO_COUNT 0x01  
#define UART_EMSR_ALT_COUNT 0x02  

#define UART_IER_DMAE 0x80  
#define UART_IER_UUE 0x40  
#define UART_IER_NRZE 0x20  
#define UART_IER_RTOIE 0x10  

#define UART_IIR_TOD 0x08  

#define UART_FCR_PXAR1 0x00  
#define UART_FCR_PXAR8 0x40  
#define UART_FCR_PXAR16 0x80  
#define UART_FCR_PXAR32 0xc0  

#define UART_ASR 0x01  
#define UART_RFL 0x03  
#define UART_TFL 0x04  
#define UART_ICR 0x05  

#define UART_ACR 0x00  
#define UART_CPR 0x01  
#define UART_TCR 0x02  
#define UART_CKS 0x03  
#define UART_TTL 0x04  
#define UART_RTL 0x05  
#define UART_FCL 0x06  
#define UART_FCH 0x07  
#define UART_ID1 0x08  
#define UART_ID2 0x09  
#define UART_ID3 0x0A  
#define UART_REV 0x0B  
#define UART_CSR 0x0C  
#define UART_NMR 0x0D  
#define UART_CTR 0xFF

#define UART_ACR_RXDIS 0x01  
#define UART_ACR_TXDIS 0x02  
#define UART_ACR_DSRFC 0x04  
#define UART_ACR_TLENB 0x20  
#define UART_ACR_ICRRD 0x40  
#define UART_ACR_ASREN 0x80  

#define UART_RSA_BASE (-8)

#define UART_RSA_MSR ((UART_RSA_BASE) + 0)  

#define UART_RSA_MSR_SWAP (1 << 0)  
#define UART_RSA_MSR_FIFO (1 << 2)  
#define UART_RSA_MSR_FLOW (1 << 3)  
#define UART_RSA_MSR_ITYP (1 << 4)  

#define UART_RSA_IER ((UART_RSA_BASE) + 1)  

#define UART_RSA_IER_Rx_FIFO_H (1 << 0)  
#define UART_RSA_IER_Tx_FIFO_H (1 << 1)  
#define UART_RSA_IER_Tx_FIFO_E (1 << 2)  
#define UART_RSA_IER_Rx_TOUT (1 << 3)  
#define UART_RSA_IER_TIMER (1 << 4)  

#define UART_RSA_SRR ((UART_RSA_BASE) + 2)  

#define UART_RSA_SRR_Tx_FIFO_NEMP (1 << 0)  
#define UART_RSA_SRR_Tx_FIFO_NHFL (1 << 1)  
#define UART_RSA_SRR_Tx_FIFO_NFUL (1 << 2)  
#define UART_RSA_SRR_Rx_FIFO_NEMP (1 << 3)  
#define UART_RSA_SRR_Rx_FIFO_NHFL (1 << 4)  
#define UART_RSA_SRR_Rx_FIFO_NFUL (1 << 5)  
#define UART_RSA_SRR_Rx_TOUT (1 << 6)  
#define UART_RSA_SRR_TIMER (1 << 7)  

#define UART_RSA_FRR ((UART_RSA_BASE) + 2)  

#define UART_RSA_TIVSR ((UART_RSA_BASE) + 3)  

#define UART_RSA_TCR ((UART_RSA_BASE) + 4)  

#define UART_RSA_TCR_SWITCH (1 << 0)  

#define SERIAL_RSA_BAUD_BASE (921600)
#define SERIAL_RSA_BAUD_BASE_LO (SERIAL_RSA_BAUD_BASE / 8)

#define UART_OMAP_MDR1 0x08  
#define UART_OMAP_MDR2 0x09  
#define UART_OMAP_SCR 0x10  
#define UART_OMAP_SSR 0x11  
#define UART_OMAP_EBLR 0x12  
#define UART_OMAP_OSC_12M_SEL 0x13  
#define UART_OMAP_MVER 0x14  
#define UART_OMAP_SYSC 0x15  
#define UART_OMAP_SYSS 0x16  

#endif

