summaryrefslogtreecommitdiff
path: root/src/tcc0.rs
diff options
context:
space:
mode:
authorArne Dußin2021-11-06 11:50:33 +0100
committerArne Dußin2021-11-06 11:50:33 +0100
commit0666a6ba1dbd66cf8b93c113e362ccbcd99152a0 (patch)
treea184284dbd2316f4624f092e4e7521ea8c90855b /src/tcc0.rs
downloadsamc21-0666a6ba1dbd66cf8b93c113e362ccbcd99152a0.tar.gz
samc21-0666a6ba1dbd66cf8b93c113e362ccbcd99152a0.zip
Initial commit
Diffstat (limited to 'src/tcc0.rs')
-rw-r--r--src/tcc0.rs359
1 files changed, 359 insertions, 0 deletions
diff --git a/src/tcc0.rs b/src/tcc0.rs
new file mode 100644
index 0000000..6ce813a
--- /dev/null
+++ b/src/tcc0.rs
@@ -0,0 +1,359 @@
+#[doc = r"Register block"]
+#[repr(C)]
+pub struct RegisterBlock {
+ #[doc = "0x00 - Control A"]
+ pub ctrla: crate::Reg<ctrla::CTRLA_SPEC>,
+ #[doc = "0x04 - Control B Clear"]
+ pub ctrlbclr: crate::Reg<ctrlbclr::CTRLBCLR_SPEC>,
+ #[doc = "0x05 - Control B Set"]
+ pub ctrlbset: crate::Reg<ctrlbset::CTRLBSET_SPEC>,
+ _reserved3: [u8; 0x02],
+ #[doc = "0x08 - Synchronization Busy"]
+ pub syncbusy: crate::Reg<syncbusy::SYNCBUSY_SPEC>,
+ #[doc = "0x0c - Recoverable Fault A Configuration"]
+ pub fctrla: crate::Reg<fctrla::FCTRLA_SPEC>,
+ #[doc = "0x10 - Recoverable Fault B Configuration"]
+ pub fctrlb: crate::Reg<fctrlb::FCTRLB_SPEC>,
+ #[doc = "0x14 - Waveform Extension Configuration"]
+ pub wexctrl: crate::Reg<wexctrl::WEXCTRL_SPEC>,
+ #[doc = "0x18 - Driver Control"]
+ pub drvctrl: crate::Reg<drvctrl::DRVCTRL_SPEC>,
+ _reserved8: [u8; 0x02],
+ #[doc = "0x1e - Debug Control"]
+ pub dbgctrl: crate::Reg<dbgctrl::DBGCTRL_SPEC>,
+ _reserved9: [u8; 0x01],
+ #[doc = "0x20 - Event Control"]
+ pub evctrl: crate::Reg<evctrl::EVCTRL_SPEC>,
+ #[doc = "0x24 - Interrupt Enable Clear"]
+ pub intenclr: crate::Reg<intenclr::INTENCLR_SPEC>,
+ #[doc = "0x28 - Interrupt Enable Set"]
+ pub intenset: crate::Reg<intenset::INTENSET_SPEC>,
+ #[doc = "0x2c - Interrupt Flag Status and Clear"]
+ pub intflag: crate::Reg<intflag::INTFLAG_SPEC>,
+ #[doc = "0x30 - Status"]
+ pub status: crate::Reg<status::STATUS_SPEC>,
+ _reserved_14_count: [u8; 0x04],
+ #[doc = "0x38 - Pattern"]
+ pub patt: crate::Reg<patt::PATT_SPEC>,
+ _reserved16: [u8; 0x02],
+ #[doc = "0x3c - Waveform Control"]
+ pub wave: crate::Reg<wave::WAVE_SPEC>,
+ _reserved_17_per: [u8; 0x04],
+ _reserved_18_cc: [u8; 0x10],
+ _reserved19: [u8; 0x10],
+ #[doc = "0x64 - Pattern Buffer"]
+ pub pattbuf: crate::Reg<pattbuf::PATTBUF_SPEC>,
+ _reserved20: [u8; 0x06],
+ _reserved_20_perbuf: [u8; 0x04],
+ _reserved_21_ccbuf: [u8; 0x10],
+}
+impl RegisterBlock {
+ #[doc = "0x34 - Count"]
+ #[inline(always)]
+ pub fn count_dith6_mode(&self) -> &crate::Reg<count_dith6_mode::COUNT_DITH6_MODE_SPEC> {
+ unsafe {
+ &*(((self as *const Self) as *const u8).add(52usize)
+ as *const crate::Reg<count_dith6_mode::COUNT_DITH6_MODE_SPEC>)
+ }
+ }
+ #[doc = "0x34 - Count"]
+ #[inline(always)]
+ pub fn count_dith5_mode(&self) -> &crate::Reg<count_dith5_mode::COUNT_DITH5_MODE_SPEC> {
+ unsafe {
+ &*(((self as *const Self) as *const u8).add(52usize)
+ as *const crate::Reg<count_dith5_mode::COUNT_DITH5_MODE_SPEC>)
+ }
+ }
+ #[doc = "0x34 - Count"]
+ #[inline(always)]
+ pub fn count_dith4_mode(&self) -> &crate::Reg<count_dith4_mode::COUNT_DITH4_MODE_SPEC> {
+ unsafe {
+ &*(((self as *const Self) as *const u8).add(52usize)
+ as *const crate::Reg<count_dith4_mode::COUNT_DITH4_MODE_SPEC>)
+ }
+ }
+ #[doc = "0x34 - Count"]
+ #[inline(always)]
+ pub fn count(&self) -> &crate::Reg<count::COUNT_SPEC> {
+ unsafe {
+ &*(((self as *const Self) as *const u8).add(52usize)
+ as *const crate::Reg<count::COUNT_SPEC>)
+ }
+ }
+ #[doc = "0x40 - Period"]
+ #[inline(always)]
+ pub fn per_dith6_mode(&self) -> &crate::Reg<per_dith6_mode::PER_DITH6_MODE_SPEC> {
+ unsafe {
+ &*(((self as *const Self) as *const u8).add(64usize)
+ as *const crate::Reg<per_dith6_mode::PER_DITH6_MODE_SPEC>)
+ }
+ }
+ #[doc = "0x40 - Period"]
+ #[inline(always)]
+ pub fn per_dith5_mode(&self) -> &crate::Reg<per_dith5_mode::PER_DITH5_MODE_SPEC> {
+ unsafe {
+ &*(((self as *const Self) as *const u8).add(64usize)
+ as *const crate::Reg<per_dith5_mode::PER_DITH5_MODE_SPEC>)
+ }
+ }
+ #[doc = "0x40 - Period"]
+ #[inline(always)]
+ pub fn per_dith4_mode(&self) -> &crate::Reg<per_dith4_mode::PER_DITH4_MODE_SPEC> {
+ unsafe {
+ &*(((self as *const Self) as *const u8).add(64usize)
+ as *const crate::Reg<per_dith4_mode::PER_DITH4_MODE_SPEC>)
+ }
+ }
+ #[doc = "0x40 - Period"]
+ #[inline(always)]
+ pub fn per(&self) -> &crate::Reg<per::PER_SPEC> {
+ unsafe {
+ &*(((self as *const Self) as *const u8).add(64usize)
+ as *const crate::Reg<per::PER_SPEC>)
+ }
+ }
+ #[doc = "0x44..0x54 - Compare and Capture"]
+ #[inline(always)]
+ pub fn cc_dith6_mode(&self) -> &[crate::Reg<cc_dith6_mode::CC_DITH6_MODE_SPEC>; 4] {
+ unsafe {
+ &*(((self as *const Self) as *const u8).add(68usize)
+ as *const [crate::Reg<cc_dith6_mode::CC_DITH6_MODE_SPEC>; 4])
+ }
+ }
+ #[doc = "0x44..0x54 - Compare and Capture"]
+ #[inline(always)]
+ pub fn cc_dith5_mode(&self) -> &[crate::Reg<cc_dith5_mode::CC_DITH5_MODE_SPEC>; 4] {
+ unsafe {
+ &*(((self as *const Self) as *const u8).add(68usize)
+ as *const [crate::Reg<cc_dith5_mode::CC_DITH5_MODE_SPEC>; 4])
+ }
+ }
+ #[doc = "0x44..0x54 - Compare and Capture"]
+ #[inline(always)]
+ pub fn cc_dith4_mode(&self) -> &[crate::Reg<cc_dith4_mode::CC_DITH4_MODE_SPEC>; 4] {
+ unsafe {
+ &*(((self as *const Self) as *const u8).add(68usize)
+ as *const [crate::Reg<cc_dith4_mode::CC_DITH4_MODE_SPEC>; 4])
+ }
+ }
+ #[doc = "0x44..0x54 - Compare and Capture"]
+ #[inline(always)]
+ pub fn cc(&self) -> &[crate::Reg<cc::CC_SPEC>; 4] {
+ unsafe {
+ &*(((self as *const Self) as *const u8).add(68usize)
+ as *const [crate::Reg<cc::CC_SPEC>; 4])
+ }
+ }
+ #[doc = "0x6c - Period Buffer"]
+ #[inline(always)]
+ pub fn perbuf_dith6_mode(&self) -> &crate::Reg<perbuf_dith6_mode::PERBUF_DITH6_MODE_SPEC> {
+ unsafe {
+ &*(((self as *const Self) as *const u8).add(108usize)
+ as *const crate::Reg<perbuf_dith6_mode::PERBUF_DITH6_MODE_SPEC>)
+ }
+ }
+ #[doc = "0x6c - Period Buffer"]
+ #[inline(always)]
+ pub fn perbuf_dith5_mode(&self) -> &crate::Reg<perbuf_dith5_mode::PERBUF_DITH5_MODE_SPEC> {
+ unsafe {
+ &*(((self as *const Self) as *const u8).add(108usize)
+ as *const crate::Reg<perbuf_dith5_mode::PERBUF_DITH5_MODE_SPEC>)
+ }
+ }
+ #[doc = "0x6c - Period Buffer"]
+ #[inline(always)]
+ pub fn perbuf_dith4_mode(&self) -> &crate::Reg<perbuf_dith4_mode::PERBUF_DITH4_MODE_SPEC> {
+ unsafe {
+ &*(((self as *const Self) as *const u8).add(108usize)
+ as *const crate::Reg<perbuf_dith4_mode::PERBUF_DITH4_MODE_SPEC>)
+ }
+ }
+ #[doc = "0x6c - Period Buffer"]
+ #[inline(always)]
+ pub fn perbuf(&self) -> &crate::Reg<perbuf::PERBUF_SPEC> {
+ unsafe {
+ &*(((self as *const Self) as *const u8).add(108usize)
+ as *const crate::Reg<perbuf::PERBUF_SPEC>)
+ }
+ }
+ #[doc = "0x70..0x80 - Compare and Capture Buffer"]
+ #[inline(always)]
+ pub fn ccbuf_dith6_mode(&self) -> &[crate::Reg<ccbuf_dith6_mode::CCBUF_DITH6_MODE_SPEC>; 4] {
+ unsafe {
+ &*(((self as *const Self) as *const u8).add(112usize)
+ as *const [crate::Reg<ccbuf_dith6_mode::CCBUF_DITH6_MODE_SPEC>; 4])
+ }
+ }
+ #[doc = "0x70..0x80 - Compare and Capture Buffer"]
+ #[inline(always)]
+ pub fn ccbuf_dith5_mode(&self) -> &[crate::Reg<ccbuf_dith5_mode::CCBUF_DITH5_MODE_SPEC>; 4] {
+ unsafe {
+ &*(((self as *const Self) as *const u8).add(112usize)
+ as *const [crate::Reg<ccbuf_dith5_mode::CCBUF_DITH5_MODE_SPEC>; 4])
+ }
+ }
+ #[doc = "0x70..0x80 - Compare and Capture Buffer"]
+ #[inline(always)]
+ pub fn ccbuf_dith4_mode(&self) -> &[crate::Reg<ccbuf_dith4_mode::CCBUF_DITH4_MODE_SPEC>; 4] {
+ unsafe {
+ &*(((self as *const Self) as *const u8).add(112usize)
+ as *const [crate::Reg<ccbuf_dith4_mode::CCBUF_DITH4_MODE_SPEC>; 4])
+ }
+ }
+ #[doc = "0x70..0x80 - Compare and Capture Buffer"]
+ #[inline(always)]
+ pub fn ccbuf(&self) -> &[crate::Reg<ccbuf::CCBUF_SPEC>; 4] {
+ unsafe {
+ &*(((self as *const Self) as *const u8).add(112usize)
+ as *const [crate::Reg<ccbuf::CCBUF_SPEC>; 4])
+ }
+ }
+}
+#[doc = "CTRLA register accessor: an alias for `Reg<CTRLA_SPEC>`"]
+pub type CTRLA = crate::Reg<ctrla::CTRLA_SPEC>;
+#[doc = "Control A"]
+pub mod ctrla;
+#[doc = "CTRLBCLR register accessor: an alias for `Reg<CTRLBCLR_SPEC>`"]
+pub type CTRLBCLR = crate::Reg<ctrlbclr::CTRLBCLR_SPEC>;
+#[doc = "Control B Clear"]
+pub mod ctrlbclr;
+#[doc = "CTRLBSET register accessor: an alias for `Reg<CTRLBSET_SPEC>`"]
+pub type CTRLBSET = crate::Reg<ctrlbset::CTRLBSET_SPEC>;
+#[doc = "Control B Set"]
+pub mod ctrlbset;
+#[doc = "SYNCBUSY register accessor: an alias for `Reg<SYNCBUSY_SPEC>`"]
+pub type SYNCBUSY = crate::Reg<syncbusy::SYNCBUSY_SPEC>;
+#[doc = "Synchronization Busy"]
+pub mod syncbusy;
+#[doc = "FCTRLA register accessor: an alias for `Reg<FCTRLA_SPEC>`"]
+pub type FCTRLA = crate::Reg<fctrla::FCTRLA_SPEC>;
+#[doc = "Recoverable Fault A Configuration"]
+pub mod fctrla;
+#[doc = "FCTRLB register accessor: an alias for `Reg<FCTRLB_SPEC>`"]
+pub type FCTRLB = crate::Reg<fctrlb::FCTRLB_SPEC>;
+#[doc = "Recoverable Fault B Configuration"]
+pub mod fctrlb;
+#[doc = "WEXCTRL register accessor: an alias for `Reg<WEXCTRL_SPEC>`"]
+pub type WEXCTRL = crate::Reg<wexctrl::WEXCTRL_SPEC>;
+#[doc = "Waveform Extension Configuration"]
+pub mod wexctrl;
+#[doc = "DRVCTRL register accessor: an alias for `Reg<DRVCTRL_SPEC>`"]
+pub type DRVCTRL = crate::Reg<drvctrl::DRVCTRL_SPEC>;
+#[doc = "Driver Control"]
+pub mod drvctrl;
+#[doc = "DBGCTRL register accessor: an alias for `Reg<DBGCTRL_SPEC>`"]
+pub type DBGCTRL = crate::Reg<dbgctrl::DBGCTRL_SPEC>;
+#[doc = "Debug Control"]
+pub mod dbgctrl;
+#[doc = "EVCTRL register accessor: an alias for `Reg<EVCTRL_SPEC>`"]
+pub type EVCTRL = crate::Reg<evctrl::EVCTRL_SPEC>;
+#[doc = "Event Control"]
+pub mod evctrl;
+#[doc = "INTENCLR register accessor: an alias for `Reg<INTENCLR_SPEC>`"]
+pub type INTENCLR = crate::Reg<intenclr::INTENCLR_SPEC>;
+#[doc = "Interrupt Enable Clear"]
+pub mod intenclr;
+#[doc = "INTENSET register accessor: an alias for `Reg<INTENSET_SPEC>`"]
+pub type INTENSET = crate::Reg<intenset::INTENSET_SPEC>;
+#[doc = "Interrupt Enable Set"]
+pub mod intenset;
+#[doc = "INTFLAG register accessor: an alias for `Reg<INTFLAG_SPEC>`"]
+pub type INTFLAG = crate::Reg<intflag::INTFLAG_SPEC>;
+#[doc = "Interrupt Flag Status and Clear"]
+pub mod intflag;
+#[doc = "STATUS register accessor: an alias for `Reg<STATUS_SPEC>`"]
+pub type STATUS = crate::Reg<status::STATUS_SPEC>;
+#[doc = "Status"]
+pub mod status;
+#[doc = "COUNT register accessor: an alias for `Reg<COUNT_SPEC>`"]
+pub type COUNT = crate::Reg<count::COUNT_SPEC>;
+#[doc = "Count"]
+pub mod count;
+#[doc = "COUNT_DITH4_MODE register accessor: an alias for `Reg<COUNT_DITH4_MODE_SPEC>`"]
+pub type COUNT_DITH4_MODE = crate::Reg<count_dith4_mode::COUNT_DITH4_MODE_SPEC>;
+#[doc = "Count"]
+pub mod count_dith4_mode;
+#[doc = "COUNT_DITH5_MODE register accessor: an alias for `Reg<COUNT_DITH5_MODE_SPEC>`"]
+pub type COUNT_DITH5_MODE = crate::Reg<count_dith5_mode::COUNT_DITH5_MODE_SPEC>;
+#[doc = "Count"]
+pub mod count_dith5_mode;
+#[doc = "COUNT_DITH6_MODE register accessor: an alias for `Reg<COUNT_DITH6_MODE_SPEC>`"]
+pub type COUNT_DITH6_MODE = crate::Reg<count_dith6_mode::COUNT_DITH6_MODE_SPEC>;
+#[doc = "Count"]
+pub mod count_dith6_mode;
+#[doc = "PATT register accessor: an alias for `Reg<PATT_SPEC>`"]
+pub type PATT = crate::Reg<patt::PATT_SPEC>;
+#[doc = "Pattern"]
+pub mod patt;
+#[doc = "WAVE register accessor: an alias for `Reg<WAVE_SPEC>`"]
+pub type WAVE = crate::Reg<wave::WAVE_SPEC>;
+#[doc = "Waveform Control"]
+pub mod wave;
+#[doc = "PER register accessor: an alias for `Reg<PER_SPEC>`"]
+pub type PER = crate::Reg<per::PER_SPEC>;
+#[doc = "Period"]
+pub mod per;
+#[doc = "PER_DITH4_MODE register accessor: an alias for `Reg<PER_DITH4_MODE_SPEC>`"]
+pub type PER_DITH4_MODE = crate::Reg<per_dith4_mode::PER_DITH4_MODE_SPEC>;
+#[doc = "Period"]
+pub mod per_dith4_mode;
+#[doc = "PER_DITH5_MODE register accessor: an alias for `Reg<PER_DITH5_MODE_SPEC>`"]
+pub type PER_DITH5_MODE = crate::Reg<per_dith5_mode::PER_DITH5_MODE_SPEC>;
+#[doc = "Period"]
+pub mod per_dith5_mode;
+#[doc = "PER_DITH6_MODE register accessor: an alias for `Reg<PER_DITH6_MODE_SPEC>`"]
+pub type PER_DITH6_MODE = crate::Reg<per_dith6_mode::PER_DITH6_MODE_SPEC>;
+#[doc = "Period"]
+pub mod per_dith6_mode;
+#[doc = "CC register accessor: an alias for `Reg<CC_SPEC>`"]
+pub type CC = crate::Reg<cc::CC_SPEC>;
+#[doc = "Compare and Capture"]
+pub mod cc;
+#[doc = "CC_DITH4_MODE register accessor: an alias for `Reg<CC_DITH4_MODE_SPEC>`"]
+pub type CC_DITH4_MODE = crate::Reg<cc_dith4_mode::CC_DITH4_MODE_SPEC>;
+#[doc = "Compare and Capture"]
+pub mod cc_dith4_mode;
+#[doc = "CC_DITH5_MODE register accessor: an alias for `Reg<CC_DITH5_MODE_SPEC>`"]
+pub type CC_DITH5_MODE = crate::Reg<cc_dith5_mode::CC_DITH5_MODE_SPEC>;
+#[doc = "Compare and Capture"]
+pub mod cc_dith5_mode;
+#[doc = "CC_DITH6_MODE register accessor: an alias for `Reg<CC_DITH6_MODE_SPEC>`"]
+pub type CC_DITH6_MODE = crate::Reg<cc_dith6_mode::CC_DITH6_MODE_SPEC>;
+#[doc = "Compare and Capture"]
+pub mod cc_dith6_mode;
+#[doc = "PATTBUF register accessor: an alias for `Reg<PATTBUF_SPEC>`"]
+pub type PATTBUF = crate::Reg<pattbuf::PATTBUF_SPEC>;
+#[doc = "Pattern Buffer"]
+pub mod pattbuf;
+#[doc = "PERBUF register accessor: an alias for `Reg<PERBUF_SPEC>`"]
+pub type PERBUF = crate::Reg<perbuf::PERBUF_SPEC>;
+#[doc = "Period Buffer"]
+pub mod perbuf;
+#[doc = "PERBUF_DITH4_MODE register accessor: an alias for `Reg<PERBUF_DITH4_MODE_SPEC>`"]
+pub type PERBUF_DITH4_MODE = crate::Reg<perbuf_dith4_mode::PERBUF_DITH4_MODE_SPEC>;
+#[doc = "Period Buffer"]
+pub mod perbuf_dith4_mode;
+#[doc = "PERBUF_DITH5_MODE register accessor: an alias for `Reg<PERBUF_DITH5_MODE_SPEC>`"]
+pub type PERBUF_DITH5_MODE = crate::Reg<perbuf_dith5_mode::PERBUF_DITH5_MODE_SPEC>;
+#[doc = "Period Buffer"]
+pub mod perbuf_dith5_mode;
+#[doc = "PERBUF_DITH6_MODE register accessor: an alias for `Reg<PERBUF_DITH6_MODE_SPEC>`"]
+pub type PERBUF_DITH6_MODE = crate::Reg<perbuf_dith6_mode::PERBUF_DITH6_MODE_SPEC>;
+#[doc = "Period Buffer"]
+pub mod perbuf_dith6_mode;
+#[doc = "CCBUF register accessor: an alias for `Reg<CCBUF_SPEC>`"]
+pub type CCBUF = crate::Reg<ccbuf::CCBUF_SPEC>;
+#[doc = "Compare and Capture Buffer"]
+pub mod ccbuf;
+#[doc = "CCBUF_DITH4_MODE register accessor: an alias for `Reg<CCBUF_DITH4_MODE_SPEC>`"]
+pub type CCBUF_DITH4_MODE = crate::Reg<ccbuf_dith4_mode::CCBUF_DITH4_MODE_SPEC>;
+#[doc = "Compare and Capture Buffer"]
+pub mod ccbuf_dith4_mode;
+#[doc = "CCBUF_DITH5_MODE register accessor: an alias for `Reg<CCBUF_DITH5_MODE_SPEC>`"]
+pub type CCBUF_DITH5_MODE = crate::Reg<ccbuf_dith5_mode::CCBUF_DITH5_MODE_SPEC>;
+#[doc = "Compare and Capture Buffer"]
+pub mod ccbuf_dith5_mode;
+#[doc = "CCBUF_DITH6_MODE register accessor: an alias for `Reg<CCBUF_DITH6_MODE_SPEC>`"]
+pub type CCBUF_DITH6_MODE = crate::Reg<ccbuf_dith6_mode::CCBUF_DITH6_MODE_SPEC>;
+#[doc = "Compare and Capture Buffer"]
+pub mod ccbuf_dith6_mode;