atsamd11d/
pm.rs

1#[repr(C)]
2#[doc = "Register block"]
3pub struct RegisterBlock {
4    ctrl: Ctrl,
5    sleep: Sleep,
6    extctrl: Extctrl,
7    _reserved3: [u8; 0x05],
8    cpusel: Cpusel,
9    apbasel: Apbasel,
10    apbbsel: Apbbsel,
11    apbcsel: Apbcsel,
12    _reserved7: [u8; 0x08],
13    ahbmask: Ahbmask,
14    apbamask: Apbamask,
15    apbbmask: Apbbmask,
16    apbcmask: Apbcmask,
17    _reserved11: [u8; 0x10],
18    intenclr: Intenclr,
19    intenset: Intenset,
20    intflag: Intflag,
21    _reserved14: [u8; 0x01],
22    rcause: Rcause,
23}
24impl RegisterBlock {
25    #[doc = "0x00 - Control"]
26    #[inline(always)]
27    pub const fn ctrl(&self) -> &Ctrl {
28        &self.ctrl
29    }
30    #[doc = "0x01 - Sleep Mode"]
31    #[inline(always)]
32    pub const fn sleep(&self) -> &Sleep {
33        &self.sleep
34    }
35    #[doc = "0x02 - External Reset Controller"]
36    #[inline(always)]
37    pub const fn extctrl(&self) -> &Extctrl {
38        &self.extctrl
39    }
40    #[doc = "0x08 - CPU Clock Select"]
41    #[inline(always)]
42    pub const fn cpusel(&self) -> &Cpusel {
43        &self.cpusel
44    }
45    #[doc = "0x09 - APBA Clock Select"]
46    #[inline(always)]
47    pub const fn apbasel(&self) -> &Apbasel {
48        &self.apbasel
49    }
50    #[doc = "0x0a - APBB Clock Select"]
51    #[inline(always)]
52    pub const fn apbbsel(&self) -> &Apbbsel {
53        &self.apbbsel
54    }
55    #[doc = "0x0b - APBC Clock Select"]
56    #[inline(always)]
57    pub const fn apbcsel(&self) -> &Apbcsel {
58        &self.apbcsel
59    }
60    #[doc = "0x14 - AHB Mask"]
61    #[inline(always)]
62    pub const fn ahbmask(&self) -> &Ahbmask {
63        &self.ahbmask
64    }
65    #[doc = "0x18 - APBA Mask"]
66    #[inline(always)]
67    pub const fn apbamask(&self) -> &Apbamask {
68        &self.apbamask
69    }
70    #[doc = "0x1c - APBB Mask"]
71    #[inline(always)]
72    pub const fn apbbmask(&self) -> &Apbbmask {
73        &self.apbbmask
74    }
75    #[doc = "0x20 - APBC Mask"]
76    #[inline(always)]
77    pub const fn apbcmask(&self) -> &Apbcmask {
78        &self.apbcmask
79    }
80    #[doc = "0x34 - Interrupt Enable Clear"]
81    #[inline(always)]
82    pub const fn intenclr(&self) -> &Intenclr {
83        &self.intenclr
84    }
85    #[doc = "0x35 - Interrupt Enable Set"]
86    #[inline(always)]
87    pub const fn intenset(&self) -> &Intenset {
88        &self.intenset
89    }
90    #[doc = "0x36 - Interrupt Flag Status and Clear"]
91    #[inline(always)]
92    pub const fn intflag(&self) -> &Intflag {
93        &self.intflag
94    }
95    #[doc = "0x38 - Reset Cause"]
96    #[inline(always)]
97    pub const fn rcause(&self) -> &Rcause {
98        &self.rcause
99    }
100}
101#[doc = "CTRL (rw) register accessor: Control\n\nYou can [`read`](crate::Reg::read) this register and get [`ctrl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ctrl::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@ctrl`]
102module"]
103#[doc(alias = "CTRL")]
104pub type Ctrl = crate::Reg<ctrl::CtrlSpec>;
105#[doc = "Control"]
106pub mod ctrl;
107#[doc = "SLEEP (rw) register accessor: Sleep Mode\n\nYou can [`read`](crate::Reg::read) this register and get [`sleep::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`sleep::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@sleep`]
108module"]
109#[doc(alias = "SLEEP")]
110pub type Sleep = crate::Reg<sleep::SleepSpec>;
111#[doc = "Sleep Mode"]
112pub mod sleep;
113#[doc = "EXTCTRL (rw) register accessor: External Reset Controller\n\nYou can [`read`](crate::Reg::read) this register and get [`extctrl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`extctrl::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@extctrl`]
114module"]
115#[doc(alias = "EXTCTRL")]
116pub type Extctrl = crate::Reg<extctrl::ExtctrlSpec>;
117#[doc = "External Reset Controller"]
118pub mod extctrl;
119#[doc = "CPUSEL (rw) register accessor: CPU Clock Select\n\nYou can [`read`](crate::Reg::read) this register and get [`cpusel::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cpusel::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@cpusel`]
120module"]
121#[doc(alias = "CPUSEL")]
122pub type Cpusel = crate::Reg<cpusel::CpuselSpec>;
123#[doc = "CPU Clock Select"]
124pub mod cpusel;
125#[doc = "APBASEL (rw) register accessor: APBA Clock Select\n\nYou can [`read`](crate::Reg::read) this register and get [`apbasel::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`apbasel::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@apbasel`]
126module"]
127#[doc(alias = "APBASEL")]
128pub type Apbasel = crate::Reg<apbasel::ApbaselSpec>;
129#[doc = "APBA Clock Select"]
130pub mod apbasel;
131#[doc = "APBBSEL (rw) register accessor: APBB Clock Select\n\nYou can [`read`](crate::Reg::read) this register and get [`apbbsel::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`apbbsel::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@apbbsel`]
132module"]
133#[doc(alias = "APBBSEL")]
134pub type Apbbsel = crate::Reg<apbbsel::ApbbselSpec>;
135#[doc = "APBB Clock Select"]
136pub mod apbbsel;
137#[doc = "APBCSEL (rw) register accessor: APBC Clock Select\n\nYou can [`read`](crate::Reg::read) this register and get [`apbcsel::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`apbcsel::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@apbcsel`]
138module"]
139#[doc(alias = "APBCSEL")]
140pub type Apbcsel = crate::Reg<apbcsel::ApbcselSpec>;
141#[doc = "APBC Clock Select"]
142pub mod apbcsel;
143#[doc = "AHBMASK (rw) register accessor: AHB Mask\n\nYou can [`read`](crate::Reg::read) this register and get [`ahbmask::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ahbmask::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@ahbmask`]
144module"]
145#[doc(alias = "AHBMASK")]
146pub type Ahbmask = crate::Reg<ahbmask::AhbmaskSpec>;
147#[doc = "AHB Mask"]
148pub mod ahbmask;
149#[doc = "APBAMASK (rw) register accessor: APBA Mask\n\nYou can [`read`](crate::Reg::read) this register and get [`apbamask::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`apbamask::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@apbamask`]
150module"]
151#[doc(alias = "APBAMASK")]
152pub type Apbamask = crate::Reg<apbamask::ApbamaskSpec>;
153#[doc = "APBA Mask"]
154pub mod apbamask;
155#[doc = "APBBMASK (rw) register accessor: APBB Mask\n\nYou can [`read`](crate::Reg::read) this register and get [`apbbmask::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`apbbmask::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@apbbmask`]
156module"]
157#[doc(alias = "APBBMASK")]
158pub type Apbbmask = crate::Reg<apbbmask::ApbbmaskSpec>;
159#[doc = "APBB Mask"]
160pub mod apbbmask;
161#[doc = "APBCMASK (rw) register accessor: APBC Mask\n\nYou can [`read`](crate::Reg::read) this register and get [`apbcmask::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`apbcmask::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@apbcmask`]
162module"]
163#[doc(alias = "APBCMASK")]
164pub type Apbcmask = crate::Reg<apbcmask::ApbcmaskSpec>;
165#[doc = "APBC Mask"]
166pub mod apbcmask;
167#[doc = "INTENCLR (rw) register accessor: Interrupt Enable Clear\n\nYou can [`read`](crate::Reg::read) this register and get [`intenclr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`intenclr::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@intenclr`]
168module"]
169#[doc(alias = "INTENCLR")]
170pub type Intenclr = crate::Reg<intenclr::IntenclrSpec>;
171#[doc = "Interrupt Enable Clear"]
172pub mod intenclr;
173#[doc = "INTENSET (rw) register accessor: Interrupt Enable Set\n\nYou can [`read`](crate::Reg::read) this register and get [`intenset::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`intenset::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@intenset`]
174module"]
175#[doc(alias = "INTENSET")]
176pub type Intenset = crate::Reg<intenset::IntensetSpec>;
177#[doc = "Interrupt Enable Set"]
178pub mod intenset;
179#[doc = "INTFLAG (rw) register accessor: Interrupt Flag Status and Clear\n\nYou can [`read`](crate::Reg::read) this register and get [`intflag::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`intflag::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@intflag`]
180module"]
181#[doc(alias = "INTFLAG")]
182pub type Intflag = crate::Reg<intflag::IntflagSpec>;
183#[doc = "Interrupt Flag Status and Clear"]
184pub mod intflag;
185#[doc = "RCAUSE (r) register accessor: Reset Cause\n\nYou can [`read`](crate::Reg::read) this register and get [`rcause::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@rcause`]
186module"]
187#[doc(alias = "RCAUSE")]
188pub type Rcause = crate::Reg<rcause::RcauseSpec>;
189#[doc = "Reset Cause"]
190pub mod rcause;