1#[doc = "FlexSPI"]
2#[repr(C)]
3pub struct RegisterBlock {
4#[doc = "Module Control Register 0"]
5pub MCR0: crate::RWRegister<u32>,
6#[doc = "Module Control Register 1"]
7pub MCR1: crate::RWRegister<u32>,
8#[doc = "Module Control Register 2"]
9pub MCR2: crate::RWRegister<u32>,
10#[doc = "AHB Bus Control Register"]
11pub AHBCR: crate::RWRegister<u32>,
12#[doc = "Interrupt Enable Register"]
13pub INTEN: crate::RWRegister<u32>,
14#[doc = "Interrupt Register"]
15pub INTR: crate::RWRegister<u32>,
16#[doc = "LUT Key Register"]
17pub LUTKEY: crate::RWRegister<u32>,
18#[doc = "LUT Control Register"]
19pub LUTCR: crate::RWRegister<u32>,
20#[doc = "AHB RX Buffer 0 Control Register 0"]
21pub AHBRXBUF0CR0: crate::RWRegister<u32>,
22#[doc = "AHB RX Buffer 1 Control Register 0"]
23pub AHBRXBUF1CR0: crate::RWRegister<u32>,
24#[doc = "AHB RX Buffer 2 Control Register 0"]
25pub AHBRXBUF2CR0: crate::RWRegister<u32>,
26#[doc = "AHB RX Buffer 3 Control Register 0"]
27pub AHBRXBUF3CR0: crate::RWRegister<u32>,
28 _reserved0: [u8; 0x30],
29#[doc = "Flash Control Register 0"]
30pub FLSHA1CR0: crate::RWRegister<u32>,
31#[doc = "Flash Control Register 0"]
32pub FLSHA2CR0: crate::RWRegister<u32>,
33#[doc = "Flash Control Register 0"]
34pub FLSHB1CR0: crate::RWRegister<u32>,
35#[doc = "Flash Control Register 0"]
36pub FLSHB2CR0: crate::RWRegister<u32>,
37#[doc = "Flash Control Register 1"]
38pub FLSHCR1: [crate::RWRegister<u32>; 4usize],
39#[doc = "Flash Control Register 2"]
40pub FLSHCR2: [crate::RWRegister<u32>; 4usize],
41 _reserved1: [u8; 0x04],
42#[doc = "Flash Control Register 4"]
43pub FLSHCR4: crate::RWRegister<u32>,
44 _reserved2: [u8; 0x08],
45#[doc = "IP Control Register 0"]
46pub IPCR0: crate::RWRegister<u32>,
47#[doc = "IP Control Register 1"]
48pub IPCR1: crate::RWRegister<u32>,
49 _reserved3: [u8; 0x08],
50#[doc = "IP Command Register"]
51pub IPCMD: crate::RWRegister<u32>,
52 _reserved4: [u8; 0x04],
53#[doc = "IP RX FIFO Control Register"]
54pub IPRXFCR: crate::RWRegister<u32>,
55#[doc = "IP TX FIFO Control Register"]
56pub IPTXFCR: crate::RWRegister<u32>,
57#[doc = "DLL Control Register 0"]
58pub DLLCR: [crate::RWRegister<u32>; 2usize],
59 _reserved5: [u8; 0x18],
60#[doc = "Status Register 0"]
61pub STS0: crate::RORegister<u32>,
62#[doc = "Status Register 1"]
63pub STS1: crate::RORegister<u32>,
64#[doc = "Status Register 2"]
65pub STS2: crate::RORegister<u32>,
66#[doc = "AHB Suspend Status Register"]
67pub AHBSPNDSTS: crate::RORegister<u32>,
68#[doc = "IP RX FIFO Status Register"]
69pub IPRXFSTS: crate::RORegister<u32>,
70#[doc = "IP TX FIFO Status Register"]
71pub IPTXFSTS: crate::RORegister<u32>,
72 _reserved6: [u8; 0x08],
73#[doc = "IP RX FIFO Data Register 0"]
74pub RFDR: [crate::RORegister<u32>; 32usize],
75#[doc = "IP TX FIFO Data Register 0"]
76pub TFDR: [crate::WORegister<u32>; 32usize],
77#[doc = "LUT 0"]
78pub LUT: [crate::RWRegister<u32>; 64usize],
79}
80#[doc = "Module Control Register 0"]
81pub mod MCR0 {
82#[doc = "Software Reset"]
83pub mod SWRESET {
84pub const offset: u32 = 0;
85pub const mask: u32 = 0x01 << offset;
86pub mod R {}
87pub mod W {}
88pub mod RW {}
89 }
90#[doc = "Module Disable"]
91pub mod MDIS {
92pub const offset: u32 = 1;
93pub const mask: u32 = 0x01 << offset;
94pub mod R {}
95pub mod W {}
96pub mod RW {}
97 }
98#[doc = "Sample Clock source selection for Flash Reading"]
99pub mod RXCLKSRC {
100pub const offset: u32 = 4;
101pub const mask: u32 = 0x03 << offset;
102pub mod R {}
103pub mod W {}
104pub mod RW {
105#[doc = "Dummy Read strobe generated by FlexSPI Controller and loopback internally."]
106pub const RXCLKSRC_0: u32 = 0;
107#[doc = "Dummy Read strobe generated by FlexSPI Controller and loopback from DQS pad."]
108pub const RXCLKSRC_1: u32 = 0x01;
109#[doc = "Flash provided Read strobe and input from DQS pad"]
110pub const RXCLKSRC_3: u32 = 0x03;
111 }
112 }
113#[doc = "Enable AHB bus Read Access to IP RX FIFO."]
114pub mod ARDFEN {
115pub const offset: u32 = 6;
116pub const mask: u32 = 0x01 << offset;
117pub mod R {}
118pub mod W {}
119pub mod RW {
120#[doc = "IP RX FIFO should be read by IP Bus. AHB Bus read access to IP RX FIFO memory space will get bus error response."]
121pub const ARDFEN_0: u32 = 0;
122#[doc = "IP RX FIFO should be read by AHB Bus. IP Bus read access to IP RX FIFO memory space will always return data zero but no bus error response."]
123pub const ARDFEN_1: u32 = 0x01;
124 }
125 }
126#[doc = "Enable AHB bus Write Access to IP TX FIFO."]
127pub mod ATDFEN {
128pub const offset: u32 = 7;
129pub const mask: u32 = 0x01 << offset;
130pub mod R {}
131pub mod W {}
132pub mod RW {
133#[doc = "IP TX FIFO should be written by IP Bus. AHB Bus write access to IP TX FIFO memory space will get bus error response."]
134pub const ATDFEN_0: u32 = 0;
135#[doc = "IP TX FIFO should be written by AHB Bus. IP Bus write access to IP TX FIFO memory space will be ignored but no bus error response."]
136pub const ATDFEN_1: u32 = 0x01;
137 }
138 }
139#[doc = "The serial root clock could be divided inside FlexSPI . Refer Clocks chapter for more details on clocking."]
140pub mod SERCLKDIV {
141pub const offset: u32 = 8;
142pub const mask: u32 = 0x07 << offset;
143pub mod R {}
144pub mod W {}
145pub mod RW {
146#[doc = "Divided by 1"]
147pub const SERCLKDIV_0: u32 = 0;
148#[doc = "Divided by 2"]
149pub const SERCLKDIV_1: u32 = 0x01;
150#[doc = "Divided by 3"]
151pub const SERCLKDIV_2: u32 = 0x02;
152#[doc = "Divided by 4"]
153pub const SERCLKDIV_3: u32 = 0x03;
154#[doc = "Divided by 5"]
155pub const SERCLKDIV_4: u32 = 0x04;
156#[doc = "Divided by 6"]
157pub const SERCLKDIV_5: u32 = 0x05;
158#[doc = "Divided by 7"]
159pub const SERCLKDIV_6: u32 = 0x06;
160#[doc = "Divided by 8"]
161pub const SERCLKDIV_7: u32 = 0x07;
162 }
163 }
164#[doc = "Half Speed Serial Flash access Enable."]
165pub mod HSEN {
166pub const offset: u32 = 11;
167pub const mask: u32 = 0x01 << offset;
168pub mod R {}
169pub mod W {}
170pub mod RW {
171#[doc = "Disable divide by 2 of serial flash clock for half speed commands."]
172pub const HSEN_0: u32 = 0;
173#[doc = "Enable divide by 2 of serial flash clock for half speed commands."]
174pub const HSEN_1: u32 = 0x01;
175 }
176 }
177#[doc = "Doze mode enable bit"]
178pub mod DOZEEN {
179pub const offset: u32 = 12;
180pub const mask: u32 = 0x01 << offset;
181pub mod R {}
182pub mod W {}
183pub mod RW {
184#[doc = "Doze mode support disabled. AHB clock and serial clock will not be gated off when there is doze mode request from system."]
185pub const DOZEEN_0: u32 = 0;
186#[doc = "Doze mode support enabled. AHB clock and serial clock will be gated off when there is doze mode request from system."]
187pub const DOZEEN_1: u32 = 0x01;
188 }
189 }
190#[doc = "This bit is to support Flash Octal mode access by combining Port A and B Data pins (A_DATA\\[3:0\\] and B_DATA\\[3:0\\])."]
191pub mod COMBINATIONEN {
192pub const offset: u32 = 13;
193pub const mask: u32 = 0x01 << offset;
194pub mod R {}
195pub mod W {}
196pub mod RW {
197#[doc = "Disable."]
198pub const COMBINATIONEN_0: u32 = 0;
199#[doc = "Enable."]
200pub const COMBINATIONEN_1: u32 = 0x01;
201 }
202 }
203#[doc = "This bit is used to force SCLK output free-running. For FPGA applications, external device may use SCLK as reference clock to its internal PLL. If SCLK free-running is enabled, data sampling with loopback clock from SCLK pad is not supported (MCR0\\[RXCLKSRC\\]=2)."]
204pub mod SCKFREERUNEN {
205pub const offset: u32 = 14;
206pub const mask: u32 = 0x01 << offset;
207pub mod R {}
208pub mod W {}
209pub mod RW {
210#[doc = "Disable."]
211pub const SCKFREERUNEN_0: u32 = 0;
212#[doc = "Enable."]
213pub const SCKFREERUNEN_1: u32 = 0x01;
214 }
215 }
216#[doc = "Time out wait cycle for IP command grant."]
217pub mod IPGRANTWAIT {
218pub const offset: u32 = 16;
219pub const mask: u32 = 0xff << offset;
220pub mod R {}
221pub mod W {}
222pub mod RW {}
223 }
224#[doc = "Timeout wait cycle for AHB command grant."]
225pub mod AHBGRANTWAIT {
226pub const offset: u32 = 24;
227pub const mask: u32 = 0xff << offset;
228pub mod R {}
229pub mod W {}
230pub mod RW {}
231 }
232}
233#[doc = "Module Control Register 1"]
234pub mod MCR1 {
235#[doc = "AHB Read/Write access to Serial Flash Memory space will timeout if not data received from Flash or data not transmitted after AHBBUSWAIT * 1024 ahb clock cycles, AHB Bus will get an error response"]
236pub mod AHBBUSWAIT {
237pub const offset: u32 = 0;
238pub const mask: u32 = 0xffff << offset;
239pub mod R {}
240pub mod W {}
241pub mod RW {}
242 }
243#[doc = "Command Sequence Execution will timeout and abort after SEQWAIT * 1024 Serial Root Clock cycles"]
244pub mod SEQWAIT {
245pub const offset: u32 = 16;
246pub const mask: u32 = 0xffff << offset;
247pub mod R {}
248pub mod W {}
249pub mod RW {}
250 }
251}
252#[doc = "Module Control Register 2"]
253pub mod MCR2 {
254#[doc = "This bit determines whether AHB RX Buffer and AHB TX Buffer will be cleaned automatically when FlexSPI returns STOP mode ACK. Software should set this bit if AHB RX Buffer or AHB TX Buffer will be powered off in STOP mode. Otherwise AHB read access after exiting STOP mode may hit AHB RX Buffer or AHB TX Buffer but their data entries are invalid."]
255pub mod CLRAHBBUFOPT {
256pub const offset: u32 = 11;
257pub const mask: u32 = 0x01 << offset;
258pub mod R {}
259pub mod W {}
260pub mod RW {
261#[doc = "AHB RX/TX Buffer will not be cleaned automatically when FlexSPI return Stop mode ACK."]
262pub const CLRAHBBUFOPT_0: u32 = 0;
263#[doc = "AHB RX/TX Buffer will be cleaned automatically when FlexSPI return Stop mode ACK."]
264pub const CLRAHBBUFOPT_1: u32 = 0x01;
265 }
266 }
267#[doc = "The sampling clock phase selection will be reset to phase 0 when this bit is written with 0x1. This bit will be auto-cleared immediately."]
268pub mod CLRLEARNPHASE {
269pub const offset: u32 = 14;
270pub const mask: u32 = 0x01 << offset;
271pub mod R {}
272pub mod W {}
273pub mod RW {}
274 }
275#[doc = "All external devices are same devices (both in types and size) for A1/A2/B1/B2."]
276pub mod SAMEDEVICEEN {
277pub const offset: u32 = 15;
278pub const mask: u32 = 0x01 << offset;
279pub mod R {}
280pub mod W {}
281pub mod RW {
282#[doc = "In Individual mode, FLSHA1CRx/FLSHA2CRx/FLSHB1CRx/FLSHB2CRx register setting will be applied to Flash A1/A2/B1/B2 separately. In Parallel mode, FLSHA1CRx register setting will be applied to Flash A1 and B1, FLSHA2CRx register setting will be applied to Flash A2 and B2. FLSHB1CRx/FLSHB2CRx register settings will be ignored."]
283pub const SAMEDEVICEEN_0: u32 = 0;
284#[doc = "FLSHA1CR0/FLSHA1CR1/FLSHA1CR2 register settings will be applied to Flash A1/A2/B1/B2. FLSHA2CRx/FLSHB1CRx/FLSHB2CRx will be ignored."]
285pub const SAMEDEVICEEN_1: u32 = 0x01;
286 }
287 }
288#[doc = "B_SCLK pad can be used as A_SCLK differential clock output (inverted clock to A_SCLK). In this case, port B flash access is not available. After changing the value of this field, MCR0\\[SWRESET\\] should be set."]
289pub mod SCKBDIFFOPT {
290pub const offset: u32 = 19;
291pub const mask: u32 = 0x01 << offset;
292pub mod R {}
293pub mod W {}
294pub mod RW {
295#[doc = "B_SCLK pad is used as port B SCLK clock output. Port B flash access is available."]
296pub const SCKBDIFFOPT_0: u32 = 0;
297#[doc = "B_SCLK pad is used as port A SCLK inverted clock output (Differential clock to A_SCLK). Port B flash access is not available."]
298pub const SCKBDIFFOPT_1: u32 = 0x01;
299 }
300 }
301#[doc = "Wait cycle (in AHB clock cycle) for idle state before suspended command sequence resumed."]
302pub mod RESUMEWAIT {
303pub const offset: u32 = 24;
304pub const mask: u32 = 0xff << offset;
305pub mod R {}
306pub mod W {}
307pub mod RW {}
308 }
309}
310#[doc = "AHB Bus Control Register"]
311pub mod AHBCR {
312#[doc = "Parallel mode enabled for AHB triggered Command (both read and write) ."]
313pub mod APAREN {
314pub const offset: u32 = 0;
315pub const mask: u32 = 0x01 << offset;
316pub mod R {}
317pub mod W {}
318pub mod RW {
319#[doc = "Flash will be accessed in Individual mode."]
320pub const APAREN_0: u32 = 0;
321#[doc = "Flash will be accessed in Parallel mode."]
322pub const APAREN_1: u32 = 0x01;
323 }
324 }
325#[doc = "Clear the status/pointers of AHB RX Buffer. Auto-cleared."]
326pub mod CLRAHBRXBUF {
327pub const offset: u32 = 1;
328pub const mask: u32 = 0x01 << offset;
329pub mod R {}
330pub mod W {}
331pub mod RW {}
332 }
333#[doc = "Clear the status/pointers of AHB TX Buffer. Auto-cleared."]
334pub mod CLRAHBTXBUF {
335pub const offset: u32 = 2;
336pub const mask: u32 = 0x01 << offset;
337pub mod R {}
338pub mod W {}
339pub mod RW {}
340 }
341#[doc = "Enable AHB bus cachable read access support."]
342pub mod CACHABLEEN {
343pub const offset: u32 = 3;
344pub const mask: u32 = 0x01 << offset;
345pub mod R {}
346pub mod W {}
347pub mod RW {
348#[doc = "Disabled. When there is AHB bus cachable read access, FlexSPI will not check whether it hit AHB TX Buffer."]
349pub const CACHABLEEN_0: u32 = 0;
350#[doc = "Enabled. When there is AHB bus cachable read access, FlexSPI will check whether it hit AHB TX Buffer first."]
351pub const CACHABLEEN_1: u32 = 0x01;
352 }
353 }
354#[doc = "Enable AHB bus bufferable write access support. This field affects the last beat of AHB write access, refer for more details about AHB bufferable write."]
355pub mod BUFFERABLEEN {
356pub const offset: u32 = 4;
357pub const mask: u32 = 0x01 << offset;
358pub mod R {}
359pub mod W {}
360pub mod RW {
361#[doc = "Disabled. For all AHB write access (no matter bufferable or non-bufferable ), FlexSPI will return AHB Bus ready after all data is transmitted to External device and AHB command finished."]
362pub const BUFFERABLEEN_0: u32 = 0;
363#[doc = "Enabled. For AHB bufferable write access, FlexSPI will return AHB Bus ready when the AHB command is granted by arbitrator and will not wait for AHB command finished."]
364pub const BUFFERABLEEN_1: u32 = 0x01;
365 }
366 }
367#[doc = "AHB Read Prefetch Enable."]
368pub mod PREFETCHEN {
369pub const offset: u32 = 5;
370pub const mask: u32 = 0x01 << offset;
371pub mod R {}
372pub mod W {}
373pub mod RW {}
374 }
375#[doc = "AHB Read Address option bit. This option bit is intend to remove AHB burst start address alignment limitation."]
376pub mod READADDROPT {
377pub const offset: u32 = 6;
378pub const mask: u32 = 0x01 << offset;
379pub mod R {}
380pub mod W {}
381pub mod RW {
382#[doc = "There is AHB read burst start address alignment limitation when flash is accessed in parallel mode or flash is wordaddressable."]
383pub const READADDROPT_0: u32 = 0;
384#[doc = "There is no AHB read burst start address alignment limitation. FlexSPI will fetch more data than AHB burst required to meet the alignment requirement."]
385pub const READADDROPT_1: u32 = 0x01;
386 }
387 }
388#[doc = "AHB Read Size Alignment"]
389pub mod READSZALIGN {
390pub const offset: u32 = 10;
391pub const mask: u32 = 0x01 << offset;
392pub mod R {}
393pub mod W {}
394pub mod RW {
395#[doc = "AHB read size will be decided by other register setting like PREFETCH_EN,OTFAD_EN..."]
396pub const READSZALIGN_0: u32 = 0;
397#[doc = "AHB read size to up size to 8 bytes aligned, no prefetching"]
398pub const READSZALIGN_1: u32 = 0x01;
399 }
400 }
401}
402#[doc = "Interrupt Enable Register"]
403pub mod INTEN {
404#[doc = "IP triggered Command Sequences Execution finished interrupt enable."]
405pub mod IPCMDDONEEN {
406pub const offset: u32 = 0;
407pub const mask: u32 = 0x01 << offset;
408pub mod R {}
409pub mod W {}
410pub mod RW {}
411 }
412#[doc = "IP triggered Command Sequences Grant Timeout interrupt enable."]
413pub mod IPCMDGEEN {
414pub const offset: u32 = 1;
415pub const mask: u32 = 0x01 << offset;
416pub mod R {}
417pub mod W {}
418pub mod RW {}
419 }
420#[doc = "AHB triggered Command Sequences Grant Timeout interrupt enable."]
421pub mod AHBCMDGEEN {
422pub const offset: u32 = 2;
423pub const mask: u32 = 0x01 << offset;
424pub mod R {}
425pub mod W {}
426pub mod RW {}
427 }
428#[doc = "IP triggered Command Sequences Error Detected interrupt enable."]
429pub mod IPCMDERREN {
430pub const offset: u32 = 3;
431pub const mask: u32 = 0x01 << offset;
432pub mod R {}
433pub mod W {}
434pub mod RW {}
435 }
436#[doc = "AHB triggered Command Sequences Error Detected interrupt enable."]
437pub mod AHBCMDERREN {
438pub const offset: u32 = 4;
439pub const mask: u32 = 0x01 << offset;
440pub mod R {}
441pub mod W {}
442pub mod RW {}
443 }
444#[doc = "IP RX FIFO WaterMark available interrupt enable."]
445pub mod IPRXWAEN {
446pub const offset: u32 = 5;
447pub const mask: u32 = 0x01 << offset;
448pub mod R {}
449pub mod W {}
450pub mod RW {}
451 }
452#[doc = "IP TX FIFO WaterMark empty interrupt enable."]
453pub mod IPTXWEEN {
454pub const offset: u32 = 6;
455pub const mask: u32 = 0x01 << offset;
456pub mod R {}
457pub mod W {}
458pub mod RW {}
459 }
460#[doc = "SCLK is stopped during command sequence because Async RX FIFO full interrupt enable."]
461pub mod SCKSTOPBYRDEN {
462pub const offset: u32 = 8;
463pub const mask: u32 = 0x01 << offset;
464pub mod R {}
465pub mod W {}
466pub mod RW {}
467 }
468#[doc = "SCLK is stopped during command sequence because Async TX FIFO empty interrupt enable."]
469pub mod SCKSTOPBYWREN {
470pub const offset: u32 = 9;
471pub const mask: u32 = 0x01 << offset;
472pub mod R {}
473pub mod W {}
474pub mod RW {}
475 }
476#[doc = "AHB Bus error interrupt enable.Refer Interrupts chapter for more details."]
477pub mod AHBBUSERROREN {
478pub const offset: u32 = 10;
479pub const mask: u32 = 0x01 << offset;
480pub mod R {}
481pub mod W {}
482pub mod RW {}
483 }
484#[doc = "Sequence execution timeout interrupt enable.Refer Interrupts chapter for more details."]
485pub mod SEQTIMEOUTEN {
486pub const offset: u32 = 11;
487pub const mask: u32 = 0x01 << offset;
488pub mod R {}
489pub mod W {}
490pub mod RW {}
491 }
492#[doc = "OTFAD key blob processing done interrupt enable.Refer Interrupts chapter for more details."]
493pub mod KEYDONEEN {
494pub const offset: u32 = 12;
495pub const mask: u32 = 0x01 << offset;
496pub mod R {}
497pub mod W {}
498pub mod RW {}
499 }
500#[doc = "OTFAD key blob processing error interrupt enable.Refer Interrupts chapter for more details."]
501pub mod KEYERROREN {
502pub const offset: u32 = 13;
503pub const mask: u32 = 0x01 << offset;
504pub mod R {}
505pub mod W {}
506pub mod RW {}
507 }
508}
509#[doc = "Interrupt Register"]
510pub mod INTR {
511#[doc = "IP triggered Command Sequences Execution finished interrupt. This interrupt is also generated when there is IPCMDGE or IPCMDERR interrupt generated."]
512pub mod IPCMDDONE {
513pub const offset: u32 = 0;
514pub const mask: u32 = 0x01 << offset;
515pub mod R {}
516pub mod W {}
517pub mod RW {}
518 }
519#[doc = "IP triggered Command Sequences Grant Timeout interrupt."]
520pub mod IPCMDGE {
521pub const offset: u32 = 1;
522pub const mask: u32 = 0x01 << offset;
523pub mod R {}
524pub mod W {}
525pub mod RW {}
526 }
527#[doc = "AHB triggered Command Sequences Grant Timeout interrupt."]
528pub mod AHBCMDGE {
529pub const offset: u32 = 2;
530pub const mask: u32 = 0x01 << offset;
531pub mod R {}
532pub mod W {}
533pub mod RW {}
534 }
535#[doc = "IP triggered Command Sequences Error Detected interrupt. When an error detected for IP command, this command will be ignored and not executed at all."]
536pub mod IPCMDERR {
537pub const offset: u32 = 3;
538pub const mask: u32 = 0x01 << offset;
539pub mod R {}
540pub mod W {}
541pub mod RW {}
542 }
543#[doc = "AHB triggered Command Sequences Error Detected interrupt. When an error detected for AHB command, this command will be ignored and not executed at all."]
544pub mod AHBCMDERR {
545pub const offset: u32 = 4;
546pub const mask: u32 = 0x01 << offset;
547pub mod R {}
548pub mod W {}
549pub mod RW {}
550 }
551#[doc = "IP RX FIFO watermark available interrupt."]
552pub mod IPRXWA {
553pub const offset: u32 = 5;
554pub const mask: u32 = 0x01 << offset;
555pub mod R {}
556pub mod W {}
557pub mod RW {}
558 }
559#[doc = "IP TX FIFO watermark empty interrupt."]
560pub mod IPTXWE {
561pub const offset: u32 = 6;
562pub const mask: u32 = 0x01 << offset;
563pub mod R {}
564pub mod W {}
565pub mod RW {}
566 }
567#[doc = "SCLK is stopped during command sequence because Async RX FIFO full interrupt."]
568pub mod SCKSTOPBYRD {
569pub const offset: u32 = 8;
570pub const mask: u32 = 0x01 << offset;
571pub mod R {}
572pub mod W {}
573pub mod RW {}
574 }
575#[doc = "SCLK is stopped during command sequence because Async TX FIFO empty interrupt."]
576pub mod SCKSTOPBYWR {
577pub const offset: u32 = 9;
578pub const mask: u32 = 0x01 << offset;
579pub mod R {}
580pub mod W {}
581pub mod RW {}
582 }
583#[doc = "AHB Bus timeout or AHB bus illegal access Flash during OTFAD key blob processing interrupt."]
584pub mod AHBBUSERROR {
585pub const offset: u32 = 10;
586pub const mask: u32 = 0x01 << offset;
587pub mod R {}
588pub mod W {}
589pub mod RW {}
590 }
591#[doc = "Sequence execution timeout interrupt."]
592pub mod SEQTIMEOUT {
593pub const offset: u32 = 11;
594pub const mask: u32 = 0x01 << offset;
595pub mod R {}
596pub mod W {}
597pub mod RW {}
598 }
599#[doc = "OTFAD key blob processing done interrupt."]
600pub mod KEYDONE {
601pub const offset: u32 = 12;
602pub const mask: u32 = 0x01 << offset;
603pub mod R {}
604pub mod W {}
605pub mod RW {}
606 }
607#[doc = "OTFAD key blob processing error interrupt."]
608pub mod KEYERROR {
609pub const offset: u32 = 13;
610pub const mask: u32 = 0x01 << offset;
611pub mod R {}
612pub mod W {}
613pub mod RW {}
614 }
615}
616#[doc = "LUT Key Register"]
617pub mod LUTKEY {
618#[doc = "The Key to lock or unlock LUT."]
619pub mod KEY {
620pub const offset: u32 = 0;
621pub const mask: u32 = 0xffff_ffff << offset;
622pub mod R {}
623pub mod W {}
624pub mod RW {}
625 }
626}
627#[doc = "LUT Control Register"]
628pub mod LUTCR {
629#[doc = "Lock LUT"]
630pub mod LOCK {
631pub const offset: u32 = 0;
632pub const mask: u32 = 0x01 << offset;
633pub mod R {}
634pub mod W {}
635pub mod RW {}
636 }
637#[doc = "Unlock LUT"]
638pub mod UNLOCK {
639pub const offset: u32 = 1;
640pub const mask: u32 = 0x01 << offset;
641pub mod R {}
642pub mod W {}
643pub mod RW {}
644 }
645}
646#[doc = "AHB RX Buffer 0 Control Register 0"]
647pub mod AHBRXBUF0CR0 {
648#[doc = "AHB RX Buffer Size in 64 bits."]
649pub mod BUFSZ {
650pub const offset: u32 = 0;
651pub const mask: u32 = 0xff << offset;
652pub mod R {}
653pub mod W {}
654pub mod RW {}
655 }
656#[doc = "This AHB RX Buffer is assigned according to AHB Master with ID (MSTR_ID)."]
657pub mod MSTRID {
658pub const offset: u32 = 16;
659pub const mask: u32 = 0x0f << offset;
660pub mod R {}
661pub mod W {}
662pub mod RW {}
663 }
664#[doc = "This priority for AHB Master Read which this AHB RX Buffer is assigned. 7 is the highest priority, 0 the lowest."]
665pub mod PRIORITY {
666pub const offset: u32 = 24;
667pub const mask: u32 = 0x03 << offset;
668pub mod R {}
669pub mod W {}
670pub mod RW {}
671 }
672#[doc = "AHB Read Prefetch Enable for current AHB RX Buffer corresponding Master."]
673pub mod PREFETCHEN {
674pub const offset: u32 = 31;
675pub const mask: u32 = 0x01 << offset;
676pub mod R {}
677pub mod W {}
678pub mod RW {}
679 }
680}
681#[doc = "AHB RX Buffer 1 Control Register 0"]
682pub mod AHBRXBUF1CR0 {
683#[doc = "AHB RX Buffer Size in 64 bits."]
684pub mod BUFSZ {
685pub const offset: u32 = 0;
686pub const mask: u32 = 0xff << offset;
687pub mod R {}
688pub mod W {}
689pub mod RW {}
690 }
691#[doc = "This AHB RX Buffer is assigned according to AHB Master with ID (MSTR_ID)."]
692pub mod MSTRID {
693pub const offset: u32 = 16;
694pub const mask: u32 = 0x0f << offset;
695pub mod R {}
696pub mod W {}
697pub mod RW {}
698 }
699#[doc = "This priority for AHB Master Read which this AHB RX Buffer is assigned. 7 is the highest priority, 0 the lowest."]
700pub mod PRIORITY {
701pub const offset: u32 = 24;
702pub const mask: u32 = 0x03 << offset;
703pub mod R {}
704pub mod W {}
705pub mod RW {}
706 }
707#[doc = "AHB Read Prefetch Enable for current AHB RX Buffer corresponding Master."]
708pub mod PREFETCHEN {
709pub const offset: u32 = 31;
710pub const mask: u32 = 0x01 << offset;
711pub mod R {}
712pub mod W {}
713pub mod RW {}
714 }
715}
716#[doc = "AHB RX Buffer 2 Control Register 0"]
717pub mod AHBRXBUF2CR0 {
718#[doc = "AHB RX Buffer Size in 64 bits."]
719pub mod BUFSZ {
720pub const offset: u32 = 0;
721pub const mask: u32 = 0xff << offset;
722pub mod R {}
723pub mod W {}
724pub mod RW {}
725 }
726#[doc = "This AHB RX Buffer is assigned according to AHB Master with ID (MSTR_ID)."]
727pub mod MSTRID {
728pub const offset: u32 = 16;
729pub const mask: u32 = 0x0f << offset;
730pub mod R {}
731pub mod W {}
732pub mod RW {}
733 }
734#[doc = "This priority for AHB Master Read which this AHB RX Buffer is assigned. 7 is the highest priority, 0 the lowest."]
735pub mod PRIORITY {
736pub const offset: u32 = 24;
737pub const mask: u32 = 0x03 << offset;
738pub mod R {}
739pub mod W {}
740pub mod RW {}
741 }
742#[doc = "AHB Read Prefetch Enable for current AHB RX Buffer corresponding Master."]
743pub mod PREFETCHEN {
744pub const offset: u32 = 31;
745pub const mask: u32 = 0x01 << offset;
746pub mod R {}
747pub mod W {}
748pub mod RW {}
749 }
750}
751#[doc = "AHB RX Buffer 3 Control Register 0"]
752pub mod AHBRXBUF3CR0 {
753#[doc = "AHB RX Buffer Size in 64 bits."]
754pub mod BUFSZ {
755pub const offset: u32 = 0;
756pub const mask: u32 = 0xff << offset;
757pub mod R {}
758pub mod W {}
759pub mod RW {}
760 }
761#[doc = "This AHB RX Buffer is assigned according to AHB Master with ID (MSTR_ID)."]
762pub mod MSTRID {
763pub const offset: u32 = 16;
764pub const mask: u32 = 0x0f << offset;
765pub mod R {}
766pub mod W {}
767pub mod RW {}
768 }
769#[doc = "This priority for AHB Master Read which this AHB RX Buffer is assigned. 7 is the highest priority, 0 the lowest."]
770pub mod PRIORITY {
771pub const offset: u32 = 24;
772pub const mask: u32 = 0x03 << offset;
773pub mod R {}
774pub mod W {}
775pub mod RW {}
776 }
777#[doc = "AHB Read Prefetch Enable for current AHB RX Buffer corresponding Master."]
778pub mod PREFETCHEN {
779pub const offset: u32 = 31;
780pub const mask: u32 = 0x01 << offset;
781pub mod R {}
782pub mod W {}
783pub mod RW {}
784 }
785}
786#[doc = "Flash Control Register 0"]
787pub mod FLSHA1CR0 {
788#[doc = "Flash Size in KByte."]
789pub mod FLSHSZ {
790pub const offset: u32 = 0;
791pub const mask: u32 = 0x007f_ffff << offset;
792pub mod R {}
793pub mod W {}
794pub mod RW {}
795 }
796}
797#[doc = "Flash Control Register 0"]
798pub mod FLSHA2CR0 {
799#[doc = "Flash Size in KByte."]
800pub mod FLSHSZ {
801pub const offset: u32 = 0;
802pub const mask: u32 = 0x007f_ffff << offset;
803pub mod R {}
804pub mod W {}
805pub mod RW {}
806 }
807}
808#[doc = "Flash Control Register 0"]
809pub mod FLSHB1CR0 {
810#[doc = "Flash Size in KByte."]
811pub mod FLSHSZ {
812pub const offset: u32 = 0;
813pub const mask: u32 = 0x007f_ffff << offset;
814pub mod R {}
815pub mod W {}
816pub mod RW {}
817 }
818}
819#[doc = "Flash Control Register 0"]
820pub mod FLSHB2CR0 {
821#[doc = "Flash Size in KByte."]
822pub mod FLSHSZ {
823pub const offset: u32 = 0;
824pub const mask: u32 = 0x007f_ffff << offset;
825pub mod R {}
826pub mod W {}
827pub mod RW {}
828 }
829}
830#[doc = "Flash Control Register 1"]
831pub mod FLSHCR1 {
832#[doc = "Serial Flash CS setup time."]
833pub mod TCSS {
834pub const offset: u32 = 0;
835pub const mask: u32 = 0x1f << offset;
836pub mod R {}
837pub mod W {}
838pub mod RW {}
839 }
840#[doc = "Serial Flash CS Hold time."]
841pub mod TCSH {
842pub const offset: u32 = 5;
843pub const mask: u32 = 0x1f << offset;
844pub mod R {}
845pub mod W {}
846pub mod RW {}
847 }
848#[doc = "Word Addressable."]
849pub mod WA {
850pub const offset: u32 = 10;
851pub const mask: u32 = 0x01 << offset;
852pub mod R {}
853pub mod W {}
854pub mod RW {}
855 }
856#[doc = "Column Address Size."]
857pub mod CAS {
858pub const offset: u32 = 11;
859pub const mask: u32 = 0x0f << offset;
860pub mod R {}
861pub mod W {}
862pub mod RW {}
863 }
864#[doc = "CS interval unit"]
865pub mod CSINTERVALUNIT {
866pub const offset: u32 = 15;
867pub const mask: u32 = 0x01 << offset;
868pub mod R {}
869pub mod W {}
870pub mod RW {
871#[doc = "The CS interval unit is 1 serial clock cycle"]
872pub const CSINTERVALUNIT_0: u32 = 0;
873#[doc = "The CS interval unit is 256 serial clock cycle"]
874pub const CSINTERVALUNIT_1: u32 = 0x01;
875 }
876 }
877#[doc = "This field is used to set the minimum interval between flash device Chip selection deassertion and flash device Chip selection assertion. If external flash has a limitation on the interval between command sequences, this field should be set accordingly. If there is no limitation, set this field with value 0x0."]
878pub mod CSINTERVAL {
879pub const offset: u32 = 16;
880pub const mask: u32 = 0xffff << offset;
881pub mod R {}
882pub mod W {}
883pub mod RW {}
884 }
885}
886#[doc = "Flash Control Register 2"]
887pub mod FLSHCR2 {
888#[doc = "Sequence Index for AHB Read triggered Command in LUT."]
889pub mod ARDSEQID {
890pub const offset: u32 = 0;
891pub const mask: u32 = 0x0f << offset;
892pub mod R {}
893pub mod W {}
894pub mod RW {}
895 }
896#[doc = "Sequence Number for AHB Read triggered Command in LUT."]
897pub mod ARDSEQNUM {
898pub const offset: u32 = 5;
899pub const mask: u32 = 0x07 << offset;
900pub mod R {}
901pub mod W {}
902pub mod RW {}
903 }
904#[doc = "Sequence Index for AHB Write triggered Command."]
905pub mod AWRSEQID {
906pub const offset: u32 = 8;
907pub const mask: u32 = 0x0f << offset;
908pub mod R {}
909pub mod W {}
910pub mod RW {}
911 }
912#[doc = "Sequence Number for AHB Write triggered Command."]
913pub mod AWRSEQNUM {
914pub const offset: u32 = 13;
915pub const mask: u32 = 0x07 << offset;
916pub mod R {}
917pub mod W {}
918pub mod RW {}
919 }
920#[doc = "For certain devices (such as FPGA), it need some time to write data into internal memory after the command sequences finished on FlexSPI interface"]
921pub mod AWRWAIT {
922pub const offset: u32 = 16;
923pub const mask: u32 = 0x0fff << offset;
924pub mod R {}
925pub mod W {}
926pub mod RW {}
927 }
928#[doc = "AWRWAIT unit"]
929pub mod AWRWAITUNIT {
930pub const offset: u32 = 28;
931pub const mask: u32 = 0x07 << offset;
932pub mod R {}
933pub mod W {}
934pub mod RW {
935#[doc = "The AWRWAIT unit is 2 ahb clock cycle"]
936pub const AWRWAITUNIT_0: u32 = 0;
937#[doc = "The AWRWAIT unit is 8 ahb clock cycle"]
938pub const AWRWAITUNIT_1: u32 = 0x01;
939#[doc = "The AWRWAIT unit is 32 ahb clock cycle"]
940pub const AWRWAITUNIT_2: u32 = 0x02;
941#[doc = "The AWRWAIT unit is 128 ahb clock cycle"]
942pub const AWRWAITUNIT_3: u32 = 0x03;
943#[doc = "The AWRWAIT unit is 512 ahb clock cycle"]
944pub const AWRWAITUNIT_4: u32 = 0x04;
945#[doc = "The AWRWAIT unit is 2048 ahb clock cycle"]
946pub const AWRWAITUNIT_5: u32 = 0x05;
947#[doc = "The AWRWAIT unit is 8192 ahb clock cycle"]
948pub const AWRWAITUNIT_6: u32 = 0x06;
949#[doc = "The AWRWAIT unit is 32768 ahb clock cycle"]
950pub const AWRWAITUNIT_7: u32 = 0x07;
951 }
952 }
953#[doc = "Clear the instruction pointer which is internally saved pointer by JMP_ON_CS. Refer Programmable Sequence Engine for details."]
954pub mod CLRINSTRPTR {
955pub const offset: u32 = 31;
956pub const mask: u32 = 0x01 << offset;
957pub mod R {}
958pub mod W {}
959pub mod RW {}
960 }
961}
962#[doc = "Flash Control Register 4"]
963pub mod FLSHCR4 {
964#[doc = "Write mask option bit 1. This option bit could be used to remove AHB write burst start address alignment limitation."]
965pub mod WMOPT1 {
966pub const offset: u32 = 0;
967pub const mask: u32 = 0x01 << offset;
968pub mod R {}
969pub mod W {}
970pub mod RW {
971#[doc = "DQS pin will be used as Write Mask when writing to external device. There is no limitation on AHB write burst start address alignment when flash is accessed in individual mode."]
972pub const WMOPT1_0: u32 = 0;
973#[doc = "DQS pin will not be used as Write Mask when writing to external device. There is limitation on AHB write burst start address alignment when flash is accessed in individual mode."]
974pub const WMOPT1_1: u32 = 0x01;
975 }
976 }
977#[doc = "Write mask enable bit for flash device on port A. When write mask function is needed for memory device on port A, this bit must be set."]
978pub mod WMENA {
979pub const offset: u32 = 2;
980pub const mask: u32 = 0x01 << offset;
981pub mod R {}
982pub mod W {}
983pub mod RW {
984#[doc = "Write mask is disabled, DQS(RWDS) pin will be un-driven when writing to external device."]
985pub const WMENA_0: u32 = 0;
986#[doc = "Write mask is enabled, DQS(RWDS) pin will be driven by FlexSPI as write mask output when writing to external device."]
987pub const WMENA_1: u32 = 0x01;
988 }
989 }
990#[doc = "Write mask enable bit for flash device on port B. When write mask function is needed for memory device on port B, this bit must be set."]
991pub mod WMENB {
992pub const offset: u32 = 3;
993pub const mask: u32 = 0x01 << offset;
994pub mod R {}
995pub mod W {}
996pub mod RW {
997#[doc = "Write mask is disabled, DQS(RWDS) pin will be un-driven when writing to external device."]
998pub const WMENB_0: u32 = 0;
999#[doc = "Write mask is enabled, DQS(RWDS) pin will be driven by FlexSPI as write mask output when writing to external device."]
1000pub const WMENB_1: u32 = 0x01;
1001 }
1002 }
1003}
1004#[doc = "IP Control Register 0"]
1005pub mod IPCR0 {
1006#[doc = "Serial Flash Address for IP command."]
1007pub mod SFAR {
1008pub const offset: u32 = 0;
1009pub const mask: u32 = 0xffff_ffff << offset;
1010pub mod R {}
1011pub mod W {}
1012pub mod RW {}
1013 }
1014}
1015#[doc = "IP Control Register 1"]
1016pub mod IPCR1 {
1017#[doc = "Flash Read/Program Data Size (in Bytes) for IP command."]
1018pub mod IDATSZ {
1019pub const offset: u32 = 0;
1020pub const mask: u32 = 0xffff << offset;
1021pub mod R {}
1022pub mod W {}
1023pub mod RW {}
1024 }
1025#[doc = "Sequence Index in LUT for IP command."]
1026pub mod ISEQID {
1027pub const offset: u32 = 16;
1028pub const mask: u32 = 0x0f << offset;
1029pub mod R {}
1030pub mod W {}
1031pub mod RW {}
1032 }
1033#[doc = "Sequence Number for IP command: ISEQNUM+1."]
1034pub mod ISEQNUM {
1035pub const offset: u32 = 24;
1036pub const mask: u32 = 0x07 << offset;
1037pub mod R {}
1038pub mod W {}
1039pub mod RW {}
1040 }
1041#[doc = "Parallel mode Enabled for IP command."]
1042pub mod IPAREN {
1043pub const offset: u32 = 31;
1044pub const mask: u32 = 0x01 << offset;
1045pub mod R {}
1046pub mod W {}
1047pub mod RW {
1048#[doc = "Flash will be accessed in Individual mode."]
1049pub const IPAREN_0: u32 = 0;
1050#[doc = "Flash will be accessed in Parallel mode."]
1051pub const IPAREN_1: u32 = 0x01;
1052 }
1053 }
1054}
1055#[doc = "IP Command Register"]
1056pub mod IPCMD {
1057#[doc = "Setting this bit will trigger an IP Command."]
1058pub mod TRG {
1059pub const offset: u32 = 0;
1060pub const mask: u32 = 0x01 << offset;
1061pub mod R {}
1062pub mod W {}
1063pub mod RW {}
1064 }
1065}
1066#[doc = "IP RX FIFO Control Register"]
1067pub mod IPRXFCR {
1068#[doc = "Clear all valid data entries in IP RX FIFO."]
1069pub mod CLRIPRXF {
1070pub const offset: u32 = 0;
1071pub const mask: u32 = 0x01 << offset;
1072pub mod R {}
1073pub mod W {}
1074pub mod RW {}
1075 }
1076#[doc = "IP RX FIFO reading by DMA enabled."]
1077pub mod RXDMAEN {
1078pub const offset: u32 = 1;
1079pub const mask: u32 = 0x01 << offset;
1080pub mod R {}
1081pub mod W {}
1082pub mod RW {
1083#[doc = "IP RX FIFO would be read by processor."]
1084pub const RXDMAEN_0: u32 = 0;
1085#[doc = "IP RX FIFO would be read by DMA."]
1086pub const RXDMAEN_1: u32 = 0x01;
1087 }
1088 }
1089#[doc = "Watermark level is (RXWMRK+1)*64 Bits."]
1090pub mod RXWMRK {
1091pub const offset: u32 = 2;
1092pub const mask: u32 = 0x0f << offset;
1093pub mod R {}
1094pub mod W {}
1095pub mod RW {}
1096 }
1097}
1098#[doc = "IP TX FIFO Control Register"]
1099pub mod IPTXFCR {
1100#[doc = "Clear all valid data entries in IP TX FIFO."]
1101pub mod CLRIPTXF {
1102pub const offset: u32 = 0;
1103pub const mask: u32 = 0x01 << offset;
1104pub mod R {}
1105pub mod W {}
1106pub mod RW {}
1107 }
1108#[doc = "IP TX FIFO filling by DMA enabled."]
1109pub mod TXDMAEN {
1110pub const offset: u32 = 1;
1111pub const mask: u32 = 0x01 << offset;
1112pub mod R {}
1113pub mod W {}
1114pub mod RW {
1115#[doc = "IP TX FIFO would be filled by processor."]
1116pub const TXDMAEN_0: u32 = 0;
1117#[doc = "IP TX FIFO would be filled by DMA."]
1118pub const TXDMAEN_1: u32 = 0x01;
1119 }
1120 }
1121#[doc = "Watermark level is (TXWMRK+1)*64 Bits."]
1122pub mod TXWMRK {
1123pub const offset: u32 = 2;
1124pub const mask: u32 = 0x0f << offset;
1125pub mod R {}
1126pub mod W {}
1127pub mod RW {}
1128 }
1129}
1130#[doc = "DLL Control Register 0"]
1131pub mod DLLCR {
1132#[doc = "DLL calibration enable."]
1133pub mod DLLEN {
1134pub const offset: u32 = 0;
1135pub const mask: u32 = 0x01 << offset;
1136pub mod R {}
1137pub mod W {}
1138pub mod RW {}
1139 }
1140#[doc = "Software could force a reset on DLL by setting this field to 0x1. This will cause the DLL to lose lock and re-calibrate to detect an ref_clock half period phase shift. The reset action is edge triggered, so software need to clear this bit after set this bit (no delay limitation)."]
1141pub mod DLLRESET {
1142pub const offset: u32 = 1;
1143pub const mask: u32 = 0x01 << offset;
1144pub mod R {}
1145pub mod W {}
1146pub mod RW {}
1147 }
1148#[doc = "The delay target for slave delay line is: ((SLVDLYTARGET+1) * 1/32 * clock cycle of reference clock (serial root clock). If serial root clock is >= 100 MHz, DLLEN set to 0x1, OVRDEN set to =0x0, then SLVDLYTARGET setting of 0xF is recommended."]
1149pub mod SLVDLYTARGET {
1150pub const offset: u32 = 3;
1151pub const mask: u32 = 0x0f << offset;
1152pub mod R {}
1153pub mod W {}
1154pub mod RW {}
1155 }
1156#[doc = "Slave clock delay line delay cell number selection override enable."]
1157pub mod OVRDEN {
1158pub const offset: u32 = 8;
1159pub const mask: u32 = 0x01 << offset;
1160pub mod R {}
1161pub mod W {}
1162pub mod RW {}
1163 }
1164#[doc = "Slave clock delay line delay cell number selection override value."]
1165pub mod OVRDVAL {
1166pub const offset: u32 = 9;
1167pub const mask: u32 = 0x3f << offset;
1168pub mod R {}
1169pub mod W {}
1170pub mod RW {}
1171 }
1172}
1173#[doc = "Status Register 0"]
1174pub mod STS0 {
1175#[doc = "This status bit indicates the state machine in SEQ_CTL is idle and there is command sequence executing on FlexSPI interface."]
1176pub mod SEQIDLE {
1177pub const offset: u32 = 0;
1178pub const mask: u32 = 0x01 << offset;
1179pub mod R {}
1180pub mod W {}
1181pub mod RW {}
1182 }
1183#[doc = "This status bit indicates the state machine in ARB_CTL is busy and there is command sequence granted by arbitrator and not finished yet on FlexSPI interface. When ARB_CTL state (ARBIDLE=0x1) is idle, there will be no transaction on FlexSPI interface also (SEQIDLE=0x1). So this bit should be polled to wait for FlexSPI controller become idle instead of SEQIDLE."]
1184pub mod ARBIDLE {
1185pub const offset: u32 = 1;
1186pub const mask: u32 = 0x01 << offset;
1187pub mod R {}
1188pub mod W {}
1189pub mod RW {}
1190 }
1191#[doc = "This status field indicates the trigger source of current command sequence granted by arbitrator. This field value is meaningless when ARB_CTL is not busy (STS0\\[ARBIDLE\\]=0x1)."]
1192pub mod ARBCMDSRC {
1193pub const offset: u32 = 2;
1194pub const mask: u32 = 0x03 << offset;
1195pub mod R {}
1196pub mod W {}
1197pub mod RW {
1198#[doc = "Triggered by AHB read command (triggered by AHB read)."]
1199pub const ARBCMDSRC_0: u32 = 0;
1200#[doc = "Triggered by AHB write command (triggered by AHB Write)."]
1201pub const ARBCMDSRC_1: u32 = 0x01;
1202#[doc = "Triggered by IP command (triggered by setting register bit IPCMD.TRG)."]
1203pub const ARBCMDSRC_2: u32 = 0x02;
1204#[doc = "Triggered by suspended command (resumed)."]
1205pub const ARBCMDSRC_3: u32 = 0x03;
1206 }
1207 }
1208}
1209#[doc = "Status Register 1"]
1210pub mod STS1 {
1211#[doc = "Indicates the sequence index when an AHB command error is detected. This field will be cleared when INTR\\[AHBCMDERR\\] is write-1-clear(w1c)."]
1212pub mod AHBCMDERRID {
1213pub const offset: u32 = 0;
1214pub const mask: u32 = 0x0f << offset;
1215pub mod R {}
1216pub mod W {}
1217pub mod RW {}
1218 }
1219#[doc = "Indicates the Error Code when AHB command Error detected. This field will be cleared when INTR\\[AHBCMDERR\\] is write-1-clear(w1c)."]
1220pub mod AHBCMDERRCODE {
1221pub const offset: u32 = 8;
1222pub const mask: u32 = 0x0f << offset;
1223pub mod R {}
1224pub mod W {}
1225pub mod RW {
1226#[doc = "No error."]
1227pub const AHBCMDERRCODE_0: u32 = 0;
1228#[doc = "AHB Write command with JMP_ON_CS instruction used in the sequence."]
1229pub const AHBCMDERRCODE_2: u32 = 0x02;
1230#[doc = "There is unknown instruction opcode in the sequence."]
1231pub const AHBCMDERRCODE_3: u32 = 0x03;
1232#[doc = "Instruction DUMMY_SDR/DUMMY_RWDS_SDR used in DDR sequence."]
1233pub const AHBCMDERRCODE_4: u32 = 0x04;
1234#[doc = "Instruction DUMMY_DDR/DUMMY_RWDS_DDR used in SDR sequence."]
1235pub const AHBCMDERRCODE_5: u32 = 0x05;
1236#[doc = "Sequence execution timeout."]
1237pub const AHBCMDERRCODE_14: u32 = 0x0e;
1238 }
1239 }
1240#[doc = "Indicates the sequence Index when IP command error detected. This field will be cleared when INTR\\[IPCMDERR\\] is write-1-clear(w1c)."]
1241pub mod IPCMDERRID {
1242pub const offset: u32 = 16;
1243pub const mask: u32 = 0x0f << offset;
1244pub mod R {}
1245pub mod W {}
1246pub mod RW {}
1247 }
1248#[doc = "Indicates the Error Code when IP command Error detected. This field will be cleared when INTR\\[IPCMDERR\\] is write-1-clear(w1c)."]
1249pub mod IPCMDERRCODE {
1250pub const offset: u32 = 24;
1251pub const mask: u32 = 0x0f << offset;
1252pub mod R {}
1253pub mod W {}
1254pub mod RW {
1255#[doc = "No error."]
1256pub const IPCMDERRCODE_0: u32 = 0;
1257#[doc = "IP command with JMP_ON_CS instruction used in the sequence."]
1258pub const IPCMDERRCODE_2: u32 = 0x02;
1259#[doc = "There is unknown instruction opcode in the sequence."]
1260pub const IPCMDERRCODE_3: u32 = 0x03;
1261#[doc = "Instruction DUMMY_SDR/DUMMY_RWDS_SDR used in DDR sequence."]
1262pub const IPCMDERRCODE_4: u32 = 0x04;
1263#[doc = "Instruction DUMMY_DDR/DUMMY_RWDS_DDR used in SDR sequence."]
1264pub const IPCMDERRCODE_5: u32 = 0x05;
1265#[doc = "Flash access start address exceed the whole flash address range (A1/A2/B1/B2)."]
1266pub const IPCMDERRCODE_6: u32 = 0x06;
1267#[doc = "Sequence execution timeout."]
1268pub const IPCMDERRCODE_14: u32 = 0x0e;
1269#[doc = "Flash boundary crossed."]
1270pub const IPCMDERRCODE_15: u32 = 0x0f;
1271 }
1272 }
1273}
1274#[doc = "Status Register 2"]
1275pub mod STS2 {
1276#[doc = "Flash A sample clock slave delay line locked."]
1277pub mod ASLVLOCK {
1278pub const offset: u32 = 0;
1279pub const mask: u32 = 0x01 << offset;
1280pub mod R {}
1281pub mod W {}
1282pub mod RW {}
1283 }
1284#[doc = "Flash A sample clock reference delay line locked."]
1285pub mod AREFLOCK {
1286pub const offset: u32 = 1;
1287pub const mask: u32 = 0x01 << offset;
1288pub mod R {}
1289pub mod W {}
1290pub mod RW {}
1291 }
1292#[doc = "Flash A sample clock slave delay line delay cell number selection ."]
1293pub mod ASLVSEL {
1294pub const offset: u32 = 2;
1295pub const mask: u32 = 0x3f << offset;
1296pub mod R {}
1297pub mod W {}
1298pub mod RW {}
1299 }
1300#[doc = "Flash A sample clock reference delay line delay cell number selection."]
1301pub mod AREFSEL {
1302pub const offset: u32 = 8;
1303pub const mask: u32 = 0x3f << offset;
1304pub mod R {}
1305pub mod W {}
1306pub mod RW {}
1307 }
1308#[doc = "Flash B sample clock slave delay line locked."]
1309pub mod BSLVLOCK {
1310pub const offset: u32 = 16;
1311pub const mask: u32 = 0x01 << offset;
1312pub mod R {}
1313pub mod W {}
1314pub mod RW {}
1315 }
1316#[doc = "Flash B sample clock reference delay line locked."]
1317pub mod BREFLOCK {
1318pub const offset: u32 = 17;
1319pub const mask: u32 = 0x01 << offset;
1320pub mod R {}
1321pub mod W {}
1322pub mod RW {}
1323 }
1324#[doc = "Flash B sample clock slave delay line delay cell number selection."]
1325pub mod BSLVSEL {
1326pub const offset: u32 = 18;
1327pub const mask: u32 = 0x3f << offset;
1328pub mod R {}
1329pub mod W {}
1330pub mod RW {}
1331 }
1332#[doc = "Flash B sample clock reference delay line delay cell number selection."]
1333pub mod BREFSEL {
1334pub const offset: u32 = 24;
1335pub const mask: u32 = 0x3f << offset;
1336pub mod R {}
1337pub mod W {}
1338pub mod RW {}
1339 }
1340}
1341#[doc = "AHB Suspend Status Register"]
1342pub mod AHBSPNDSTS {
1343#[doc = "Indicates if an AHB read prefetch command sequence has been suspended."]
1344pub mod ACTIVE {
1345pub const offset: u32 = 0;
1346pub const mask: u32 = 0x01 << offset;
1347pub mod R {}
1348pub mod W {}
1349pub mod RW {}
1350 }
1351#[doc = "AHB RX BUF ID for suspended command sequence."]
1352pub mod BUFID {
1353pub const offset: u32 = 1;
1354pub const mask: u32 = 0x07 << offset;
1355pub mod R {}
1356pub mod W {}
1357pub mod RW {}
1358 }
1359#[doc = "Left Data size for suspended command sequence (in byte)."]
1360pub mod DATLFT {
1361pub const offset: u32 = 16;
1362pub const mask: u32 = 0xffff << offset;
1363pub mod R {}
1364pub mod W {}
1365pub mod RW {}
1366 }
1367}
1368#[doc = "IP RX FIFO Status Register"]
1369pub mod IPRXFSTS {
1370#[doc = "Fill level of IP RX FIFO."]
1371pub mod FILL {
1372pub const offset: u32 = 0;
1373pub const mask: u32 = 0xff << offset;
1374pub mod R {}
1375pub mod W {}
1376pub mod RW {}
1377 }
1378#[doc = "Total Read Data Counter: RDCNTR * 64 Bits."]
1379pub mod RDCNTR {
1380pub const offset: u32 = 16;
1381pub const mask: u32 = 0xffff << offset;
1382pub mod R {}
1383pub mod W {}
1384pub mod RW {}
1385 }
1386}
1387#[doc = "IP TX FIFO Status Register"]
1388pub mod IPTXFSTS {
1389#[doc = "Fill level of IP TX FIFO."]
1390pub mod FILL {
1391pub const offset: u32 = 0;
1392pub const mask: u32 = 0xff << offset;
1393pub mod R {}
1394pub mod W {}
1395pub mod RW {}
1396 }
1397#[doc = "Total Write Data Counter: WRCNTR * 64 Bits."]
1398pub mod WRCNTR {
1399pub const offset: u32 = 16;
1400pub const mask: u32 = 0xffff << offset;
1401pub mod R {}
1402pub mod W {}
1403pub mod RW {}
1404 }
1405}
1406#[doc = "IP RX FIFO Data Register 0"]
1407pub mod RFDR {
1408#[doc = "RX Data"]
1409pub mod RXDATA {
1410pub const offset: u32 = 0;
1411pub const mask: u32 = 0xffff_ffff << offset;
1412pub mod R {}
1413pub mod W {}
1414pub mod RW {}
1415 }
1416}
1417#[doc = "IP TX FIFO Data Register 0"]
1418pub mod TFDR {
1419#[doc = "TX Data"]
1420pub mod TXDATA {
1421pub const offset: u32 = 0;
1422pub const mask: u32 = 0xffff_ffff << offset;
1423pub mod R {}
1424pub mod W {}
1425pub mod RW {}
1426 }
1427}
1428#[doc = "LUT 0"]
1429pub mod LUT {
1430#[doc = "OPERAND0"]
1431pub mod OPERAND0 {
1432pub const offset: u32 = 0;
1433pub const mask: u32 = 0xff << offset;
1434pub mod R {}
1435pub mod W {}
1436pub mod RW {}
1437 }
1438#[doc = "NUM_PADS0"]
1439pub mod NUM_PADS0 {
1440pub const offset: u32 = 8;
1441pub const mask: u32 = 0x03 << offset;
1442pub mod R {}
1443pub mod W {}
1444pub mod RW {}
1445 }
1446#[doc = "OPCODE"]
1447pub mod OPCODE0 {
1448pub const offset: u32 = 10;
1449pub const mask: u32 = 0x3f << offset;
1450pub mod R {}
1451pub mod W {}
1452pub mod RW {}
1453 }
1454#[doc = "OPERAND1"]
1455pub mod OPERAND1 {
1456pub const offset: u32 = 16;
1457pub const mask: u32 = 0xff << offset;
1458pub mod R {}
1459pub mod W {}
1460pub mod RW {}
1461 }
1462#[doc = "NUM_PADS1"]
1463pub mod NUM_PADS1 {
1464pub const offset: u32 = 24;
1465pub const mask: u32 = 0x03 << offset;
1466pub mod R {}
1467pub mod W {}
1468pub mod RW {}
1469 }
1470#[doc = "OPCODE1"]
1471pub mod OPCODE1 {
1472pub const offset: u32 = 26;
1473pub const mask: u32 = 0x3f << offset;
1474pub mod R {}
1475pub mod W {}
1476pub mod RW {}
1477 }
1478}