Altera SoCAL  16.0
The Altera SoC Abstraction Layer (SoCAL) API Reference Manual
 All Data Structures Variables Typedefs Groups
Register : iir

Description

Interrupt Identification Register

Register Layout

Bits Access Reset Description
[3:0] R 0x1 ALT_UART_IIR_ID
[5:4] R 0x0 ALT_UART_IIR_RSVD_IIR_5TO4
[7:6] R 0x0 ALT_UART_IIR_FIFOEN
[31:8] R 0x0 ALT_UART_IIR_RSVD_IIR_31TO8

Field : id

Bits[3:0], Interrupt ID (or IID):

This indicates the highest priority pending interrupt which can be one of the

following types:

0000 = modem status.

0001 = no interrupt pending.

0010 = THR empty.

0100 = received data available.

0110 = receiver line status.

0111 = busy detect.

1100 = character timeout.

Note, an interrupt of type 0111 (busy detect) will never get indicated if

UART_16550_COMPATIBLE == YES in coreConsultant.

Field Enumeration Values:

Enum Value Description
ALT_UART_IIR_ID_E_MODMSTAT 0x0 Modem status
ALT_UART_IIR_ID_E_NOINTRPENDING 0x1 No Interrupt pending
ALT_UART_IIR_ID_E_THREMPTY 0x2 THR empty
ALT_UART_IIR_ID_E_RXDATAVAILABLE 0x4 Receive data available
ALT_UART_IIR_ID_E_RXLINESTAT 0x6 Receive line status
ALT_UART_IIR_ID_E_BUSYDETECT 0x7 Busy detect
ALT_UART_IIR_ID_E_CHARTMO 0xc Character timeout

Field Access Macros:

#define ALT_UART_IIR_ID_E_MODMSTAT   0x0
 
#define ALT_UART_IIR_ID_E_NOINTRPENDING   0x1
 
#define ALT_UART_IIR_ID_E_THREMPTY   0x2
 
#define ALT_UART_IIR_ID_E_RXDATAVAILABLE   0x4
 
#define ALT_UART_IIR_ID_E_RXLINESTAT   0x6
 
#define ALT_UART_IIR_ID_E_BUSYDETECT   0x7
 
#define ALT_UART_IIR_ID_E_CHARTMO   0xc
 
#define ALT_UART_IIR_ID_LSB   0
 
#define ALT_UART_IIR_ID_MSB   3
 
#define ALT_UART_IIR_ID_WIDTH   4
 
#define ALT_UART_IIR_ID_SET_MSK   0x0000000f
 
#define ALT_UART_IIR_ID_CLR_MSK   0xfffffff0
 
#define ALT_UART_IIR_ID_RESET   0x1
 
#define ALT_UART_IIR_ID_GET(value)   (((value) & 0x0000000f) >> 0)
 
#define ALT_UART_IIR_ID_SET(value)   (((value) << 0) & 0x0000000f)
 

Field : rsvd_iir_5to4

Reserved bits [5:4] - Read Only

Field Access Macros:

#define ALT_UART_IIR_RSVD_IIR_5TO4_LSB   4
 
#define ALT_UART_IIR_RSVD_IIR_5TO4_MSB   5
 
#define ALT_UART_IIR_RSVD_IIR_5TO4_WIDTH   2
 
#define ALT_UART_IIR_RSVD_IIR_5TO4_SET_MSK   0x00000030
 
#define ALT_UART_IIR_RSVD_IIR_5TO4_CLR_MSK   0xffffffcf
 
#define ALT_UART_IIR_RSVD_IIR_5TO4_RESET   0x0
 
#define ALT_UART_IIR_RSVD_IIR_5TO4_GET(value)   (((value) & 0x00000030) >> 4)
 
#define ALT_UART_IIR_RSVD_IIR_5TO4_SET(value)   (((value) << 4) & 0x00000030)
 

Field : fifoen

Bits[7:6], FIFO's Enabled (or FIFOSE):

This is used to indicate whether the FIFO's are enabled or disabled.

00 = disabled.

11 = enabled

Field Enumeration Values:

Enum Value Description
ALT_UART_IIR_FIFOEN_E_DISD 0x0 FIFO disabled
ALT_UART_IIR_FIFOEN_E_END 0x3 FIFO enabled

Field Access Macros:

#define ALT_UART_IIR_FIFOEN_E_DISD   0x0
 
#define ALT_UART_IIR_FIFOEN_E_END   0x3
 
#define ALT_UART_IIR_FIFOEN_LSB   6
 
#define ALT_UART_IIR_FIFOEN_MSB   7
 
#define ALT_UART_IIR_FIFOEN_WIDTH   2
 
#define ALT_UART_IIR_FIFOEN_SET_MSK   0x000000c0
 
#define ALT_UART_IIR_FIFOEN_CLR_MSK   0xffffff3f
 
#define ALT_UART_IIR_FIFOEN_RESET   0x0
 
