1#[doc = r"Register block"]
2#[repr(C)]
3pub struct RegisterBlock {
4 _reserved0: [u8; 0x10],
5 #[doc = "0x10 - Start SPI transaction"]
6 pub tasks_start: TASKS_START,
7 #[doc = "0x14 - Stop SPI transaction"]
8 pub tasks_stop: TASKS_STOP,
9 _reserved2: [u8; 0x04],
10 #[doc = "0x1c - Suspend SPI transaction"]
11 pub tasks_suspend: TASKS_SUSPEND,
12 #[doc = "0x20 - Resume SPI transaction"]
13 pub tasks_resume: TASKS_RESUME,
14 _reserved4: [u8; 0xe0],
15 #[doc = "0x104 - SPI transaction has stopped"]
16 pub events_stopped: EVENTS_STOPPED,
17 _reserved5: [u8; 0x08],
18 #[doc = "0x110 - End of RXD buffer reached"]
19 pub events_endrx: EVENTS_ENDRX,
20 _reserved6: [u8; 0x04],
21 #[doc = "0x118 - End of RXD buffer and TXD buffer reached"]
22 pub events_end: EVENTS_END,
23 _reserved7: [u8; 0x04],
24 #[doc = "0x120 - End of TXD buffer reached"]
25 pub events_endtx: EVENTS_ENDTX,
26 _reserved8: [u8; 0x28],
27 #[doc = "0x14c - Transaction started"]
28 pub events_started: EVENTS_STARTED,
29 _reserved9: [u8; 0xb0],
30 #[doc = "0x200 - Shortcut register"]
31 pub shorts: SHORTS,
32 _reserved10: [u8; 0x0100],
33 #[doc = "0x304 - Enable interrupt"]
34 pub intenset: INTENSET,
35 #[doc = "0x308 - Disable interrupt"]
36 pub intenclr: INTENCLR,
37 _reserved12: [u8; 0x01f4],
38 #[doc = "0x500 - Enable SPIM"]
39 pub enable: ENABLE,
40 _reserved13: [u8; 0x04],
41 #[doc = "0x508..0x514 - Unspecified"]
42 pub psel: PSEL,
43 _reserved14: [u8; 0x10],
44 #[doc = "0x524 - SPI frequency. Accuracy depends on the HFCLK source selected."]
45 pub frequency: FREQUENCY,
46 _reserved15: [u8; 0x0c],
47 #[doc = "0x534..0x544 - RXD EasyDMA channel"]
48 pub rxd: RXD,
49 #[doc = "0x544..0x554 - TXD EasyDMA channel"]
50 pub txd: TXD,
51 #[doc = "0x554 - Configuration register"]
52 pub config: CONFIG,
53 _reserved18: [u8; 0x68],
54 #[doc = "0x5c0 - Over-read character. Character clocked out in case and over-read of the TXD buffer."]
55 pub orc: ORC,
56}
57#[doc = "TASKS_START (w) register accessor: an alias for `Reg<TASKS_START_SPEC>`"]
58pub type TASKS_START = crate::Reg<tasks_start::TASKS_START_SPEC>;
59#[doc = "Start SPI transaction"]
60pub mod tasks_start;
61#[doc = "TASKS_STOP (w) register accessor: an alias for `Reg<TASKS_STOP_SPEC>`"]
62pub type TASKS_STOP = crate::Reg<tasks_stop::TASKS_STOP_SPEC>;
63#[doc = "Stop SPI transaction"]
64pub mod tasks_stop;
65#[doc = "TASKS_SUSPEND (w) register accessor: an alias for `Reg<TASKS_SUSPEND_SPEC>`"]
66pub type TASKS_SUSPEND = crate::Reg<tasks_suspend::TASKS_SUSPEND_SPEC>;
67#[doc = "Suspend SPI transaction"]
68pub mod tasks_suspend;
69#[doc = "TASKS_RESUME (w) register accessor: an alias for `Reg<TASKS_RESUME_SPEC>`"]
70pub type TASKS_RESUME = crate::Reg<tasks_resume::TASKS_RESUME_SPEC>;
71#[doc = "Resume SPI transaction"]
72pub mod tasks_resume;
73#[doc = "EVENTS_STOPPED (rw) register accessor: an alias for `Reg<EVENTS_STOPPED_SPEC>`"]
74pub type EVENTS_STOPPED = crate::Reg<events_stopped::EVENTS_STOPPED_SPEC>;
75#[doc = "SPI transaction has stopped"]
76pub mod events_stopped;
77#[doc = "EVENTS_ENDRX (rw) register accessor: an alias for `Reg<EVENTS_ENDRX_SPEC>`"]
78pub type EVENTS_ENDRX = crate::Reg<events_endrx::EVENTS_ENDRX_SPEC>;
79#[doc = "End of RXD buffer reached"]
80pub mod events_endrx;
81#[doc = "EVENTS_END (rw) register accessor: an alias for `Reg<EVENTS_END_SPEC>`"]
82pub type EVENTS_END = crate::Reg<events_end::EVENTS_END_SPEC>;
83#[doc = "End of RXD buffer and TXD buffer reached"]
84pub mod events_end;
85#[doc = "EVENTS_ENDTX (rw) register accessor: an alias for `Reg<EVENTS_ENDTX_SPEC>`"]
86pub type EVENTS_ENDTX = crate::Reg<events_endtx::EVENTS_ENDTX_SPEC>;
87#[doc = "End of TXD buffer reached"]
88pub mod events_endtx;
89#[doc = "EVENTS_STARTED (rw) register accessor: an alias for `Reg<EVENTS_STARTED_SPEC>`"]
90pub type EVENTS_STARTED = crate::Reg<events_started::EVENTS_STARTED_SPEC>;
91#[doc = "Transaction started"]
92pub mod events_started;
93#[doc = "SHORTS (rw) register accessor: an alias for `Reg<SHORTS_SPEC>`"]
94pub type SHORTS = crate::Reg<shorts::SHORTS_SPEC>;
95#[doc = "Shortcut register"]
96pub mod shorts;
97#[doc = "INTENSET (rw) register accessor: an alias for `Reg<INTENSET_SPEC>`"]
98pub type INTENSET = crate::Reg<intenset::INTENSET_SPEC>;
99#[doc = "Enable interrupt"]
100pub mod intenset;
101#[doc = "INTENCLR (rw) register accessor: an alias for `Reg<INTENCLR_SPEC>`"]
102pub type INTENCLR = crate::Reg<intenclr::INTENCLR_SPEC>;
103#[doc = "Disable interrupt"]
104pub mod intenclr;
105#[doc = "ENABLE (rw) register accessor: an alias for `Reg<ENABLE_SPEC>`"]
106pub type ENABLE = crate::Reg<enable::ENABLE_SPEC>;
107#[doc = "Enable SPIM"]
108pub mod enable;
109#[doc = "Unspecified"]
110pub use psel::PSEL;
111#[doc = r"Cluster"]
112#[doc = "Unspecified"]
113pub mod psel;
114#[doc = "FREQUENCY (rw) register accessor: an alias for `Reg<FREQUENCY_SPEC>`"]
115pub type FREQUENCY = crate::Reg<frequency::FREQUENCY_SPEC>;
116#[doc = "SPI frequency. Accuracy depends on the HFCLK source selected."]
117pub mod frequency;
118#[doc = "RXD EasyDMA channel"]
119pub use rxd::RXD;
120#[doc = r"Cluster"]
121#[doc = "RXD EasyDMA channel"]
122pub mod rxd;
123#[doc = "TXD EasyDMA channel"]
124pub use txd::TXD;
125#[doc = r"Cluster"]
126#[doc = "TXD EasyDMA channel"]
127pub mod txd;
128#[doc = "CONFIG (rw) register accessor: an alias for `Reg<CONFIG_SPEC>`"]
129pub type CONFIG = crate::Reg<config::CONFIG_SPEC>;
130#[doc = "Configuration register"]
131pub mod config;
132#[doc = "ORC (rw) register accessor: an alias for `Reg<ORC_SPEC>`"]
133pub type ORC = crate::Reg<orc::ORC_SPEC>;
134#[doc = "Over-read character. Character clocked out in case and over-read of the TXD buffer."]
135pub mod orc;