blob: 0b921ce74adf809ffc646594eee79abc48674409 [file] [log] [blame]
/*******************************************************************************
* (c) Copyright 2007-2015 Microsemi SoC Products Group. All rights reserved.
*
* IP core registers definitions. This file contains the definitions required
* for accessing the IP core through the hardware abstraction layer (HAL).
* This file was automatically generated, using "get_header.exe" version 0.4.0,
* from the IP-XACT description for:
*
* Core16550 version: 2.0.0
*
* SVN $Revision: 7963 $
* SVN $Date: 2015-10-09 17:58:21 +0530 (Fri, 09 Oct 2015) $
*
*******************************************************************************/
#ifndef CORE_16550_REGISTERS_H_
#define CORE_16550_REGISTERS_H_ 1
#ifdef __cplusplus
extern "C" {
#endif
/*******************************************************************************
* RBR register:
*------------------------------------------------------------------------------
* Receive Buffer Register
*/
#define RBR_REG_OFFSET 0x00U
/*******************************************************************************
* THR register:
*------------------------------------------------------------------------------
* Transmit Holding Register
*/
#define THR_REG_OFFSET 0x00U
/*******************************************************************************
* DLR register:
*------------------------------------------------------------------------------
* Divisor Latch(LSB) Register
*/
#define DLR_REG_OFFSET 0x00U
/*******************************************************************************
* DMR register:
*------------------------------------------------------------------------------
* Divisor Latch(MSB) Register
*/
#define DMR_REG_OFFSET 0x04U
/*******************************************************************************
* IER register:
*------------------------------------------------------------------------------
* Interrupt Enable Register
*/
#define IER_REG_OFFSET 0x04U
/*------------------------------------------------------------------------------
* IER_ERBFI:
* ERBFI field of register IER.
*------------------------------------------------------------------------------
* Enables Received Data Available Interrupt. 0 - Disabled; 1 - Enabled
*/
#define IER_ERBFI_OFFSET 0x04U
#define IER_ERBFI_MASK 0x01U
#define IER_ERBFI_SHIFT 0U
/*------------------------------------------------------------------------------
* IER_ETBEI:
* ETBEI field of register IER.
*------------------------------------------------------------------------------
* Enables the Transmitter Holding Register Empty Interrupt. 0 - Disabled; 1 -
* Enabled
*/
#define IER_ETBEI_OFFSET 0x04U
#define IER_ETBEI_MASK 0x02U
#define IER_ETBEI_SHIFT 1U
/*------------------------------------------------------------------------------
* IER_ELSI:
* ELSI field of register IER.
*------------------------------------------------------------------------------
* Enables the Receiver Line Status Interrupt. 0 - Disabled; 1 - Enabled
*/
#define IER_ELSI_OFFSET 0x04U
#define IER_ELSI_MASK 0x04U
#define IER_ELSI_SHIFT 2U
/*------------------------------------------------------------------------------
* IER_EDSSI:
* EDSSI field of register IER.
*------------------------------------------------------------------------------
* Enables the Modem Status Interrupt 0 - Disabled; 1 - Enabled
*/
#define IER_EDSSI_OFFSET 0x04U
#define IER_EDSSI_MASK 0x08U
#define IER_EDSSI_SHIFT 3U
/*******************************************************************************
* IIR register:
*------------------------------------------------------------------------------
* Interrupt Identification
*/
#define IIR_REG_OFFSET 0x08U
/*------------------------------------------------------------------------------
* IIR_IIR:
* IIR field of register IIR.
*------------------------------------------------------------------------------
* Interrupt Identification bits.
*/
#define IIR_IIR_OFFSET 0x08U
#define IIR_IIR_MASK 0x0FU
#define IIR_IIR_SHIFT 0U
/*------------------------------------------------------------------------------
* IIR_IIR:
* IIR field of register IIR.
*------------------------------------------------------------------------------
* Interrupt Identification bits.
*/
/*------------------------------------------------------------------------------
* IIR_Mode:
* Mode field of register IIR.
*------------------------------------------------------------------------------
* 11 - FIFO mode
*/
#define IIR_MODE_OFFSET 0x08U
#define IIR_MODE_MASK 0xC0U
#define IIR_MODE_SHIFT 6U
/*******************************************************************************
* FCR register:
*------------------------------------------------------------------------------
* FIFO Control Register
*/
#define FCR_REG_OFFSET 0x08
/*------------------------------------------------------------------------------
* FCR_Bit0:
* Bit0 field of register FCR.
*------------------------------------------------------------------------------
* This bit enables both the TX and RX FIFOs.
*/
#define FCR_BIT0_OFFSET 0x08U
#define FCR_BIT0_MASK 0x01U
#define FCR_BIT0_SHIFT 0U
#define FCR_ENABLE_OFFSET 0x08U
#define FCR_ENABLE_MASK 0x01U
#define FCR_ENABLE_SHIFT 0U
/*------------------------------------------------------------------------------
* FCR_Bit1:
* Bit1 field of register FCR.
*------------------------------------------------------------------------------
* Clears all bytes in the RX FIFO and resets its counter logic. The shift
* register is not cleared. 0 - Disabled; 1 - Enabled
*/
#define FCR_BIT1_OFFSET 0x08U
#define FCR_BIT1_MASK 0x02U
#define FCR_BIT1_SHIFT 1U
#define FCR_CLEAR_RX_OFFSET 0x08U
#define FCR_CLEAR_RX_MASK 0x02U
#define FCR_CLEAR_RX_SHIFT 1U
/*------------------------------------------------------------------------------
* FCR_Bit2:
* Bit2 field of register FCR.
*------------------------------------------------------------------------------
* Clears all bytes in the TX FIFO and resets its counter logic. The shift
* register is not cleared. 0 - Disabled; 1 - Enabled
*/
#define FCR_BIT2_OFFSET 0x08U
#define FCR_BIT2_MASK 0x04U
#define FCR_BIT2_SHIFT 2U
#define FCR_CLEAR_TX_OFFSET 0x08U
#define FCR_CLEAR_TX_MASK 0x04U
#define FCR_CLEAR_TX_SHIFT 2U
/*------------------------------------------------------------------------------
* FCR_Bit3:
* Bit3 field of register FCR.
*------------------------------------------------------------------------------
* Enables RXRDYN and TXRDYN pins when set to 1. Otherwise, they are disabled.
*/
#define FCR_BIT3_OFFSET 0x08U
#define FCR_BIT3_MASK 0x08U
#define FCR_BIT3_SHIFT 3U
#define FCR_RDYN_EN_OFFSET 0x08U
#define FCR_RDYN_EN_MASK 0x08U
#define FCR_RDYN_EN_SHIFT 3U
/*------------------------------------------------------------------------------
* FCR_Bit6:
* Bit6 field of register FCR.
*------------------------------------------------------------------------------
* These bits are used to set the trigger level for the RX FIFO interrupt. RX
* FIFO Trigger Level: 0 - 1; 1 - 4; 2 - 8; 3 - 14
*/
#define FCR_BIT6_OFFSET 0x08U
#define FCR_BIT6_MASK 0xC0U
#define FCR_BIT6_SHIFT 6U
#define FCR_TRIG_LEVEL_OFFSET 0x08U
#define FCR_TRIG_LEVEL_MASK 0xC0U
#define FCR_TRIG_LEVEL_SHIFT 6U
/*******************************************************************************
* LCR register:
*------------------------------------------------------------------------------
* Line Control Register
*/
#define LCR_REG_OFFSET 0x0CU
/*------------------------------------------------------------------------------
* LCR_WLS:
* WLS field of register LCR.
*------------------------------------------------------------------------------
* Word Length Select: 00 - 5 bits; 01 - 6 bits; 10 - 7 bits; 11 - 8 bits
*/
#define LCR_WLS_OFFSET 0x0CU
#define LCR_WLS_MASK 0x03U
#define LCR_WLS_SHIFT 0U
/*------------------------------------------------------------------------------
* LCR_STB:
* STB field of register LCR.
*------------------------------------------------------------------------------
* Number of Stop Bits: 0 - 1 stop bit; 1 - 1½ stop bits when WLS = 00, 2 stop
* bits in other cases
*/
#define LCR_STB_OFFSET 0x0CU
#define LCR_STB_MASK 0x04U
#define LCR_STB_SHIFT 2U
/*------------------------------------------------------------------------------
* LCR_PEN:
* PEN field of register LCR.
*------------------------------------------------------------------------------
* Parity Enable 0 - Disabled; 1 - Enabled. Parity is added in transmission and
* checked in receiving.
*/
#define LCR_PEN_OFFSET 0x0CU
#define LCR_PEN_MASK 0x08U
#define LCR_PEN_SHIFT 3U
/*------------------------------------------------------------------------------
* LCR_EPS:
* EPS field of register LCR.
*------------------------------------------------------------------------------
* Even Parity Select 0 - Odd parity; 1 - Even parity
*/
#define LCR_EPS_OFFSET 0x0CU
#define LCR_EPS_MASK 0x10U
#define LCR_EPS_SHIFT 4U
/*------------------------------------------------------------------------------
* LCR_SP:
* SP field of register LCR.
*------------------------------------------------------------------------------
* Stick Parity 0 - Disabled; 1 - Enabled When stick parity is enabled, it
* works as follows: Bits 4..3, 11 - 0 will be sent as a parity bit, and
* checked in receiving. 01 - 1 will be sent as a parity bit, and checked in
* receiving.
*/
#define LCR_SP_OFFSET 0x0CU
#define LCR_SP_MASK 0x20U
#define LCR_SP_SHIFT 5U
/*------------------------------------------------------------------------------
* LCR_SB:
* SB field of register LCR.
*------------------------------------------------------------------------------
* Set Break 0 - Disabled 1 - Set break. SOUT is forced to 0. This does not
* have any effect on transmitter logic. The break is disabled by setting the
* bit to 0.
*/
#define LCR_SB_OFFSET 0x0CU
#define LCR_SB_MASK 0x40U
#define LCR_SB_SHIFT 6U
/*------------------------------------------------------------------------------
* LCR_DLAB:
* DLAB field of register LCR.
*------------------------------------------------------------------------------
* Divisor Latch Access Bit 0 - Disabled. Normal addressing mode in use 1 -
* Enabled. Enables access to the Divisor Latch registers during read or write
* operation to addresses 0 and 1.
*/
#define LCR_DLAB_OFFSET 0x0CU
#define LCR_DLAB_MASK 0x80U
#define LCR_DLAB_SHIFT 7U
/*******************************************************************************
* MCR register:
*------------------------------------------------------------------------------
* Modem Control Register
*/
#define MCR_REG_OFFSET 0x10U
/*------------------------------------------------------------------------------
* MCR_DTR:
* DTR field of register MCR.
*------------------------------------------------------------------------------
* Controls the Data Terminal Ready (DTRn) output. 0 - DTRn <= 1; 1 - DTRn <= 0
*/
#define MCR_DTR_OFFSET 0x10U
#define MCR_DTR_MASK 0x01U
#define MCR_DTR_SHIFT 0U
/*------------------------------------------------------------------------------
* MCR_RTS:
* RTS field of register MCR.
*------------------------------------------------------------------------------
* Controls the Request to Send (RTSn) output. 0 - RTSn <= 1; 1 - RTSn <= 0
*/
#define MCR_RTS_OFFSET 0x10U
#define MCR_RTS_MASK 0x02U
#define MCR_RTS_SHIFT 1U
/*------------------------------------------------------------------------------
* MCR_Out1:
* Out1 field of register MCR.
*------------------------------------------------------------------------------
* Controls the Output1 (OUT1n) signal. 0 - OUT1n <= 1; 1 - OUT1n <= 0
*/
#define MCR_OUT1_OFFSET 0x10U
#define MCR_OUT1_MASK 0x04U
#define MCR_OUT1_SHIFT 2U
/*------------------------------------------------------------------------------
* MCR_Out2:
* Out2 field of register MCR.
*------------------------------------------------------------------------------
* Controls the Output2 (OUT2n) signal. 0 - OUT2n <=1; 1 - OUT2n <=0
*/
#define MCR_OUT2_OFFSET 0x10U
#define MCR_OUT2_MASK 0x08U
#define MCR_OUT2_SHIFT 3U
/*------------------------------------------------------------------------------
* MCR_Loop:
* Loop field of register MCR.
*------------------------------------------------------------------------------
* Loop enable bit 0 - Disabled; 1 - Enabled. The following happens in loop
* mode: SOUT is set to 1. The SIN, DSRn, CTSn, RIn, and DCDn inputs are
* disconnected. The output of the Transmitter Shift Register is looped back
* into the Receiver Shift Register. The modem control outputs (DTRn, RTSn,
* OUT1n, and OUT2n) are connected internally to the modem control inputs, and
* the modem control output pins are set at 1. In loopback mode, the
* transmitted data is immediately received, allowing the CPU to check the
* operation of the UART. The interrupts are operating in loop mode.
*/
#define MCR_LOOP_OFFSET 0x10U
#define MCR_LOOP_MASK 0x10U
#define MCR_LOOP_SHIFT 4U
/*******************************************************************************
* LSR register:
*------------------------------------------------------------------------------
* Line Status Register
*/
#define LSR_REG_OFFSET 0x14U
/*------------------------------------------------------------------------------
* LSR_DR:
* DR field of register LSR.
*------------------------------------------------------------------------------
* Data Ready indicator 1 when a data byte has been received and stored in the
* FIFO. DR is cleared to 0 when the CPU reads the data from the FIFO.
*/
#define LSR_DR_OFFSET 0x14U
#define LSR_DR_MASK 0x01U
#define LSR_DR_SHIFT 0U
/*------------------------------------------------------------------------------
* LSR_OE:
* OE field of register LSR.
*------------------------------------------------------------------------------
* Overrun Error indicator Indicates that the new byte was received before the
* CPU read the byte from the receive buffer, and that the earlier data byte
* was destroyed. OE is cleared when the CPU reads the Line Status Register. If
* the data continues to fill the FIFO beyond the trigger level, an overrun
* error will occur once the FIFO is full and the next character has been
* completely received in the shift register. The character in the shift
* register is overwritten, but it is not transferred to the FIFO.
*/
#define LSR_OE_OFFSET 0x14U
#define LSR_OE_MASK 0x02U
#define LSR_OE_SHIFT 1U
/*------------------------------------------------------------------------------
* LSR_PE:
* PE field of register LSR.
*------------------------------------------------------------------------------
* Parity Error indicator Indicates that the received byte had a parity error.
* PE is cleared when the CPU reads the Line Status Register. This error is
* revealed to the CPU when its associated character is at the top of the FIFO.
*/
#define LSR_PE_OFFSET 0x14U
#define LSR_PE_MASK 0x04U
#define LSR_PE_SHIFT 2U
/*------------------------------------------------------------------------------
* LSR_FE:
* FE field of register LSR.
*------------------------------------------------------------------------------
* Framing Error indicator Indicates that the received byte did not have a
* valid Stop bit. FE is cleared when the CPU reads the Line Status Register.
* The UART will try to re-synchronize after a framing error. To do this, it
* assumes that the framing error was due to the next start bit, so it samples
* this start bit twice, and then starts receiving the data. This error is
* revealed to the CPU when its associated character is at the top of the FIFO.
*/
#define LSR_FE_OFFSET 0x14U
#define LSR_FE_MASK 0x08U
#define LSR_FE_SHIFT 3U
/*------------------------------------------------------------------------------
* LSR_BI:
* BI field of register LSR.
*------------------------------------------------------------------------------
* Break Interrupt indicator Indicates that the received data is at 0 longer
* than a full word transmission time (start bit + data bits + parity + stop
* bits). BI is cleared when the CPU reads the Line Status Register. This error
* is revealed to the CPU when its associated character is at the top of the
* FIFO. When break occurs, only one zero character is loaded into the FIFO.
*/
#define LSR_BI_OFFSET 0x14U
#define LSR_BI_MASK 0x10U
#define LSR_BI_SHIFT 4U
/*------------------------------------------------------------------------------
* LSR_THRE:
* THRE field of register LSR.
*------------------------------------------------------------------------------
* Transmitter Holding Register Empty indicator Indicates that the UART is
* ready to transmit a new data byte. THRE causes an interrupt to the CPU when
* bit 1 (ETBEI) in the Interrupt Enable Register is 1. This bit is set when
* the TX FIFO is empty. It is cleared when at least one byte is written to the
* TX FIFO.
*/
#define LSR_THRE_OFFSET 0x14U
#define LSR_THRE_MASK 0x20U
#define LSR_THRE_SHIFT 5U
/*------------------------------------------------------------------------------
* LSR_TEMT:
* TEMT field of register LSR.
*------------------------------------------------------------------------------
* Transmitter Empty indicator This bit is set to 1 when both the transmitter
* FIFO and shift registers are empty.
*/
#define LSR_TEMT_OFFSET 0x14U
#define LSR_TEMT_MASK 0x40U
#define LSR_TEMT_SHIFT 6U
/*------------------------------------------------------------------------------
* LSR_FIER:
* FIER field of register LSR.
*------------------------------------------------------------------------------
* This bit is set when there is at least one parity error, framing error, or
* break indication in the FIFO. FIER is cleared when the CPU reads the LSR if
* there are no subsequent errors in the FIFO.
*/
#define LSR_FIER_OFFSET 0x14U
#define LSR_FIER_MASK 0x80U
#define LSR_FIER_SHIFT 7U
/*******************************************************************************
* MSR register:
*------------------------------------------------------------------------------
* Modem Status Register
*/
#define MSR_REG_OFFSET 0x18U
/*------------------------------------------------------------------------------
* MSR_DCTS:
* DCTS field of register MSR.
*------------------------------------------------------------------------------
* Delta Clear to Send indicator. Indicates that the CTSn input has changed
* state since the last time it was read by the CPU.
*/
#define MSR_DCTS_OFFSET 0x18U
#define MSR_DCTS_MASK 0x01U
#define MSR_DCTS_SHIFT 0U
/*------------------------------------------------------------------------------
* MSR_DDSR:
* DDSR field of register MSR.
*------------------------------------------------------------------------------
* Delta Data Set Ready indicator Indicates that the DSRn input has changed
* state since the last time it was read by the CPU.
*/
#define MSR_DDSR_OFFSET 0x18U
#define MSR_DDSR_MASK 0x02U
#define MSR_DDSR_SHIFT 1U
/*------------------------------------------------------------------------------
* MSR_TERI:
* TERI field of register MSR.
*------------------------------------------------------------------------------
* Trailing Edge of Ring Indicator detector. Indicates that RI input has
* changed from 0 to 1.
*/
#define MSR_TERI_OFFSET 0x18U
#define MSR_TERI_MASK 0x04U
#define MSR_TERI_SHIFT 2U
/*------------------------------------------------------------------------------
* MSR_DDCD:
* DDCD field of register MSR.
*------------------------------------------------------------------------------
* Delta Data Carrier Detect indicator Indicates that DCD input has changed
* state. NOTE: Whenever bit 0, 1, 2, or 3 is set to 1, a Modem Status
* Interrupt is generated.
*/
#define MSR_DDCD_OFFSET 0x18U
#define MSR_DDCD_MASK 0x08U
#define MSR_DDCD_SHIFT 3U
/*------------------------------------------------------------------------------
* MSR_CTS:
* CTS field of register MSR.
*------------------------------------------------------------------------------
* Clear to Send The complement of the CTSn input. When bit 4 of the Modem
* Control Register (MCR) is set to 1 (loop), this bit is equivalent to DTR in
* the MCR.
*/
#define MSR_CTS_OFFSET 0x18U
#define MSR_CTS_MASK 0x10U
#define MSR_CTS_SHIFT 4U
/*------------------------------------------------------------------------------
* MSR_DSR:
* DSR field of register MSR.
*------------------------------------------------------------------------------
* Data Set Ready The complement of the DSR input. When bit 4 of the MCR is set
* to 1 (loop), this bit is equivalent to RTSn in the MCR.
*/
#define MSR_DSR_OFFSET 0x18U
#define MSR_DSR_MASK 0x20U
#define MSR_DSR_SHIFT 5U
/*------------------------------------------------------------------------------
* MSR_RI:
* RI field of register MSR.
*------------------------------------------------------------------------------
* Ring Indicator The complement of the RIn input. When bit 4 of the MCR is set
* to 1 (loop), this bit is equivalent to OUT1 in the MCR.
*/
#define MSR_RI_OFFSET 0x18U
#define MSR_RI_MASK 0x40U
#define MSR_RI_SHIFT 6U
/*------------------------------------------------------------------------------
* MSR_DCD:
* DCD field of register MSR.
*------------------------------------------------------------------------------
* Data Carrier Detect The complement of DCDn input. When bit 4 of the MCR is
* set to 1 (loop), this bit is equivalent to OUT2 in the MCR.
*/
#define MSR_DCD_OFFSET 0x18U
#define MSR_DCD_MASK 0x80U
#define MSR_DCD_SHIFT 7U
/*******************************************************************************
* SR register:
*------------------------------------------------------------------------------
* Scratch Register
*/
#define SR_REG_OFFSET 0x1CU
#ifdef __cplusplus
}
#endif
#endif /* CORE_16550_REGISTERS_H_*/