use vcell::VolatileCell;
#[doc = r" Register block"]
#[repr(C)]
pub struct RegisterBlock {
    #[doc = "0x00 - Version ID Register"] pub verid: VERID,
    #[doc = "0x04 - Parameter Register"] pub param: PARAM,
    #[doc = "0x08 - Module Control Register"] pub mcr: MCR,
    #[doc = "0x0c - Module Status Register"] pub msr: MSR,
    #[doc = "0x10 - Module Interrupt Enable Register"] pub mier: MIER,
    #[doc = "0x14 - Set Timer Enable Register"] pub setten: SETTEN,
    #[doc = "0x18 - Clear Timer Enable Register"] pub clrten: CLRTEN,
    _reserved0: [u8; 4usize],
    #[doc = "0x20 - Timer Value Register"] pub tval0: TVAL0,
    #[doc = "0x24 - Current Timer Value"] pub cval0: CVAL0,
    #[doc = "0x28 - Timer Control Register"] pub tctrl0: TCTRL0,
    _reserved1: [u8; 4usize],
    #[doc = "0x30 - Timer Value Register"] pub tval1: TVAL1,
    #[doc = "0x34 - Current Timer Value"] pub cval1: CVAL1,
    #[doc = "0x38 - Timer Control Register"] pub tctrl1: TCTRL1,
    _reserved2: [u8; 4usize],
    #[doc = "0x40 - Timer Value Register"] pub tval2: TVAL2,
    #[doc = "0x44 - Current Timer Value"] pub cval2: CVAL2,
    #[doc = "0x48 - Timer Control Register"] pub tctrl2: TCTRL2,
    _reserved3: [u8; 4usize],
    #[doc = "0x50 - Timer Value Register"] pub tval3: TVAL3,
    #[doc = "0x54 - Current Timer Value"] pub cval3: CVAL3,
    #[doc = "0x58 - Timer Control Register"] pub tctrl3: TCTRL3,
}
#[doc = "Version ID Register"]
pub struct VERID {
    register: VolatileCell<u32>,
}
#[doc = "Version ID Register"]
pub mod verid;
#[doc = "Parameter Register"]
pub struct PARAM {
    register: VolatileCell<u32>,
}
#[doc = "Parameter Register"]
pub mod param;
#[doc = "Module Control Register"]
pub struct MCR {
    register: VolatileCell<u32>,
}
#[doc = "Module Control Register"]
pub mod mcr;
#[doc = "Module Status Register"]
pub struct MSR {
    register: VolatileCell<u32>,
}
#[doc = "Module Status Register"]
pub mod msr;
#[doc = "Module Interrupt Enable Register"]
pub struct MIER {
    register: VolatileCell<u32>,
}
#[doc = "Module Interrupt Enable Register"]
pub mod mier;
#[doc = "Set Timer Enable Register"]
pub struct SETTEN {
    register: VolatileCell<u32>,
}
#[doc = "Set Timer Enable Register"]
pub mod setten;
#[doc = "Clear Timer Enable Register"]
pub struct CLRTEN {
    register: VolatileCell<u32>,
}
#[doc = "Clear Timer Enable Register"]
pub mod clrten;
#[doc = "Timer Value Register"]
pub struct TVAL0 {
    register: VolatileCell<u32>,
}
#[doc = "Timer Value Register"]
pub mod tval0;
#[doc = "Current Timer Value"]
pub struct CVAL0 {
    register: VolatileCell<u32>,
}
#[doc = "Current Timer Value"]
pub mod cval0;
#[doc = "Timer Control Register"]
pub struct TCTRL0 {
    register: VolatileCell<u32>,
}
#[doc = "Timer Control Register"]
pub mod tctrl0;
#[doc = "Timer Value Register"]
pub struct TVAL1 {
    register: VolatileCell<u32>,
}
#[doc = "Timer Value Register"]
pub mod tval1;
#[doc = "Current Timer Value"]
pub struct CVAL1 {
    register: VolatileCell<u32>,
}
#[doc = "Current Timer Value"]
pub mod cval1;
#[doc = "Timer Control Register"]
pub struct TCTRL1 {
    register: VolatileCell<u32>,
}
#[doc = "Timer Control Register"]
pub mod tctrl1;
#[doc = "Timer Value Register"]
pub struct TVAL2 {
    register: VolatileCell<u32>,
}
#[doc = "Timer Value Register"]
pub mod tval2;
#[doc = "Current Timer Value"]
pub struct CVAL2 {
    register: VolatileCell<u32>,
}
#[doc = "Current Timer Value"]
pub mod cval2;
#[doc = "Timer Control Register"]
pub struct TCTRL2 {
    register: VolatileCell<u32>,
}
#[doc = "Timer Control Register"]
pub mod tctrl2;
#[doc = "Timer Value Register"]
pub struct TVAL3 {
    register: VolatileCell<u32>,
}
#[doc = "Timer Value Register"]
pub mod tval3;
#[doc = "Current Timer Value"]
pub struct CVAL3 {
    register: VolatileCell<u32>,
}
#[doc = "Current Timer Value"]
pub mod cval3;
#[doc = "Timer Control Register"]
pub struct TCTRL3 {
    register: VolatileCell<u32>,
}
#[doc = "Timer Control Register"]
pub mod tctrl3;
