1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
#[doc = r"Register block"]
#[repr(C)]
pub struct RegisterBlock {
    gpio: [GPIO; 30],
    intr: [INTR; 4],
    proc0_inte: [PROC0_INTE; 4],
    proc0_intf: [PROC0_INTF; 4],
    proc0_ints: [PROC0_INTS; 4],
    proc1_inte: [PROC1_INTE; 4],
    proc1_intf: [PROC1_INTF; 4],
    proc1_ints: [PROC1_INTS; 4],
    dormant_wake_inte: [DORMANT_WAKE_INTE; 4],
    dormant_wake_intf: [DORMANT_WAKE_INTF; 4],
    dormant_wake_ints: [DORMANT_WAKE_INTS; 4],
}
impl RegisterBlock {
    #[doc = "0x00..0xf0 - Cluster GPIO%s, containing GPIO*_STATUS, GPIO*_CTRL"]
    #[inline(always)]
    pub const fn gpio(&self, n: usize) -> &GPIO {
        &self.gpio[n]
    }
    #[doc = "Iterator for array of:"]
    #[doc = "0x00..0xf0 - Cluster GPIO%s, containing GPIO*_STATUS, GPIO*_CTRL"]
    #[inline(always)]
    pub fn gpio_iter(&self) -> impl Iterator<Item = &GPIO> {
        self.gpio.iter()
    }
    #[doc = "0xf0..0x100 - Raw Interrupts"]
    #[inline(always)]
    pub const fn intr(&self, n: usize) -> &INTR {
        &self.intr[n]
    }
    #[doc = "Iterator for array of:"]
    #[doc = "0xf0..0x100 - Raw Interrupts"]
    #[inline(always)]
    pub fn intr_iter(&self) -> impl Iterator<Item = &INTR> {
        self.intr.iter()
    }
    #[doc = "0x100..0x110 - Interrupt Enable for proc0"]
    #[inline(always)]
    pub const fn proc0_inte(&self, n: usize) -> &PROC0_INTE {
        &self.proc0_inte[n]
    }
    #[doc = "Iterator for array of:"]
    #[doc = "0x100..0x110 - Interrupt Enable for proc0"]
    #[inline(always)]
    pub fn proc0_inte_iter(&self) -> impl Iterator<Item = &PROC0_INTE> {
        self.proc0_inte.iter()
    }
    #[doc = "0x110..0x120 - Interrupt Force for proc0"]
    #[inline(always)]
    pub const fn proc0_intf(&self, n: usize) -> &PROC0_INTF {
        &self.proc0_intf[n]
    }
    #[doc = "Iterator for array of:"]
    #[doc = "0x110..0x120 - Interrupt Force for proc0"]
    #[inline(always)]
    pub fn proc0_intf_iter(&self) -> impl Iterator<Item = &PROC0_INTF> {
        self.proc0_intf.iter()
    }
    #[doc = "0x120..0x130 - Interrupt status after masking &amp; forcing for proc0"]
    #[inline(always)]
    pub const fn proc0_ints(&self, n: usize) -> &PROC0_INTS {
        &self.proc0_ints[n]
    }
    #[doc = "Iterator for array of:"]
    #[doc = "0x120..0x130 - Interrupt status after masking &amp; forcing for proc0"]
    #[inline(always)]
    pub fn proc0_ints_iter(&self) -> impl Iterator<Item = &PROC0_INTS> {
        self.proc0_ints.iter()
    }
    #[doc = "0x130..0x140 - Interrupt Enable for proc1"]
    #[inline(always)]
    pub const fn proc1_inte(&self, n: usize) -> &PROC1_INTE {
        &self.proc1_inte[n]
    }
    #[doc = "Iterator for array of:"]
    #[doc = "0x130..0x140 - Interrupt Enable for proc1"]
    #[inline(always)]
    pub fn proc1_inte_iter(&self) -> impl Iterator<Item = &PROC1_INTE> {
        self.proc1_inte.iter()
    }
    #[doc = "0x140..0x150 - Interrupt Force for proc1"]
    #[inline(always)]
    pub const fn proc1_intf(&self, n: usize) -> &PROC1_INTF {
        &self.proc1_intf[n]
    }
    #[doc = "Iterator for array of:"]
    #[doc = "0x140..0x150 - Interrupt Force for proc1"]
    #[inline(always)]
    pub fn proc1_intf_iter(&self) -> impl Iterator<Item = &PROC1_INTF> {
        self.proc1_intf.iter()
    }
    #[doc = "0x150..0x160 - Interrupt status after masking &amp; forcing for proc1"]
    #[inline(always)]
    pub const fn proc1_ints(&self, n: usize) -> &PROC1_INTS {
        &self.proc1_ints[n]
    }
    #[doc = "Iterator for array of:"]
    #[doc = "0x150..0x160 - Interrupt status after masking &amp; forcing for proc1"]
    #[inline(always)]
    pub fn proc1_ints_iter(&self) -> impl Iterator<Item = &PROC1_INTS> {
        self.proc1_ints.iter()
    }
    #[doc = "0x160..0x170 - Interrupt Enable for dormant_wake"]
    #[inline(always)]
    pub const fn dormant_wake_inte(&self, n: usize) -> &DORMANT_WAKE_INTE {
        &self.dormant_wake_inte[n]
    }
    #[doc = "Iterator for array of:"]
    #[doc = "0x160..0x170 - Interrupt Enable for dormant_wake"]
    #[inline(always)]
    pub fn dormant_wake_inte_iter(&self) -> impl Iterator<Item = &DORMANT_WAKE_INTE> {
        self.dormant_wake_inte.iter()
    }
    #[doc = "0x170..0x180 - Interrupt Force for dormant_wake"]
    #[inline(always)]
    pub const fn dormant_wake_intf(&self, n: usize) -> &DORMANT_WAKE_INTF {
        &self.dormant_wake_intf[n]
    }
    #[doc = "Iterator for array of:"]
    #[doc = "0x170..0x180 - Interrupt Force for dormant_wake"]
    #[inline(always)]
    pub fn dormant_wake_intf_iter(&self) -> impl Iterator<Item = &DORMANT_WAKE_INTF> {
        self.dormant_wake_intf.iter()
    }
    #[doc = "0x180..0x190 - Interrupt status after masking &amp; forcing for dormant_wake"]
    #[inline(always)]
    pub const fn dormant_wake_ints(&self, n: usize) -> &DORMANT_WAKE_INTS {
        &self.dormant_wake_ints[n]
    }
    #[doc = "Iterator for array of:"]
    #[doc = "0x180..0x190 - Interrupt status after masking &amp; forcing for dormant_wake"]
    #[inline(always)]
    pub fn dormant_wake_ints_iter(&self) -> impl Iterator<Item = &DORMANT_WAKE_INTS> {
        self.dormant_wake_ints.iter()
    }
}
#[doc = "Cluster GPIO%s, containing GPIO*_STATUS, GPIO*_CTRL"]
pub use self::gpio::GPIO;
#[doc = r"Cluster"]
#[doc = "Cluster GPIO%s, containing GPIO*_STATUS, GPIO*_CTRL"]
pub mod gpio;
#[doc = "INTR (rw) register accessor: Raw Interrupts  

