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
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
#[doc = r" Register block"]
#[repr(C)]
pub struct RegisterBlock {
    #[doc = "0x00 - MSPI PIO Transfer Control/Status Register"]
    pub ctrl: CTRL,
    #[doc = "0x04 - MSPI Transfer Configuration Register"]
    pub cfg: CFG,
    #[doc = "0x08 - MSPI Transfer Address Register"]
    pub addr: ADDR,
    #[doc = "0x0c - MSPI Transfer Instruction"]
    pub instr: INSTR,
    #[doc = "0x10 - TX Data FIFO"]
    pub txfifo: TXFIFO,
    #[doc = "0x14 - RX Data FIFO"]
    pub rxfifo: RXFIFO,
    #[doc = "0x18 - TX FIFO Entries"]
    pub txentries: TXENTRIES,
    #[doc = "0x1c - RX FIFO Entries"]
    pub rxentries: RXENTRIES,
    #[doc = "0x20 - TX/RX FIFO Threshhold Levels"]
    pub threshold: THRESHOLD,
    _reserved0: [u8; 220usize],
    #[doc = "0x100 - MSPI Module Configuration"]
    pub mspicfg: MSPICFG,
    #[doc = "0x104 - MSPI Output Pad Configuration"]
    pub padcfg: PADCFG,
    #[doc = "0x108 - MSPI Output Enable Pad Configuration"]
    pub padouten: PADOUTEN,
    #[doc = "0x10c - Configuration for XIP/DMA support of SPI flash modules."]
    pub flash: FLASH,
    _reserved1: [u8; 16usize],
    #[doc = "0x120 - External Flash Scrambling Controls"]
    pub scrambling: SCRAMBLING,
    _reserved2: [u8; 220usize],
    #[doc = "0x200 - MSPI Master Interrupts: Enable"]
    pub inten: INTEN,
    #[doc = "0x204 - MSPI Master Interrupts: Status"]
    pub intstat: INTSTAT,
    #[doc = "0x208 - MSPI Master Interrupts: Clear"]
    pub intclr: INTCLR,
    #[doc = "0x20c - MSPI Master Interrupts: Set"]
    pub intset: INTSET,
    _reserved3: [u8; 64usize],
    #[doc = "0x250 - DMA Configuration Register"]
    pub dmacfg: DMACFG,
    #[doc = "0x254 - DMA Status Register"]
    pub dmastat: DMASTAT,
    #[doc = "0x258 - DMA Target Address Register"]
    pub dmatargaddr: DMATARGADDR,
    #[doc = "0x25c - DMA Device Address Register"]
    pub dmadevaddr: DMADEVADDR,
    #[doc = "0x260 - DMA Total Transfer Count"]
    pub dmatotcount: DMATOTCOUNT,
    #[doc = "0x264 - DMA BYTE Transfer Count"]
    pub dmabcount: DMABCOUNT,
    _reserved4: [u8; 16usize],
    #[doc = "0x278 - DMA Transmit Trigger Threshhold"]
    pub dmathresh: DMATHRESH,
    _reserved5: [u8; 36usize],
    #[doc = "0x2a0 - Command Queue Configuration Register"]
    pub cqcfg: CQCFG,
    _reserved6: [u8; 4usize],
    #[doc = "0x2a8 - CQ Target Read Address Register"]
    pub cqaddr: CQADDR,
    #[doc = "0x2ac - Command Queue Status Register"]
    pub cqstat: CQSTAT,
    #[doc = "0x2b0 - Command Queue Flag Register"]
    pub cqflags: CQFLAGS,
    #[doc = "0x2b4 - Command Queue Flag Set/Clear Register"]
    pub cqsetclear: CQSETCLEAR,
    #[doc = "0x2b8 - Command Queue Pause Mask Register"]
    pub cqpause: CQPAUSE,
    _reserved7: [u8; 4usize],
    #[doc = "0x2c0 - Command Queue Current Index"]
    pub cqcuridx: CQCURIDX,
    #[doc = "0x2c4 - Command Queue End Index"]
    pub cqendidx: CQENDIDX,
}
#[doc = "MSPI PIO Transfer Control/Status Register"]
pub struct CTRL {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "MSPI PIO Transfer Control/Status Register"]
pub mod ctrl;
#[doc = "MSPI Transfer Configuration Register"]
pub struct CFG {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "MSPI Transfer Configuration Register"]
pub mod cfg;
#[doc = "MSPI Transfer Address Register"]
pub struct ADDR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "MSPI Transfer Address Register"]
pub mod addr;
#[doc = "MSPI Transfer Instruction"]
pub struct INSTR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "MSPI Transfer Instruction"]
pub mod instr;
#[doc = "TX Data FIFO"]
pub struct TXFIFO {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "TX Data FIFO"]
pub mod txfifo;
#[doc = "RX Data FIFO"]
pub struct RXFIFO {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "RX Data FIFO"]
pub mod rxfifo;
#[doc = "TX FIFO Entries"]
pub struct TXENTRIES {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "TX FIFO Entries"]
pub mod txentries;
#[doc = "RX FIFO Entries"]
pub struct RXENTRIES {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "RX FIFO Entries"]
pub mod rxentries;
#[doc = "TX/RX FIFO Threshhold Levels"]
pub struct THRESHOLD {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "TX/RX FIFO Threshhold Levels"]
pub mod threshold;
#[doc = "MSPI Module Configuration"]
pub struct MSPICFG {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "MSPI Module Configuration"]
pub mod mspicfg;
#[doc = "MSPI Output Pad Configuration"]
pub struct PADCFG {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "MSPI Output Pad Configuration"]
pub mod padcfg;
#[doc = "MSPI Output Enable Pad Configuration"]
pub struct PADOUTEN {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "MSPI Output Enable Pad Configuration"]
pub mod padouten;
#[doc = "Configuration for XIP/DMA support of SPI flash modules."]
pub struct FLASH {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Configuration for XIP/DMA support of SPI flash modules."]
pub mod flash;
#[doc = "External Flash Scrambling Controls"]
pub struct SCRAMBLING {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "External Flash Scrambling Controls"]
pub mod scrambling;
#[doc = "MSPI Master Interrupts: Enable"]
pub struct INTEN {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "MSPI Master Interrupts: Enable"]
pub mod inten;
#[doc = "MSPI Master Interrupts: Status"]
pub struct INTSTAT {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "MSPI Master Interrupts: Status"]
pub mod intstat;
#[doc = "MSPI Master Interrupts: Clear"]
pub struct INTCLR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "MSPI Master Interrupts: Clear"]
pub mod intclr;
#[doc = "MSPI Master Interrupts: Set"]
pub struct INTSET {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "MSPI Master Interrupts: Set"]
pub mod intset;
#[doc = "DMA Configuration Register"]
pub struct DMACFG {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "DMA Configuration Register"]
pub mod dmacfg;
#[doc = "DMA Status Register"]
pub struct DMASTAT {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "DMA Status Register"]
pub mod dmastat;
#[doc = "DMA Target Address Register"]
pub struct DMATARGADDR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "DMA Target Address Register"]
pub mod dmatargaddr;
#[doc = "DMA Device Address Register"]
pub struct DMADEVADDR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "DMA Device Address Register"]
pub mod dmadevaddr;
#[doc = "DMA Total Transfer Count"]
pub struct DMATOTCOUNT {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "DMA Total Transfer Count"]
pub mod dmatotcount;
#[doc = "DMA BYTE Transfer Count"]
pub struct DMABCOUNT {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "DMA BYTE Transfer Count"]
pub mod dmabcount;
#[doc = "DMA Transmit Trigger Threshhold"]
pub struct DMATHRESH {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "DMA Transmit Trigger Threshhold"]
pub mod dmathresh;
#[doc = "Command Queue Configuration Register"]
pub struct CQCFG {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Command Queue Configuration Register"]
pub mod cqcfg;
#[doc = "CQ Target Read Address Register"]
pub struct CQADDR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "CQ Target Read Address Register"]
pub mod cqaddr;
#[doc = "Command Queue Status Register"]
pub struct CQSTAT {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Command Queue Status Register"]
pub mod cqstat;
#[doc = "Command Queue Flag Register"]
pub struct CQFLAGS {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Command Queue Flag Register"]
pub mod cqflags;
#[doc = "Command Queue Flag Set/Clear Register"]
pub struct CQSETCLEAR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Command Queue Flag Set/Clear Register"]
pub mod cqsetclear;
#[doc = "Command Queue Pause Mask Register"]
pub struct CQPAUSE {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Command Queue Pause Mask Register"]
pub mod cqpause;
#[doc = "Command Queue Current Index"]
pub struct CQCURIDX {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Command Queue Current Index"]
pub mod cqcuridx;
#[doc = "Command Queue End Index"]
pub struct CQENDIDX {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Command Queue End Index"]
pub mod cqendidx;