#define ALT_UART_IIR_FIFOEN_GET(value)   (((value) & 0x000000c0) >> 6)
 
#define ALT_UART_IIR_FIFOEN_SET(value)   (((value) << 6) & 0x000000c0)
 

Field : rsvd_iir_31to8

Reserved bits [31:8] - Read Only

Field Access Macros:

#define ALT_UART_IIR_RSVD_IIR_31TO8_LSB   8
 
#define ALT_UART_IIR_RSVD_IIR_31TO8_MSB   31
 
#define ALT_UART_IIR_RSVD_IIR_31TO8_WIDTH   24
 
#define ALT_UART_IIR_RSVD_IIR_31TO8_SET_MSK   0xffffff00
 
#define ALT_UART_IIR_RSVD_IIR_31TO8_CLR_MSK   0x000000ff
 
#define ALT_UART_IIR_RSVD_IIR_31TO8_RESET   0x0
 
#define ALT_UART_IIR_RSVD_IIR_31TO8_GET(value)   (((value) & 0xffffff00) >> 8)
 
#define ALT_UART_IIR_RSVD_IIR_31TO8_SET(value)   (((value) << 8) & 0xffffff00)
 

Data Structures

struct  ALT_UART_IIR_s
 

Macros

#define ALT_UART_IIR_RESET   0x00000001
 
#define ALT_UART_IIR_OFST   0x8
 
#define ALT_UART_IIR_ADDR(base)   ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_UART_IIR_OFST))
 

Typedefs

typedef struct ALT_UART_IIR_s ALT_UART_IIR_t
 

Data Structure Documentation

struct ALT_UART_IIR_s

WARNING: The C register and register group struct declarations are provided for convenience and illustrative purposes. They should, however, be used with caution as the C language standard provides no guarantees about the alignment or atomicity of device memory accesses. The recommended practice for writing hardware drivers is to use the SoCAL access macros and alt_read_word() and alt_write_word() functions.

The struct declaration for register ALT_UART_IIR.

Data Fields
const uint32_t id: 4 ALT_UART_IIR_ID
const uint32_t rsvd_iir_5to4: 2 ALT_UART_IIR_RSVD_IIR_5TO4
const uint32_t fifoen: 2 ALT_UART_IIR_FIFOEN
const uint32_t rsvd_iir_31to8: 24 ALT_UART_IIR_RSVD_IIR_31TO8

Macro Definitions

#define ALT_UART_IIR_ID_E_MODMSTAT   0x0

Enumerated value for register field ALT_UART_IIR_ID

Modem status

#define ALT_UART_IIR_ID_E_NOINTRPENDING   0x1

Enumerated value for register field ALT_UART_IIR_ID

No Interrupt pending

#define ALT_UART_IIR_ID_E_THREMPTY   0x2

Enumerated value for register field ALT_UART_IIR_ID

THR empty

#define ALT_UART_IIR_ID_E_RXDATAVAILABLE   0x4

Enumerated value for register field ALT_UART_IIR_ID

Receive data available

#define ALT_UART_IIR_ID_E_RXLINESTAT   0x6

Enumerated value for register field ALT_UART_IIR_ID

Receive line status

#define ALT_UART_IIR_ID_E_BUSYDETECT   0x7

Enumerated value for register field ALT_UART_IIR_ID

Busy detect

#define ALT_UART_IIR_ID_E_CHARTMO   0xc

Enumerated value for register field ALT_UART_IIR_ID

Character timeout

#define ALT_UART_IIR_ID_LSB   0

The Least Significant Bit (LSB) position of the ALT_UART_IIR_ID register field.

#define ALT_UART_IIR_ID_MSB   3

The Most Significant Bit (MSB) position of the ALT_UART_IIR_ID register field.

#define ALT_UART_IIR_ID_WIDTH   4

The width in bits of the ALT_UART_IIR_ID register field.

#define ALT_UART_IIR_ID_SET_MSK   0x0000000f

The mask used to set the ALT_UART_IIR_ID register field value.

#define ALT_UART_IIR_ID_CLR_MSK   0xfffffff0

The mask used to clear the ALT_UART_IIR_ID register field value.

#define ALT_UART_IIR_ID_RESET   0x1

The reset value of the ALT_UART_IIR_ID register field.

#define ALT_UART_IIR_ID_GET (   value)    (((value) & 0x0000000f) >> 0)

Extracts the ALT_UART_IIR_ID field value from a register.

#define ALT_UART_IIR_ID_SET (   value)    (((value) << 0) & 0x0000000f)

Produces a ALT_UART_IIR_ID register field value suitable for setting the register.

#define ALT_UART_IIR_RSVD_IIR_5TO4_LSB   4

The Least Significant Bit (LSB) position of the ALT_UART_IIR_RSVD_IIR_5TO4 register field.

#define ALT_UART_IIR_RSVD_IIR_5TO4_MSB   5

The Most Significant Bit (MSB) position of the ALT_UART_IIR_RSVD_IIR_5TO4 register field.

