#[doc = r"Register block"]
#[repr(C)]
pub struct RegisterBlock {
#[doc = "0x00 - General Purpose IO Register 0"]
pub gpior0: GPIOR0,
_reserved1: [u8; 11usize],
#[doc = "0x0c - General Purpose IO Register 1"]
pub gpior1: GPIOR1,
#[doc = "0x0d - General Purpose IO Register 2"]
pub gpior2: GPIOR2,
_reserved3: [u8; 7usize],
#[doc = "0x15 - Sleep Mode Control Register"]
pub smcr: SMCR,
#[doc = "0x16 - MCU Status Register"]
pub mcusr: MCUSR,
#[doc = "0x17 - MCU Control Register"]
pub mcucr: MCUCR,
_reserved6: [u8; 5usize],
#[doc = "0x1d - Extended Z-pointer Register for ELPM/SPM"]
pub rampz: RAMPZ,
#[doc = "0x1e - Extended Indirect Register"]
pub eind: EIND,
_reserved8: [u8; 4usize],
#[doc = "0x23 - <TBD>"]
pub clkpr: CLKPR,
_reserved9: [u8; 2usize],
#[doc = "0x26 - Power Reduction Register0"]
pub prr0: PRR0,
#[doc = "0x27 - Power Reduction Register1"]
pub prr1: PRR1,
#[doc = "0x28 - Oscillator Calibration Value"]
pub osccal: OSCCAL,
#[doc = "0x29 - Oscillator Control Register"]
pub rcctrl: RCCTRL,
_reserved13: [u8; 93usize],
#[doc = "0x87 - <TBD>"]
pub clksel0: CLKSEL0,
#[doc = "0x88 - <TBD>"]
pub clksel1: CLKSEL1,
#[doc = "0x89 - <TBD>"]
pub clksta: CLKSTA,
}
#[doc = "<TBD>\n\nThis register you can [`read`](crate::generic::Reg::read), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [clkpr](clkpr) module"]
pub type CLKPR = crate::Reg<u8, _CLKPR>;
#[allow(missing_docs)]
#[doc(hidden)]
pub struct _CLKPR;
#[doc = "`read()` method returns [clkpr::R](clkpr::R) reader structure"]
impl crate::Readable for CLKPR {}
#[doc = "`write(|w| ..)` method takes [clkpr::W](clkpr::W) writer structure"]
impl crate::Writable for CLKPR {}
#[doc = "<TBD>"]
pub mod clkpr;
#[doc = "<TBD>\n\nThis register you can [`read`](crate::generic::Reg::read), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [clksel0](clksel0) module"]
pub type CLKSEL0 = crate::Reg<u8, _CLKSEL0>;
#[allow(missing_docs)]
#[doc(hidden)]
pub struct _CLKSEL0;
#[doc = "`read()` method returns [clksel0::R](clksel0::R) reader structure"]
impl crate::Readable for CLKSEL0 {}
#[doc = "`write(|w| ..)` method takes [clksel0::W](clksel0::W) writer structure"]
impl crate::Writable for CLKSEL0 {}
#[doc = "<TBD>"]
pub mod clksel0;
#[doc = "<TBD>\n\nThis register you can [`read`](crate::generic::Reg::read), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [clksel1](clksel1) module"]
pub type CLKSEL1 = crate::Reg<u8, _CLKSEL1>;
#[allow(missing_docs)]
#[doc(hidden)]
pub struct _CLKSEL1;
#[doc = "`read()` method returns [clksel1::R](clksel1::R) reader structure"]
impl crate::Readable for CLKSEL1 {}
#[doc = "`write(|w| ..)` method takes [clksel1::W](clksel1::W) writer structure"]
impl crate::Writable for CLKSEL1 {}
#[doc = "<TBD>"]
pub mod clksel1;
#[doc = "<TBD>\n\nThis register you can [`read`](crate::generic::Reg::read). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [clksta](clksta) module"]
pub type CLKSTA = crate::Reg<u8, _CLKSTA>;
#[allow(missing_docs)]
#[doc(hidden)]
pub struct _CLKSTA;
#[doc = "`read()` method returns [clksta::R](clksta::R) reader structure"]
impl crate::Readable for CLKSTA {}
#[doc = "<TBD>"]
pub mod clksta;
#[doc = "Extended Indirect Register\n\nThis register you can [`read`](crate::generic::Reg::read), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [eind](eind) module"]
pub type EIND = crate::Reg<u8, _EIND>;
#[allow(missing_docs)]
#[doc(hidden)]
pub struct _EIND;
#[doc = "`read()` method returns [eind::R](eind::R) reader structure"]
impl crate::Readable for EIND {}
#[doc = "`write(|w| ..)` method takes [eind::W](eind::W) writer structure"]
impl crate::Writable for EIND {}
#[doc = "Extended Indirect Register"]
pub mod eind;
#[doc = "General Purpose IO Register 0\n\nThis register you can [`read`](crate::generic::Reg::read), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [gpior0](gpior0) module"]
pub type GPIOR0 = crate::Reg<u8, _GPIOR0>;
#[allow(missing_docs)]
#[doc(hidden)]
pub struct _GPIOR0;
#[doc = "`read()` method returns [gpior0::R](gpior0::R) reader structure"]
impl crate::Readable for GPIOR0 {}
#[doc = "`write(|w| ..)` method takes [gpior0::W](gpior0::W) writer structure"]
impl crate::Writable for GPIOR0 {}
#[doc = "General Purpose IO Register 0"]
pub mod gpior0;
#[doc = "General Purpose IO Register 1\n\nThis register you can [`read`](crate::generic::Reg::read), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [gpior1](gpior1) module"]
pub type GPIOR1 = crate::Reg<u8, _GPIOR1>;
#[allow(missing_docs)]
#[doc(hidden)]
pub struct _GPIOR1;
#[doc = "`read()` method returns [gpior1::R](gpior1::R) reader structure"]
impl crate::Readable for GPIOR1 {}
#[doc = "`write(|w| ..)` method takes [gpior1::W](gpior1::W) writer structure"]
impl crate::Writable for GPIOR1 {}
#[doc = "General Purpose IO Register 1"]
pub mod gpior1;
#[doc = "General Purpose IO Register 2\n\nThis register you can [`read`](crate::generic::Reg::read), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [gpior2](gpior2) module"]
pub type GPIOR2 = crate::Reg<u8, _GPIOR2>;
#[allow(missing_docs)]
#[doc(hidden)]
pub struct _GPIOR2;
#[doc = "`read()` method returns [gpior2::R](gpior2::R) reader structure"]
impl crate::Readable for GPIOR2 {}
#[doc = "`write(|w| ..)` method takes [gpior2::W](gpior2::W) writer structure"]
impl crate::Writable for GPIOR2 {}
#[doc = "General Purpose IO Register 2"]
pub mod gpior2;
#[doc = "MCU Control Register\n\nThis register you can [`read`](crate::generic::Reg::read), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [mcucr](mcucr) module"]
pub type MCUCR = crate::Reg<u8, _MCUCR>;
#[allow(missing_docs)]
#[doc(hidden)]
pub struct _MCUCR;
#[doc = "`read()` method returns [mcucr::R](mcucr::R) reader structure"]
impl crate::Readable for MCUCR {}
#[doc = "`write(|w| ..)` method takes [mcucr::W](mcucr::W) writer structure"]
impl crate::Writable for MCUCR {}
#[doc = "MCU Control Register"]
pub mod mcucr;
#[doc = "MCU Status Register\n\nThis register you can [`read`](crate::generic::Reg::read), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [mcusr](mcusr) module"]
pub type MCUSR = crate::Reg<u8, _MCUSR>;
#[allow(missing_docs)]
#[doc(hidden)]
pub struct _MCUSR;
#[doc = "`read()` method returns [mcusr::R](mcusr::R) reader structure"]
impl crate::Readable for MCUSR {}
#[doc = "`write(|w| ..)` method takes [mcusr::W](mcusr::W) writer structure"]
impl crate::Writable for MCUSR {}
#[doc = "MCU Status Register"]
pub mod mcusr;
#[doc = "Oscillator Calibration Value\n\nThis register you can [`read`](crate::generic::Reg::read), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [osccal](osccal) module"]
pub type OSCCAL = crate::Reg<u8, _OSCCAL>;
#[allow(missing_docs)]
#[doc(hidden)]
pub struct _OSCCAL;
#[doc = "`read()` method returns [osccal::R](osccal::R) reader structure"]
impl crate::Readable for OSCCAL {}
#[doc = "`write(|w| ..)` method takes [osccal::W](osccal::W) writer structure"]
impl crate::Writable for OSCCAL {}
#[doc = "Oscillator Calibration Value"]
pub mod osccal;
#[doc = "Power Reduction Register0\n\nThis register you can [`read`](crate::generic::Reg::read), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [prr0](prr0) module"]
pub type PRR0 = crate::Reg<u8, _PRR0>;
#[allow(missing_docs)]
#[doc(hidden)]
pub struct _PRR0;
#[doc = "`read()` method returns [prr0::R](prr0::R) reader structure"]
impl crate::Readable for PRR0 {}
#[doc = "`write(|w| ..)` method takes [prr0::W](prr0::W) writer structure"]
impl crate::Writable for PRR0 {}
#[doc = "Power Reduction Register0"]
pub mod prr0;
#[doc = "Power Reduction Register1\n\nThis register you can [`read`](crate::generic::Reg::read), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [prr1](prr1) module"]
pub type PRR1 = crate::Reg<u8, _PRR1>;
#[allow(missing_docs)]
#[doc(hidden)]
pub struct _PRR1;
#[doc = "`read()` method returns [prr1::R](prr1::R) reader structure"]
impl crate::Readable for PRR1 {}
#[doc = "`write(|w| ..)` method takes [prr1::W](prr1::W) writer structure"]
impl crate::Writable for PRR1 {}
#[doc = "Power Reduction Register1"]
pub mod prr1;
#[doc = "Extended Z-pointer Register for ELPM/SPM\n\nThis register you can [`read`](crate::generic::Reg::read), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [rampz](rampz) module"]
pub type RAMPZ = crate::Reg<u8, _RAMPZ>;
#[allow(missing_docs)]
#[doc(hidden)]
pub struct _RAMPZ;
#[doc = "`read()` method returns [rampz::R](rampz::R) reader structure"]
impl crate::Readable for RAMPZ {}
#[doc = "`write(|w| ..)` method takes [rampz::W](rampz::W) writer structure"]
impl crate::Writable for RAMPZ {}
#[doc = "Extended Z-pointer Register for ELPM/SPM"]
pub mod rampz;
#[doc = "Oscillator Control Register\n\nThis register you can [`read`](crate::generic::Reg::read), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [rcctrl](rcctrl) module"]
pub type RCCTRL = crate::Reg<u8, _RCCTRL>;
#[allow(missing_docs)]
#[doc(hidden)]
pub struct _RCCTRL;
#[doc = "`read()` method returns [rcctrl::R](rcctrl::R) reader structure"]
impl crate::Readable for RCCTRL {}
#[doc = "`write(|w| ..)` method takes [rcctrl::W](rcctrl::W) writer structure"]
impl crate::Writable for RCCTRL {}
#[doc = "Oscillator Control Register"]
pub mod rcctrl;
#[doc = "Sleep Mode Control Register\n\nThis register you can [`read`](crate::generic::Reg::read), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [smcr](smcr) module"]
pub type SMCR = crate::Reg<u8, _SMCR>;
#[allow(missing_docs)]
#[doc(hidden)]
pub struct _SMCR;
#[doc = "`read()` method returns [smcr::R](smcr::R) reader structure"]
impl crate::Readable for SMCR {}
#[doc = "`write(|w| ..)` method takes [smcr::W](smcr::W) writer structure"]
impl crate::Writable for SMCR {}
#[doc = "Sleep Mode Control Register"]
pub mod smcr;