#[repr(C)]
#[cfg_attr(feature = "debug", derive(Debug))]
#[doc = "Register block"]
pub struct RegisterBlock {
    verid: Verid,
    _reserved1: [u8; 0x01fc],
    froctla: Froctla,
    _reserved2: [u8; 0x14],
    frolcka: Frolcka,
    _reserved3: [u8; 0x04],
    froclke: Froclke,
    _reserved4: [u8; 0x04dc],
    wakeup: (),
    _reserved5: [u8; 0xf8],
    waklcka: Waklcka,
}
impl RegisterBlock {
    #[doc = "0x00 - Version ID"]
    #[inline(always)]
    pub const fn verid(&self) -> &Verid {
        &self.verid
    }
    #[doc = "0x200 - FRO16K Control A"]
    #[inline(always)]
    pub const fn froctla(&self) -> &Froctla {
        &self.froctla
    }
    #[doc = "0x218 - FRO16K Lock A"]
    #[inline(always)]
    pub const fn frolcka(&self) -> &Frolcka {
        &self.frolcka
    }
    #[doc = "0x220 - FRO16K Clock Enable"]
    #[inline(always)]
    pub const fn froclke(&self) -> &Froclke {
        &self.froclke
    }
    #[doc = "0x700..0x708 - Array of registers: WAKEUPA"]
    #[inline(always)]
    pub const fn wakeup(&self, n: usize) -> &Wakeup {
        #[allow(clippy::no_effect)]
        [(); 2][n];
        unsafe { &*core::ptr::from_ref(self).cast::<u8>().add(1792).add(8 * n).cast() }
    }
    #[doc = "Iterator for array of:"]
    #[doc = "0x700..0x708 - Array of registers: WAKEUPA"]
    #[inline(always)]
    pub fn wakeup_iter(&self) -> impl Iterator<Item = &Wakeup> {
        (0..2).map(move |n| unsafe { &*core::ptr::from_ref(self).cast::<u8>().add(1792).add(8 * n).cast() })
    }
    #[doc = "0x7f8 - Wakeup Lock A"]
    #[inline(always)]
    pub const fn waklcka(&self) -> &Waklcka {
        &self.waklcka
    }
}
#[doc = "VERID (r) register accessor: Version ID\n\nYou can [`read`](crate::Reg::read) this register and get [`verid::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@verid`] module"]
#[doc(alias = "VERID")]
pub type Verid = crate::Reg<verid::VeridSpec>;
#[doc = "Version ID"]
pub mod verid;
#[doc = "FROCTLA (rw) register accessor: FRO16K Control A\n\nYou can [`read`](crate::Reg::read) this register and get [`froctla::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`froctla::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@froctla`] module"]
#[doc(alias = "FROCTLA")]
pub type Froctla = crate::Reg<froctla::FroctlaSpec>;
#[doc = "FRO16K Control A"]
pub mod froctla;
#[doc = "FROLCKA (rw) register accessor: FRO16K Lock A\n\nYou can [`read`](crate::Reg::read) this register and get [`frolcka::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`frolcka::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@frolcka`] module"]
#[doc(alias = "FROLCKA")]
pub type Frolcka = crate::Reg<frolcka::FrolckaSpec>;
#[doc = "FRO16K Lock A"]
pub mod frolcka;
#[doc = "FROCLKE (rw) register accessor: FRO16K Clock Enable\n\nYou can [`read`](crate::Reg::read) this register and get [`froclke::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`froclke::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@froclke`] module"]
#[doc(alias = "FROCLKE")]
pub type Froclke = crate::Reg<froclke::FroclkeSpec>;
#[doc = "FRO16K Clock Enable"]
pub mod froclke;
#[doc = "Array of registers: WAKEUPA"]
pub use self::wakeup::Wakeup;
#[doc = r"Cluster"]
#[doc = "Array of registers: WAKEUPA"]
pub mod wakeup;
#[doc = "WAKLCKA (rw) register accessor: Wakeup Lock A\n\nYou can [`read`](crate::Reg::read) this register and get [`waklcka::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`waklcka::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@waklcka`] module"]
#[doc(alias = "WAKLCKA")]
pub type Waklcka = crate::Reg<waklcka::WaklckaSpec>;
#[doc = "Wakeup Lock A"]
pub mod waklcka;
