use crate::svd::{create_bit_range, create_field, create_register, create_register_properties};
use crate::Result;
/// Creates the Interrupt Identity Register.
pub fn create() -> Result<svd::RegisterCluster> {
Ok(svd::RegisterCluster::Register(
create_register(
"iir",
"Interrupt Identity Register",
0x8,
create_register_properties(32, 0x1)?,
Some(&[
create_field(
"fifose",
"FIFOs Enabled. This is used to indicate whether the FIFOs are enabled or disabled. 00 = disabled 11 = enabled",
create_bit_range("[7:6]")?,
svd::Access::ReadOnly,
None,
)?,
create_field(
"iid",
"Interrupt ID. 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 The interrupt priorities are split into four levels that are detailed in Table 8 on page 97. Bit 3 indicates an interrupt can only occur when the FIFOs are enabled and used to distinguish a Character Timeout condition interrupt.",
create_bit_range("[3:0]")?,
svd::Access::ReadOnly,
None,
)?,
]),
None,
)?
))
}