#define ALT_UART_IIR_RSVD_IIR_5TO4_WIDTH   2

The width in bits of the ALT_UART_IIR_RSVD_IIR_5TO4 register field.

#define ALT_UART_IIR_RSVD_IIR_5TO4_SET_MSK   0x00000030

The mask used to set the ALT_UART_IIR_RSVD_IIR_5TO4 register field value.

#define ALT_UART_IIR_RSVD_IIR_5TO4_CLR_MSK   0xffffffcf

The mask used to clear the ALT_UART_IIR_RSVD_IIR_5TO4 register field value.

#define ALT_UART_IIR_RSVD_IIR_5TO4_RESET   0x0

The reset value of the ALT_UART_IIR_RSVD_IIR_5TO4 register field.

#define ALT_UART_IIR_RSVD_IIR_5TO4_GET (   value)    (((value) & 0x00000030) >> 4)

Extracts the ALT_UART_IIR_RSVD_IIR_5TO4 field value from a register.

#define ALT_UART_IIR_RSVD_IIR_5TO4_SET (   value)    (((value) << 4) & 0x00000030)

Produces a ALT_UART_IIR_RSVD_IIR_5TO4 register field value suitable for setting the register.

#define ALT_UART_IIR_FIFOEN_E_DISD   0x0

Enumerated value for register field ALT_UART_IIR_FIFOEN

FIFO disabled

#define ALT_UART_IIR_FIFOEN_E_END   0x3

Enumerated value for register field ALT_UART_IIR_FIFOEN

FIFO enabled

#define ALT_UART_IIR_FIFOEN_LSB   6

The Least Significant Bit (LSB) position of the ALT_UART_IIR_FIFOEN register field.

#define ALT_UART_IIR_FIFOEN_MSB   7

The Most Significant Bit (MSB) position of the ALT_UART_IIR_FIFOEN register field.

#define ALT_UART_IIR_FIFOEN_WIDTH   2

The width in bits of the ALT_UART_IIR_FIFOEN register field.

#define ALT_UART_IIR_FIFOEN_SET_MSK   0x000000c0

The mask used to set the ALT_UART_IIR_FIFOEN register field value.

#define ALT_UART_IIR_FIFOEN_CLR_MSK   0xffffff3f

The mask used to clear the ALT_UART_IIR_FIFOEN register field value.

#define ALT_UART_IIR_FIFOEN_RESET   0x0

The reset value of the ALT_UART_IIR_FIFOEN register field.

#define ALT_UART_IIR_FIFOEN_GET (   value)    (((value) & 0x000000c0) >> 6)

Extracts the ALT_UART_IIR_FIFOEN field value from a register.

#define ALT_UART_IIR_FIFOEN_SET (   value)    (((value) << 6) & 0x000000c0)

Produces a ALT_UART_IIR_FIFOEN register field value suitable for setting the register.

#define ALT_UART_IIR_RSVD_IIR_31TO8_LSB   8

The Least Significant Bit (LSB) position of the ALT_UART_IIR_RSVD_IIR_31TO8 register field.

#define ALT_UART_IIR_RSVD_IIR_31TO8_MSB   31

The Most Significant Bit (MSB) position of the ALT_UART_IIR_RSVD_IIR_31TO8 register field.

#define ALT_UART_IIR_RSVD_IIR_31TO8_WIDTH   24

The width in bits of the ALT_UART_IIR_RSVD_IIR_31TO8 register field.

#define ALT_UART_IIR_RSVD_IIR_31TO8_SET_MSK   0xffffff00

The mask used to set the ALT_UART_IIR_RSVD_IIR_31TO8 register field value.

#define ALT_UART_IIR_RSVD_IIR_31TO8_CLR_MSK   0x000000ff

The mask used to clear the ALT_UART_IIR_RSVD_IIR_31TO8 register field value.

#define ALT_UART_IIR_RSVD_IIR_31TO8_RESET   0x0

The reset value of the ALT_UART_IIR_RSVD_IIR_31TO8 register field.

#define ALT_UART_IIR_RSVD_IIR_31TO8_GET (   value)    (((value) & 0xffffff00) >> 8)

Extracts the ALT_UART_IIR_RSVD_IIR_31TO8 field value from a register.

#define ALT_UART_IIR_RSVD_IIR_31TO8_SET (   value)    (((value) << 8) & 0xffffff00)

Produces a ALT_UART_IIR_RSVD_IIR_31TO8 register field value suitable for setting the register.

#define ALT_UART_IIR_RESET   0x00000001

The reset value of the ALT_UART_IIR register.

#define ALT_UART_IIR_OFST   0x8

The byte offset of the ALT_UART_IIR register from the beginning of the component.

#define ALT_UART_IIR_ADDR (   base)    ALT_CAST(void *, (ALT_CAST(char *, (base)) + ALT_UART_IIR_OFST))

The address of the ALT_UART_IIR register.

Typedef Documentation

The typedef declaration for register ALT_UART_IIR.