nrf5340_net_pac/
spim0_ns.rs1#[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; 0x6c],
15 #[doc = "0x90 - Subscribe configuration for task START"]
16 pub subscribe_start: SUBSCRIBE_START,
17 #[doc = "0x94 - Subscribe configuration for task STOP"]
18 pub subscribe_stop: SUBSCRIBE_STOP,
19 _reserved6: [u8; 0x04],
20 #[doc = "0x9c - Subscribe configuration for task SUSPEND"]
21 pub subscribe_suspend: SUBSCRIBE_SUSPEND,
22 #[doc = "0xa0 - Subscribe configuration for task RESUME"]
23 pub subscribe_resume: SUBSCRIBE_RESUME,
24 _reserved8: [u8; 0x60],
25 #[doc = "0x104 - SPI transaction has stopped"]
26 pub events_stopped: EVENTS_STOPPED,
27 _reserved9: [u8; 0x08],
28 #[doc = "0x110 - End of RXD buffer reached"]
29 pub events_endrx: EVENTS_ENDRX,
30 _reserved10: [u8; 0x04],
31 #[doc = "0x118 - End of RXD buffer and TXD buffer reached"]
32 pub events_end: EVENTS_END,
33 _reserved11: [u8; 0x04],
34 #[doc = "0x120 - End of TXD buffer reached"]
35 pub events_endtx: EVENTS_ENDTX,
36 _reserved12: [u8; 0x28],
37 #[doc = "0x14c - Transaction started"]
38 pub events_started: EVENTS_STARTED,
39 _reserved13: [u8; 0x34],
40 #[doc = "0x184 - Publish configuration for event STOPPED"]
41 pub publish_stopped: PUBLISH_STOPPED,
42 _reserved14: [u8; 0x08],
43 #[doc = "0x190 - Publish configuration for event ENDRX"]
44 pub publish_endrx: PUBLISH_ENDRX,
45 _reserved15: [u8; 0x04],
46 #[doc = "0x198 - Publish configuration for event END"]
47 pub publish_end: PUBLISH_END,
48 _reserved16: [u8; 0x04],
49 #[doc = "0x1a0 - Publish configuration for event ENDTX"]
50 pub publish_endtx: PUBLISH_ENDTX,
51 _reserved17: [u8; 0x28],
52 #[doc = "0x1cc - Publish configuration for event STARTED"]
53 pub publish_started: PUBLISH_STARTED,
54 _reserved18: [u8; 0x30],
55 #[doc = "0x200 - Shortcuts between local events and tasks"]
56 pub shorts: SHORTS,
57 _reserved19: [u8; 0x0100],
58 #[doc = "0x304 - Enable interrupt"]
59 pub intenset: INTENSET,
60 #[doc = "0x308 - Disable interrupt"]
61 pub intenclr: INTENCLR,
62 _reserved21: [u8; 0xf4],
63 #[doc = "0x400 - Stall status for EasyDMA RAM accesses. The fields in this register are set to STALL by hardware whenever a stall occurres and can be cleared (set to NOSTALL) by the CPU."]
64 pub stallstat: STALLSTAT,
65 _reserved22: [u8; 0xfc],
66 #[doc = "0x500 - Enable SPIM"]
67 pub enable: ENABLE,
68 _reserved23: [u8; 0x04],
69 #[doc = "0x508..0x518 - Unspecified"]
70 pub psel: PSEL,
71 _reserved24: [u8; 0x0c],
72 #[doc = "0x524 - SPI frequency. Accuracy depends on the HFCLK source selected."]
73 pub frequency: FREQUENCY,
74 _reserved25: [u8; 0x0c],
75 #[doc = "0x534..0x544 - RXD EasyDMA channel"]
76 pub rxd: RXD,
77 #[doc = "0x544..0x554 - TXD EasyDMA channel"]
78 pub txd: TXD,
79 #[doc = "0x554 - Configuration register"]
80 pub config: CONFIG,
81 _reserved28: [u8; 0x08],
82 #[doc = "0x560..0x568 - Unspecified"]
83 pub iftiming: IFTIMING,
84 #[doc = "0x568 - Polarity of CSN output"]
85 pub csnpol: CSNPOL,
86 #[doc = "0x56c - Pin select for DCX signal"]
87 pub pseldcx: PSELDCX,
88 #[doc = "0x570 - DCX configuration"]
89 pub dcxcnt: DCXCNT,
90 _reserved32: [u8; 0x4c],
91 #[doc = "0x5c0 - Byte transmitted after TXD.MAXCNT bytes have been transmitted in the case when RXD.MAXCNT is greater than TXD.MAXCNT"]
92 pub orc: ORC,
93}
94#[doc = "TASKS_START (w) register accessor: an alias for `Reg<TASKS_START_SPEC>`"]
95pub type TASKS_START = crate::Reg<tasks_start::TASKS_START_SPEC>;
96#[doc = "Start SPI transaction"]
97pub mod tasks_start;
98#[doc = "TASKS_STOP (w) register accessor: an alias for `Reg<TASKS_STOP_SPEC>`"]
99pub type TASKS_STOP = crate::Reg<tasks_stop::TASKS_STOP_SPEC>;
100#[doc = "Stop SPI transaction"]
101pub mod tasks_stop;
102#[doc = "TASKS_SUSPEND (w) register accessor: an alias for `Reg<TASKS_SUSPEND_SPEC>`"]
103pub type TASKS_SUSPEND = crate::Reg<tasks_suspend::TASKS_SUSPEND_SPEC>;
104#[doc = "Suspend SPI transaction"]
105pub mod tasks_suspend;
106#[doc = "TASKS_RESUME (w) register accessor: an alias for `Reg<TASKS_RESUME_SPEC>`"]
107pub type TASKS_RESUME = crate::Reg<tasks_resume::TASKS_RESUME_SPEC>;
108#[doc = "Resume SPI transaction"]
109pub mod tasks_resume;
110#[doc = "SUBSCRIBE_START (rw) register accessor: an alias for `Reg<SUBSCRIBE_START_SPEC>`"]
111pub type SUBSCRIBE_START = crate::Reg<subscribe_start::SUBSCRIBE_START_SPEC>;
112#[doc = "Subscribe configuration for task START"]
113pub mod subscribe_start;
114#[doc = "SUBSCRIBE_STOP (rw) register accessor: an alias for `Reg<SUBSCRIBE_STOP_SPEC>`"]
115pub type SUBSCRIBE_STOP = crate::Reg<subscribe_stop::SUBSCRIBE_STOP_SPEC>;
116#[doc = "Subscribe configuration for task STOP"]
117pub mod subscribe_stop;
118#[doc = "SUBSCRIBE_SUSPEND (rw) register accessor: an alias for `Reg<SUBSCRIBE_SUSPEND_SPEC>`"]
119pub type SUBSCRIBE_SUSPEND = crate::Reg<subscribe_suspend::SUBSCRIBE_SUSPEND_SPEC>;
120#[doc = "Subscribe configuration for task SUSPEND"]
121pub mod subscribe_suspend;
122#[doc = "SUBSCRIBE_RESUME (rw) register accessor: an alias for `Reg<SUBSCRIBE_RESUME_SPEC>`"]
123pub type SUBSCRIBE_RESUME = crate::Reg<subscribe_resume::SUBSCRIBE_RESUME_SPEC>;
124#[doc = "Subscribe configuration for task RESUME"]
125pub mod subscribe_resume;
126#[doc = "EVENTS_STOPPED (rw) register accessor: an alias for `Reg<EVENTS_STOPPED_SPEC>`"]
127pub type EVENTS_STOPPED = crate::Reg<events_stopped::EVENTS_STOPPED_SPEC>;
128#[doc = "SPI transaction has stopped"]
129pub mod events_stopped;
130#[doc = "EVENTS_ENDRX (rw) register accessor: an alias for `Reg<EVENTS_ENDRX_SPEC>`"]
131pub type EVENTS_ENDRX = crate::Reg<events_endrx::EVENTS_ENDRX_SPEC>;
132#[doc = "End of RXD buffer reached"]
133pub mod events_endrx;
134#[doc = "EVENTS_END (rw) register accessor: an alias for `Reg<EVENTS_END_SPEC>`"]
135pub type EVENTS_END = crate::Reg<events_end::EVENTS_END_SPEC>;
136#[doc = "End of RXD buffer and TXD buffer reached"]
137pub mod events_end;
138#[doc = "EVENTS_ENDTX (rw) register accessor: an alias for `Reg<EVENTS_ENDTX_SPEC>`"]
139pub type EVENTS_ENDTX = crate::Reg<events_endtx::EVENTS_ENDTX_SPEC>;
140#[doc = "End of TXD buffer reached"]
141pub mod events_endtx;
142#[doc = "EVENTS_STARTED (rw) register accessor: an alias for `Reg<EVENTS_STARTED_SPEC>`"]
143pub type EVENTS_STARTED = crate::Reg<events_started::EVENTS_STARTED_SPEC>;
144#[doc = "Transaction started"]
145pub mod events_started;
146#[doc = "PUBLISH_STOPPED (rw) register accessor: an alias for `Reg<PUBLISH_STOPPED_SPEC>`"]
147pub type PUBLISH_STOPPED = crate::Reg<publish_stopped::PUBLISH_STOPPED_SPEC>;
148#[doc = "Publish configuration for event STOPPED"]
149pub mod publish_stopped;
150#[doc = "PUBLISH_ENDRX (rw) register accessor: an alias for `Reg<PUBLISH_ENDRX_SPEC>`"]
151pub type PUBLISH_ENDRX = crate::Reg<publish_endrx::PUBLISH_ENDRX_SPEC>;
152#[doc = "Publish configuration for event ENDRX"]
153pub mod publish_endrx;
154#[doc = "PUBLISH_END (rw) register accessor: an alias for `Reg<PUBLISH_END_SPEC>`"]
155pub type PUBLISH_END = crate::Reg<publish_end::PUBLISH_END_SPEC>;
156#[doc = "Publish configuration for event END"]
157pub mod publish_end;
158#[doc = "PUBLISH_ENDTX (rw) register accessor: an alias for `Reg<PUBLISH_ENDTX_SPEC>`"]
159pub type PUBLISH_ENDTX = crate::Reg<publish_endtx::PUBLISH_ENDTX_SPEC>;
160#[doc = "Publish configuration for event ENDTX"]
161pub mod publish_endtx;
162#[doc = "PUBLISH_STARTED (rw) register accessor: an alias for `Reg<PUBLISH_STARTED_SPEC>`"]
163pub type PUBLISH_STARTED = crate::Reg<publish_started::PUBLISH_STARTED_SPEC>;
164#[doc = "Publish configuration for event STARTED"]
165pub mod publish_started;
166#[doc = "SHORTS (rw) register accessor: an alias for `Reg<SHORTS_SPEC>`"]
167pub type SHORTS = crate::Reg<shorts::SHORTS_SPEC>;
168#[doc = "Shortcuts between local events and tasks"]
169pub mod shorts;
170#[doc = "INTENSET (rw) register accessor: an alias for `Reg<INTENSET_SPEC>`"]
171pub type INTENSET = crate::Reg<intenset::INTENSET_SPEC>;
172#[doc = "Enable interrupt"]
173pub mod intenset;
174#[doc = "INTENCLR (rw) register accessor: an alias for `Reg<INTENCLR_SPEC>`"]
175pub type INTENCLR = crate::Reg<intenclr::INTENCLR_SPEC>;
176#[doc = "Disable interrupt"]
177pub mod intenclr;
178#[doc = "STALLSTAT (rw) register accessor: an alias for `Reg<STALLSTAT_SPEC>`"]
179pub type STALLSTAT = crate::Reg<stallstat::STALLSTAT_SPEC>;
180#[doc = "Stall status for EasyDMA RAM accesses. The fields in this register are set to STALL by hardware whenever a stall occurres and can be cleared (set to NOSTALL) by the CPU."]
181pub mod stallstat;
182#[doc = "ENABLE (rw) register accessor: an alias for `Reg<ENABLE_SPEC>`"]
183pub type ENABLE = crate::Reg<enable::ENABLE_SPEC>;
184#[doc = "Enable SPIM"]
185pub mod enable;
186#[doc = "Unspecified"]
187pub use psel::PSEL;
188#[doc = r"Cluster"]
189#[doc = "Unspecified"]
190pub mod psel;
191#[doc = "FREQUENCY (rw) register accessor: an alias for `Reg<FREQUENCY_SPEC>`"]
192pub type FREQUENCY = crate::Reg<frequency::FREQUENCY_SPEC>;
193#[doc = "SPI frequency. Accuracy depends on the HFCLK source selected."]
194pub mod frequency;
195#[doc = "RXD EasyDMA channel"]
196pub use rxd::RXD;
197#[doc = r"Cluster"]
198#[doc = "RXD EasyDMA channel"]
199pub mod rxd;
200#[doc = "TXD EasyDMA channel"]
201pub use txd::TXD;
202#[doc = r"Cluster"]
203#[doc = "TXD EasyDMA channel"]
204pub mod txd;
205#[doc = "CONFIG (rw) register accessor: an alias for `Reg<CONFIG_SPEC>`"]
206pub type CONFIG = crate::Reg<config::CONFIG_SPEC>;
207#[doc = "Configuration register"]
208pub mod config;
209#[doc = "Unspecified"]
210pub use iftiming::IFTIMING;
211#[doc = r"Cluster"]
212#[doc = "Unspecified"]
213pub mod iftiming;
214#[doc = "CSNPOL (rw) register accessor: an alias for `Reg<CSNPOL_SPEC>`"]
215pub type CSNPOL = crate::Reg<csnpol::CSNPOL_SPEC>;
216#[doc = "Polarity of CSN output"]
217pub mod csnpol;
218#[doc = "PSELDCX (rw) register accessor: an alias for `Reg<PSELDCX_SPEC>`"]
219pub type PSELDCX = crate::Reg<pseldcx::PSELDCX_SPEC>;
220#[doc = "Pin select for DCX signal"]
221pub mod pseldcx;
222#[doc = "DCXCNT (rw) register accessor: an alias for `Reg<DCXCNT_SPEC>`"]
223pub type DCXCNT = crate::Reg<dcxcnt::DCXCNT_SPEC>;
224#[doc = "DCX configuration"]
225pub mod dcxcnt;
226#[doc = "ORC (rw) register accessor: an alias for `Reg<ORC_SPEC>`"]
227pub type ORC = crate::Reg<orc::ORC_SPEC>;
228#[doc = "Byte transmitted after TXD.MAXCNT bytes have been transmitted in the case when RXD.MAXCNT is greater than TXD.MAXCNT"]
229pub mod orc;