You can [`read`](crate::generic::Reg::read) this register and get [`intr::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`intr::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).  

For information about available fields see [`mod@intr`]
module"]
pub type INTR = crate::Reg<intr::INTR_SPEC>;
#[doc = "Raw Interrupts"]
pub mod intr;
#[doc = "PROC0_INTE (rw) register accessor: Interrupt Enable for proc0  

You can [`read`](crate::generic::Reg::read) this register and get [`proc0_inte::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`proc0_inte::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).  

For information about available fields see [`mod@proc0_inte`]
module"]
pub type PROC0_INTE = crate::Reg<proc0_inte::PROC0_INTE_SPEC>;
#[doc = "Interrupt Enable for proc0"]
pub mod proc0_inte;
#[doc = "PROC0_INTF (rw) register accessor: Interrupt Force for proc0  

You can [`read`](crate::generic::Reg::read) this register and get [`proc0_intf::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`proc0_intf::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).  

For information about available fields see [`mod@proc0_intf`]
module"]
pub type PROC0_INTF = crate::Reg<proc0_intf::PROC0_INTF_SPEC>;
#[doc = "Interrupt Force for proc0"]
pub mod proc0_intf;
#[doc = "PROC0_INTS (r) register accessor: Interrupt status after masking &amp; forcing for proc0  

