1 /*******************************************************************************
\r
2 * (c) Copyright 2007-2015 Microsemi SoC Products Group. All rights reserved.
\r
4 * IP core registers definitions. This file contains the definitions required
\r
5 * for accessing the IP core through the hardware abstraction layer (HAL).
\r
6 * This file was automatically generated, using "get_header.exe" version 0.4.0,
\r
7 * from the IP-XACT description for:
\r
9 * Core16550 version: 2.0.0
\r
11 * SVN $Revision: 7963 $
\r
12 * SVN $Date: 2015-10-09 17:58:21 +0530 (Fri, 09 Oct 2015) $
\r
14 *******************************************************************************/
\r
15 #ifndef CORE_16550_REGISTERS_H_
\r
16 #define CORE_16550_REGISTERS_H_ 1
\r
22 /*******************************************************************************
\r
24 *------------------------------------------------------------------------------
\r
25 * Receive Buffer Register
\r
27 #define RBR_REG_OFFSET 0x00U
\r
29 /*******************************************************************************
\r
31 *------------------------------------------------------------------------------
\r
32 * Transmit Holding Register
\r
34 #define THR_REG_OFFSET 0x00U
\r
36 /*******************************************************************************
\r
38 *------------------------------------------------------------------------------
\r
39 * Divisor Latch(LSB) Register
\r
41 #define DLR_REG_OFFSET 0x00U
\r
43 /*******************************************************************************
\r
45 *------------------------------------------------------------------------------
\r
46 * Divisor Latch(MSB) Register
\r
48 #define DMR_REG_OFFSET 0x04U
\r
50 /*******************************************************************************
\r
52 *------------------------------------------------------------------------------
\r
53 * Interrupt Enable Register
\r
55 #define IER_REG_OFFSET 0x04U
\r
57 /*------------------------------------------------------------------------------
\r
59 * ERBFI field of register IER.
\r
60 *------------------------------------------------------------------------------
\r
61 * Enables Received Data Available Interrupt. 0 - Disabled; 1 - Enabled
\r
63 #define IER_ERBFI_OFFSET 0x04U
\r
64 #define IER_ERBFI_MASK 0x01U
\r
65 #define IER_ERBFI_SHIFT 0U
\r
67 /*------------------------------------------------------------------------------
\r
69 * ETBEI field of register IER.
\r
70 *------------------------------------------------------------------------------
\r
71 * Enables the Transmitter Holding Register Empty Interrupt. 0 - Disabled; 1 -
\r
74 #define IER_ETBEI_OFFSET 0x04U
\r
75 #define IER_ETBEI_MASK 0x02U
\r
76 #define IER_ETBEI_SHIFT 1U
\r
78 /*------------------------------------------------------------------------------
\r
80 * ELSI field of register IER.
\r
81 *------------------------------------------------------------------------------
\r
82 * Enables the Receiver Line Status Interrupt. 0 - Disabled; 1 - Enabled
\r
84 #define IER_ELSI_OFFSET 0x04U
\r
85 #define IER_ELSI_MASK 0x04U
\r
86 #define IER_ELSI_SHIFT 2U
\r
88 /*------------------------------------------------------------------------------
\r
90 * EDSSI field of register IER.
\r
91 *------------------------------------------------------------------------------
\r
92 * Enables the Modem Status Interrupt 0 - Disabled; 1 - Enabled
\r
94 #define IER_EDSSI_OFFSET 0x04U
\r
95 #define IER_EDSSI_MASK 0x08U
\r
96 #define IER_EDSSI_SHIFT 3U
\r
98 /*******************************************************************************
\r
100 *------------------------------------------------------------------------------
\r
101 * Interrupt Identification
\r
103 #define IIR_REG_OFFSET 0x08U
\r
105 /*------------------------------------------------------------------------------
\r
107 * IIR field of register IIR.
\r
108 *------------------------------------------------------------------------------
\r
109 * Interrupt Identification bits.
\r
111 #define IIR_IIR_OFFSET 0x08U
\r
112 #define IIR_IIR_MASK 0x0FU
\r
113 #define IIR_IIR_SHIFT 0U
\r
115 /*------------------------------------------------------------------------------
\r
117 * IIR field of register IIR.
\r
118 *------------------------------------------------------------------------------
\r
119 * Interrupt Identification bits.
\r
122 /*------------------------------------------------------------------------------
\r
124 * Mode field of register IIR.
\r
125 *------------------------------------------------------------------------------
\r
128 #define IIR_MODE_OFFSET 0x08U
\r
129 #define IIR_MODE_MASK 0xC0U
\r
130 #define IIR_MODE_SHIFT 6U
\r
132 /*******************************************************************************
\r
134 *------------------------------------------------------------------------------
\r
135 * FIFO Control Register
\r
137 #define FCR_REG_OFFSET 0x08
\r
139 /*------------------------------------------------------------------------------
\r
141 * Bit0 field of register FCR.
\r
142 *------------------------------------------------------------------------------
\r
143 * This bit enables both the TX and RX FIFOs.
\r
145 #define FCR_BIT0_OFFSET 0x08U
\r
146 #define FCR_BIT0_MASK 0x01U
\r
147 #define FCR_BIT0_SHIFT 0U
\r
149 #define FCR_ENABLE_OFFSET 0x08U
\r
150 #define FCR_ENABLE_MASK 0x01U
\r
151 #define FCR_ENABLE_SHIFT 0U
\r
153 /*------------------------------------------------------------------------------
\r
155 * Bit1 field of register FCR.
\r
156 *------------------------------------------------------------------------------
\r
157 * Clears all bytes in the RX FIFO and resets its counter logic. The shift
\r
158 * register is not cleared. 0 - Disabled; 1 - Enabled
\r
160 #define FCR_BIT1_OFFSET 0x08U
\r
161 #define FCR_BIT1_MASK 0x02U
\r
162 #define FCR_BIT1_SHIFT 1U
\r
164 #define FCR_CLEAR_RX_OFFSET 0x08U
\r
165 #define FCR_CLEAR_RX_MASK 0x02U
\r
166 #define FCR_CLEAR_RX_SHIFT 1U
\r
168 /*------------------------------------------------------------------------------
\r
170 * Bit2 field of register FCR.
\r
171 *------------------------------------------------------------------------------
\r
172 * Clears all bytes in the TX FIFO and resets its counter logic. The shift
\r
173 * register is not cleared. 0 - Disabled; 1 - Enabled
\r
175 #define FCR_BIT2_OFFSET 0x08U
\r
176 #define FCR_BIT2_MASK 0x04U
\r
177 #define FCR_BIT2_SHIFT 2U
\r
179 #define FCR_CLEAR_TX_OFFSET 0x08U
\r
180 #define FCR_CLEAR_TX_MASK 0x04U
\r
181 #define FCR_CLEAR_TX_SHIFT 2U
\r
183 /*------------------------------------------------------------------------------
\r
185 * Bit3 field of register FCR.
\r
186 *------------------------------------------------------------------------------
\r
187 * Enables RXRDYN and TXRDYN pins when set to 1. Otherwise, they are disabled.
\r
189 #define FCR_BIT3_OFFSET 0x08U
\r
190 #define FCR_BIT3_MASK 0x08U
\r
191 #define FCR_BIT3_SHIFT 3U
\r
193 #define FCR_RDYN_EN_OFFSET 0x08U
\r
194 #define FCR_RDYN_EN_MASK 0x08U
\r
195 #define FCR_RDYN_EN_SHIFT 3U
\r
197 /*------------------------------------------------------------------------------
\r
199 * Bit6 field of register FCR.
\r
200 *------------------------------------------------------------------------------
\r
201 * These bits are used to set the trigger level for the RX FIFO interrupt. RX
\r
202 * FIFO Trigger Level: 0 - 1; 1 - 4; 2 - 8; 3 - 14
\r
204 #define FCR_BIT6_OFFSET 0x08U
\r
205 #define FCR_BIT6_MASK 0xC0U
\r
206 #define FCR_BIT6_SHIFT 6U
\r
208 #define FCR_TRIG_LEVEL_OFFSET 0x08U
\r
209 #define FCR_TRIG_LEVEL_MASK 0xC0U
\r
210 #define FCR_TRIG_LEVEL_SHIFT 6U
\r
212 /*******************************************************************************
\r
214 *------------------------------------------------------------------------------
\r
215 * Line Control Register
\r
217 #define LCR_REG_OFFSET 0x0CU
\r
219 /*------------------------------------------------------------------------------
\r
221 * WLS field of register LCR.
\r
222 *------------------------------------------------------------------------------
\r
223 * Word Length Select: 00 - 5 bits; 01 - 6 bits; 10 - 7 bits; 11 - 8 bits
\r
225 #define LCR_WLS_OFFSET 0x0CU
\r
226 #define LCR_WLS_MASK 0x03U
\r
227 #define LCR_WLS_SHIFT 0U
\r
229 /*------------------------------------------------------------------------------
\r
231 * STB field of register LCR.
\r
232 *------------------------------------------------------------------------------
\r
233 * Number of Stop Bits: 0 - 1 stop bit; 1 - 1½ stop bits when WLS = 00, 2 stop
\r
234 * bits in other cases
\r
236 #define LCR_STB_OFFSET 0x0CU
\r
237 #define LCR_STB_MASK 0x04U
\r
238 #define LCR_STB_SHIFT 2U
\r
240 /*------------------------------------------------------------------------------
\r
242 * PEN field of register LCR.
\r
243 *------------------------------------------------------------------------------
\r
244 * Parity Enable 0 - Disabled; 1 - Enabled. Parity is added in transmission and
\r
245 * checked in receiving.
\r
247 #define LCR_PEN_OFFSET 0x0CU
\r
248 #define LCR_PEN_MASK 0x08U
\r
249 #define LCR_PEN_SHIFT 3U
\r
251 /*------------------------------------------------------------------------------
\r
253 * EPS field of register LCR.
\r
254 *------------------------------------------------------------------------------
\r
255 * Even Parity Select 0 - Odd parity; 1 - Even parity
\r
257 #define LCR_EPS_OFFSET 0x0CU
\r
258 #define LCR_EPS_MASK 0x10U
\r
259 #define LCR_EPS_SHIFT 4U
\r
261 /*------------------------------------------------------------------------------
\r
263 * SP field of register LCR.
\r
264 *------------------------------------------------------------------------------
\r
265 * Stick Parity 0 - Disabled; 1 - Enabled When stick parity is enabled, it
\r
266 * works as follows: Bits 4..3, 11 - 0 will be sent as a parity bit, and
\r
267 * checked in receiving. 01 - 1 will be sent as a parity bit, and checked in
\r
270 #define LCR_SP_OFFSET 0x0CU
\r
271 #define LCR_SP_MASK 0x20U
\r
272 #define LCR_SP_SHIFT 5U
\r
274 /*------------------------------------------------------------------------------
\r
276 * SB field of register LCR.
\r
277 *------------------------------------------------------------------------------
\r
278 * Set Break 0 - Disabled 1 - Set break. SOUT is forced to 0. This does not
\r
279 * have any effect on transmitter logic. The break is disabled by setting the
\r
282 #define LCR_SB_OFFSET 0x0CU
\r
283 #define LCR_SB_MASK 0x40U
\r
284 #define LCR_SB_SHIFT 6U
\r
286 /*------------------------------------------------------------------------------
\r
288 * DLAB field of register LCR.
\r
289 *------------------------------------------------------------------------------
\r
290 * Divisor Latch Access Bit 0 - Disabled. Normal addressing mode in use 1 -
\r
291 * Enabled. Enables access to the Divisor Latch registers during read or write
\r
292 * operation to addresses 0 and 1.
\r
294 #define LCR_DLAB_OFFSET 0x0CU
\r
295 #define LCR_DLAB_MASK 0x80U
\r
296 #define LCR_DLAB_SHIFT 7U
\r
298 /*******************************************************************************
\r
300 *------------------------------------------------------------------------------
\r
301 * Modem Control Register
\r
303 #define MCR_REG_OFFSET 0x10U
\r
305 /*------------------------------------------------------------------------------
\r
307 * DTR field of register MCR.
\r
308 *------------------------------------------------------------------------------
\r
309 * Controls the Data Terminal Ready (DTRn) output. 0 - DTRn <= 1; 1 - DTRn <= 0
\r
311 #define MCR_DTR_OFFSET 0x10U
\r
312 #define MCR_DTR_MASK 0x01U
\r
313 #define MCR_DTR_SHIFT 0U
\r
315 /*------------------------------------------------------------------------------
\r
317 * RTS field of register MCR.
\r
318 *------------------------------------------------------------------------------
\r
319 * Controls the Request to Send (RTSn) output. 0 - RTSn <= 1; 1 - RTSn <= 0
\r
321 #define MCR_RTS_OFFSET 0x10U
\r
322 #define MCR_RTS_MASK 0x02U
\r
323 #define MCR_RTS_SHIFT 1U
\r
325 /*------------------------------------------------------------------------------
\r
327 * Out1 field of register MCR.
\r
328 *------------------------------------------------------------------------------
\r
329 * Controls the Output1 (OUT1n) signal. 0 - OUT1n <= 1; 1 - OUT1n <= 0
\r
331 #define MCR_OUT1_OFFSET 0x10U
\r
332 #define MCR_OUT1_MASK 0x04U
\r
333 #define MCR_OUT1_SHIFT 2U
\r
335 /*------------------------------------------------------------------------------
\r
337 * Out2 field of register MCR.
\r
338 *------------------------------------------------------------------------------
\r
339 * Controls the Output2 (OUT2n) signal. 0 - OUT2n <=1; 1 - OUT2n <=0
\r
341 #define MCR_OUT2_OFFSET 0x10U
\r
342 #define MCR_OUT2_MASK 0x08U
\r
343 #define MCR_OUT2_SHIFT 3U
\r
345 /*------------------------------------------------------------------------------
\r
347 * Loop field of register MCR.
\r
348 *------------------------------------------------------------------------------
\r
349 * Loop enable bit 0 - Disabled; 1 - Enabled. The following happens in loop
\r
350 * mode: SOUT is set to 1. The SIN, DSRn, CTSn, RIn, and DCDn inputs are
\r
351 * disconnected. The output of the Transmitter Shift Register is looped back
\r
352 * into the Receiver Shift Register. The modem control outputs (DTRn, RTSn,
\r
353 * OUT1n, and OUT2n) are connected internally to the modem control inputs, and
\r
354 * the modem control output pins are set at 1. In loopback mode, the
\r
355 * transmitted data is immediately received, allowing the CPU to check the
\r
356 * operation of the UART. The interrupts are operating in loop mode.
\r
358 #define MCR_LOOP_OFFSET 0x10U
\r
359 #define MCR_LOOP_MASK 0x10U
\r
360 #define MCR_LOOP_SHIFT 4U
\r
362 /*******************************************************************************
\r
364 *------------------------------------------------------------------------------
\r
365 * Line Status Register
\r
367 #define LSR_REG_OFFSET 0x14U
\r
369 /*------------------------------------------------------------------------------
\r
371 * DR field of register LSR.
\r
372 *------------------------------------------------------------------------------
\r
373 * Data Ready indicator 1 when a data byte has been received and stored in the
\r
374 * FIFO. DR is cleared to 0 when the CPU reads the data from the FIFO.
\r
376 #define LSR_DR_OFFSET 0x14U
\r
377 #define LSR_DR_MASK 0x01U
\r
378 #define LSR_DR_SHIFT 0U
\r
380 /*------------------------------------------------------------------------------
\r
382 * OE field of register LSR.
\r
383 *------------------------------------------------------------------------------
\r
384 * Overrun Error indicator Indicates that the new byte was received before the
\r
385 * CPU read the byte from the receive buffer, and that the earlier data byte
\r
386 * was destroyed. OE is cleared when the CPU reads the Line Status Register. If
\r
387 * the data continues to fill the FIFO beyond the trigger level, an overrun
\r
388 * error will occur once the FIFO is full and the next character has been
\r
389 * completely received in the shift register. The character in the shift
\r
390 * register is overwritten, but it is not transferred to the FIFO.
\r
392 #define LSR_OE_OFFSET 0x14U
\r
393 #define LSR_OE_MASK 0x02U
\r
394 #define LSR_OE_SHIFT 1U
\r
396 /*------------------------------------------------------------------------------
\r
398 * PE field of register LSR.
\r
399 *------------------------------------------------------------------------------
\r
400 * Parity Error indicator Indicates that the received byte had a parity error.
\r
401 * PE is cleared when the CPU reads the Line Status Register. This error is
\r
402 * revealed to the CPU when its associated character is at the top of the FIFO.
\r
404 #define LSR_PE_OFFSET 0x14U
\r
405 #define LSR_PE_MASK 0x04U
\r
406 #define LSR_PE_SHIFT 2U
\r
408 /*------------------------------------------------------------------------------
\r
410 * FE field of register LSR.
\r
411 *------------------------------------------------------------------------------
\r
412 * Framing Error indicator Indicates that the received byte did not have a
\r
413 * valid Stop bit. FE is cleared when the CPU reads the Line Status Register.
\r
414 * The UART will try to re-synchronize after a framing error. To do this, it
\r
415 * assumes that the framing error was due to the next start bit, so it samples
\r
416 * this start bit twice, and then starts receiving the data. This error is
\r
417 * revealed to the CPU when its associated character is at the top of the FIFO.
\r
419 #define LSR_FE_OFFSET 0x14U
\r
420 #define LSR_FE_MASK 0x08U
\r
421 #define LSR_FE_SHIFT 3U
\r
423 /*------------------------------------------------------------------------------
\r
425 * BI field of register LSR.
\r
426 *------------------------------------------------------------------------------
\r
427 * Break Interrupt indicator Indicates that the received data is at 0 longer
\r
428 * than a full word transmission time (start bit + data bits + parity + stop
\r
429 * bits). BI is cleared when the CPU reads the Line Status Register. This error
\r
430 * is revealed to the CPU when its associated character is at the top of the
\r
431 * FIFO. When break occurs, only one zero character is loaded into the FIFO.
\r
433 #define LSR_BI_OFFSET 0x14U
\r
434 #define LSR_BI_MASK 0x10U
\r
435 #define LSR_BI_SHIFT 4U
\r
437 /*------------------------------------------------------------------------------
\r
439 * THRE field of register LSR.
\r
440 *------------------------------------------------------------------------------
\r
441 * Transmitter Holding Register Empty indicator Indicates that the UART is
\r
442 * ready to transmit a new data byte. THRE causes an interrupt to the CPU when
\r
443 * bit 1 (ETBEI) in the Interrupt Enable Register is 1. This bit is set when
\r
444 * the TX FIFO is empty. It is cleared when at least one byte is written to the
\r
447 #define LSR_THRE_OFFSET 0x14U
\r
448 #define LSR_THRE_MASK 0x20U
\r
449 #define LSR_THRE_SHIFT 5U
\r
451 /*------------------------------------------------------------------------------
\r
453 * TEMT field of register LSR.
\r
454 *------------------------------------------------------------------------------
\r
455 * Transmitter Empty indicator This bit is set to 1 when both the transmitter
\r
456 * FIFO and shift registers are empty.
\r
458 #define LSR_TEMT_OFFSET 0x14U
\r
459 #define LSR_TEMT_MASK 0x40U
\r
460 #define LSR_TEMT_SHIFT 6U
\r
462 /*------------------------------------------------------------------------------
\r
464 * FIER field of register LSR.
\r
465 *------------------------------------------------------------------------------
\r
466 * This bit is set when there is at least one parity error, framing error, or
\r
467 * break indication in the FIFO. FIER is cleared when the CPU reads the LSR if
\r
468 * there are no subsequent errors in the FIFO.
\r
470 #define LSR_FIER_OFFSET 0x14U
\r
471 #define LSR_FIER_MASK 0x80U
\r
472 #define LSR_FIER_SHIFT 7U
\r
474 /*******************************************************************************
\r
476 *------------------------------------------------------------------------------
\r
477 * Modem Status Register
\r
479 #define MSR_REG_OFFSET 0x18U
\r
481 /*------------------------------------------------------------------------------
\r
483 * DCTS field of register MSR.
\r
484 *------------------------------------------------------------------------------
\r
485 * Delta Clear to Send indicator. Indicates that the CTSn input has changed
\r
486 * state since the last time it was read by the CPU.
\r
488 #define MSR_DCTS_OFFSET 0x18U
\r
489 #define MSR_DCTS_MASK 0x01U
\r
490 #define MSR_DCTS_SHIFT 0U
\r
492 /*------------------------------------------------------------------------------
\r
494 * DDSR field of register MSR.
\r
495 *------------------------------------------------------------------------------
\r
496 * Delta Data Set Ready indicator Indicates that the DSRn input has changed
\r
497 * state since the last time it was read by the CPU.
\r
499 #define MSR_DDSR_OFFSET 0x18U
\r
500 #define MSR_DDSR_MASK 0x02U
\r
501 #define MSR_DDSR_SHIFT 1U
\r
503 /*------------------------------------------------------------------------------
\r
505 * TERI field of register MSR.
\r
506 *------------------------------------------------------------------------------
\r
507 * Trailing Edge of Ring Indicator detector. Indicates that RI input has
\r
508 * changed from 0 to 1.
\r
510 #define MSR_TERI_OFFSET 0x18U
\r
511 #define MSR_TERI_MASK 0x04U
\r
512 #define MSR_TERI_SHIFT 2U
\r
514 /*------------------------------------------------------------------------------
\r
516 * DDCD field of register MSR.
\r
517 *------------------------------------------------------------------------------
\r
518 * Delta Data Carrier Detect indicator Indicates that DCD input has changed
\r
519 * state. NOTE: Whenever bit 0, 1, 2, or 3 is set to 1, a Modem Status
\r
520 * Interrupt is generated.
\r
522 #define MSR_DDCD_OFFSET 0x18U
\r
523 #define MSR_DDCD_MASK 0x08U
\r
524 #define MSR_DDCD_SHIFT 3U
\r
526 /*------------------------------------------------------------------------------
\r
528 * CTS field of register MSR.
\r
529 *------------------------------------------------------------------------------
\r
530 * Clear to Send The complement of the CTSn input. When bit 4 of the Modem
\r
531 * Control Register (MCR) is set to 1 (loop), this bit is equivalent to DTR in
\r
534 #define MSR_CTS_OFFSET 0x18U
\r
535 #define MSR_CTS_MASK 0x10U
\r
536 #define MSR_CTS_SHIFT 4U
\r
538 /*------------------------------------------------------------------------------
\r
540 * DSR field of register MSR.
\r
541 *------------------------------------------------------------------------------
\r
542 * Data Set Ready The complement of the DSR input. When bit 4 of the MCR is set
\r
543 * to 1 (loop), this bit is equivalent to RTSn in the MCR.
\r
545 #define MSR_DSR_OFFSET 0x18U
\r
546 #define MSR_DSR_MASK 0x20U
\r
547 #define MSR_DSR_SHIFT 5U
\r
549 /*------------------------------------------------------------------------------
\r
551 * RI field of register MSR.
\r
552 *------------------------------------------------------------------------------
\r
553 * Ring Indicator The complement of the RIn input. When bit 4 of the MCR is set
\r
554 * to 1 (loop), this bit is equivalent to OUT1 in the MCR.
\r
556 #define MSR_RI_OFFSET 0x18U
\r
557 #define MSR_RI_MASK 0x40U
\r
558 #define MSR_RI_SHIFT 6U
\r
560 /*------------------------------------------------------------------------------
\r
562 * DCD field of register MSR.
\r
563 *------------------------------------------------------------------------------
\r
564 * Data Carrier Detect The complement of DCDn input. When bit 4 of the MCR is
\r
565 * set to 1 (loop), this bit is equivalent to OUT2 in the MCR.
\r
567 #define MSR_DCD_OFFSET 0x18U
\r
568 #define MSR_DCD_MASK 0x80U
\r
569 #define MSR_DCD_SHIFT 7U
\r
571 /*******************************************************************************
\r
573 *------------------------------------------------------------------------------
\r
576 #define SR_REG_OFFSET 0x1CU
\r
582 #endif /* CORE_16550_REGISTERS_H_*/
\r