You can [`read`](crate::generic::Reg::read) this register and get [`proc0_ints::R`].  See [API](https://docs.rs/svd2rust/#read--modify--write-api).  

For information about available fields see [`mod@proc0_ints`]
module"]
pub type PROC0_INTS = crate::Reg<proc0_ints::PROC0_INTS_SPEC>;
#[doc = "Interrupt status after masking &amp; forcing for proc0"]
pub mod proc0_ints;
#[doc = "PROC1_INTE (rw) register accessor: Interrupt Enable for proc1  

You can [`read`](crate::generic::Reg::read) this register and get [`proc1_inte::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`proc1_inte::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).  

For information about available fields see [`mod@proc1_inte`]
module"]
pub type PROC1_INTE = crate::Reg<proc1_inte::PROC1_INTE_SPEC>;
#[doc = "Interrupt Enable for proc1"]
pub mod proc1_inte;
#[doc = "PROC1_INTF (rw) register accessor: Interrupt Force for proc1  

You can [`read`](crate::generic::Reg::read) this register and get [`proc1_intf::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`proc1_intf::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).  

For information about available fields see [`mod@proc1_intf`]
module"]
pub type PROC1_INTF = crate::Reg<proc1_intf::PROC1_INTF_SPEC>;
#[doc = "Interrupt Force for proc1"]
pub mod proc1_intf;
#[doc = "PROC1_INTS (r) register accessor: Interrupt status after masking &amp; forcing for proc1  

You can [`read`](crate::generic::Reg::read) this register and get [`proc1_ints::R`].  See [API](https://docs.rs/svd2rust/#read--modify--write-api).  

For information about available fields see [`mod@proc1_ints`]
module"]
pub type PROC1_INTS = crate::Reg<proc1_ints::PROC1_INTS_SPEC>;
#[doc = "Interrupt status after masking &amp; forcing for proc1"]
pub mod proc1_ints;
#[doc = "DORMANT_WAKE_INTE (rw) register accessor: Interrupt Enable for dormant_wake  

You can [`read`](crate::generic::Reg::read) this register and get [`dormant_wake_inte::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`dormant_wake_inte::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).  

For information about available fields see [`mod@dormant_wake_inte`]
module"]
pub type DORMANT_WAKE_INTE = crate::Reg<dormant_wake_inte::DORMANT_WAKE_INTE_SPEC>;
#[doc = "Interrupt Enable for dormant_wake"]
pub mod dormant_wake_inte;
#[doc = "DORMANT_WAKE_INTF (rw) register accessor: Interrupt Force for dormant_wake  

You can [`read`](crate::generic::Reg::read) this register and get [`dormant_wake_intf::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`dormant_wake_intf::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).  

For information about available fields see [`mod@dormant_wake_intf`]
module"]
pub type DORMANT_WAKE_INTF = crate::Reg<dormant_wake_intf::DORMANT_WAKE_INTF_SPEC>;
#[doc = "Interrupt Force for dormant_wake"]
pub mod dormant_wake_intf;
#[doc = "DORMANT_WAKE_INTS (r) register accessor: Interrupt status after masking &amp; forcing for dormant_wake  

You can [`read`](crate::generic::Reg::read) this register and get [`dormant_wake_ints::R`].  See [API](https://docs.rs/svd2rust/#read--modify--write-api).  

For information about available fields see [`mod@dormant_wake_ints`]
module"]
pub type DORMANT_WAKE_INTS = crate::Reg<dormant_wake_ints::DORMANT_WAKE_INTS_SPEC>;
#[doc = "Interrupt status after masking &amp; forcing for dormant_wake"]
pub mod dormant_wake_ints;