nrf5340_app_pac/
i2s0_ns.rs1#[doc = r"Register block"]
2#[repr(C)]
3pub struct RegisterBlock {
4 #[doc = "0x00 - Starts continuous I2S transfer. Also starts MCK generator when this is enabled"]
5 pub tasks_start: TASKS_START,
6 #[doc = "0x04 - Stops I2S transfer and MCK generator. Triggering this task will cause the event STOPPED to be generated."]
7 pub tasks_stop: TASKS_STOP,
8 _reserved2: [u8; 0x78],
9 #[doc = "0x80 - Subscribe configuration for task START"]
10 pub subscribe_start: SUBSCRIBE_START,
11 #[doc = "0x84 - Subscribe configuration for task STOP"]
12 pub subscribe_stop: SUBSCRIBE_STOP,
13 _reserved4: [u8; 0x7c],
14 #[doc = "0x104 - The RXD.PTR register has been copied to internal double-buffers. When the I2S module is started and RX is enabled, this event will be generated for every RXTXD.MAXCNT words received on the SDIN pin."]
15 pub events_rxptrupd: EVENTS_RXPTRUPD,
16 #[doc = "0x108 - I2S transfer stopped."]
17 pub events_stopped: EVENTS_STOPPED,
18 _reserved6: [u8; 0x08],
19 #[doc = "0x114 - The TDX.PTR register has been copied to internal double-buffers. When the I2S module is started and TX is enabled, this event will be generated for every RXTXD.MAXCNT words that are sent on the SDOUT pin."]
20 pub events_txptrupd: EVENTS_TXPTRUPD,
21 _reserved7: [u8; 0x04],
22 #[doc = "0x11c - Frame start event, generated on the active edge of LRCK"]
23 pub events_framestart: EVENTS_FRAMESTART,
24 _reserved8: [u8; 0x64],
25 #[doc = "0x184 - Publish configuration for event RXPTRUPD"]
26 pub publish_rxptrupd: PUBLISH_RXPTRUPD,
27 #[doc = "0x188 - Publish configuration for event STOPPED"]
28 pub publish_stopped: PUBLISH_STOPPED,
29 _reserved10: [u8; 0x08],
30 #[doc = "0x194 - Publish configuration for event TXPTRUPD"]
31 pub publish_txptrupd: PUBLISH_TXPTRUPD,
32 _reserved11: [u8; 0x04],
33 #[doc = "0x19c - Publish configuration for event FRAMESTART"]
34 pub publish_framestart: PUBLISH_FRAMESTART,
35 _reserved12: [u8; 0x0160],
36 #[doc = "0x300 - Enable or disable interrupt"]
37 pub inten: INTEN,
38 #[doc = "0x304 - Enable interrupt"]
39 pub intenset: INTENSET,
40 #[doc = "0x308 - Disable interrupt"]
41 pub intenclr: INTENCLR,
42 _reserved15: [u8; 0x01f4],
43 #[doc = "0x500 - Enable I2S module"]
44 pub enable: ENABLE,
45 #[doc = "0x504..0x530 - Unspecified"]
46 pub config: CONFIG,
47 _reserved17: [u8; 0x08],
48 #[doc = "0x538 - Unspecified"]
49 pub rxd: RXD,
50 _reserved18: [u8; 0x04],
51 #[doc = "0x540 - Unspecified"]
52 pub txd: TXD,
53 _reserved19: [u8; 0x0c],
54 #[doc = "0x550 - Unspecified"]
55 pub rxtxd: RXTXD,
56 _reserved20: [u8; 0x0c],
57 #[doc = "0x560..0x574 - Unspecified"]
58 pub psel: PSEL,
59}
60#[doc = "TASKS_START (w) register accessor: an alias for `Reg<TASKS_START_SPEC>`"]
61pub type TASKS_START = crate::Reg<tasks_start::TASKS_START_SPEC>;
62#[doc = "Starts continuous I2S transfer. Also starts MCK generator when this is enabled"]
63pub mod tasks_start;
64#[doc = "TASKS_STOP (w) register accessor: an alias for `Reg<TASKS_STOP_SPEC>`"]
65pub type TASKS_STOP = crate::Reg<tasks_stop::TASKS_STOP_SPEC>;
66#[doc = "Stops I2S transfer and MCK generator. Triggering this task will cause the event STOPPED to be generated."]
67pub mod tasks_stop;
68#[doc = "SUBSCRIBE_START (rw) register accessor: an alias for `Reg<SUBSCRIBE_START_SPEC>`"]
69pub type SUBSCRIBE_START = crate::Reg<subscribe_start::SUBSCRIBE_START_SPEC>;
70#[doc = "Subscribe configuration for task START"]
71pub mod subscribe_start;
72#[doc = "SUBSCRIBE_STOP (rw) register accessor: an alias for `Reg<SUBSCRIBE_STOP_SPEC>`"]
73pub type SUBSCRIBE_STOP = crate::Reg<subscribe_stop::SUBSCRIBE_STOP_SPEC>;
74#[doc = "Subscribe configuration for task STOP"]
75pub mod subscribe_stop;
76#[doc = "EVENTS_RXPTRUPD (rw) register accessor: an alias for `Reg<EVENTS_RXPTRUPD_SPEC>`"]
77pub type EVENTS_RXPTRUPD = crate::Reg<events_rxptrupd::EVENTS_RXPTRUPD_SPEC>;
78#[doc = "The RXD.PTR register has been copied to internal double-buffers. When the I2S module is started and RX is enabled, this event will be generated for every RXTXD.MAXCNT words received on the SDIN pin."]
79pub mod events_rxptrupd;
80#[doc = "EVENTS_STOPPED (rw) register accessor: an alias for `Reg<EVENTS_STOPPED_SPEC>`"]
81pub type EVENTS_STOPPED = crate::Reg<events_stopped::EVENTS_STOPPED_SPEC>;
82#[doc = "I2S transfer stopped."]
83pub mod events_stopped;
84#[doc = "EVENTS_TXPTRUPD (rw) register accessor: an alias for `Reg<EVENTS_TXPTRUPD_SPEC>`"]
85pub type EVENTS_TXPTRUPD = crate::Reg<events_txptrupd::EVENTS_TXPTRUPD_SPEC>;
86#[doc = "The TDX.PTR register has been copied to internal double-buffers. When the I2S module is started and TX is enabled, this event will be generated for every RXTXD.MAXCNT words that are sent on the SDOUT pin."]
87pub mod events_txptrupd;
88#[doc = "EVENTS_FRAMESTART (rw) register accessor: an alias for `Reg<EVENTS_FRAMESTART_SPEC>`"]
89pub type EVENTS_FRAMESTART = crate::Reg<events_framestart::EVENTS_FRAMESTART_SPEC>;
90#[doc = "Frame start event, generated on the active edge of LRCK"]
91pub mod events_framestart;
92#[doc = "PUBLISH_RXPTRUPD (rw) register accessor: an alias for `Reg<PUBLISH_RXPTRUPD_SPEC>`"]
93pub type PUBLISH_RXPTRUPD = crate::Reg<publish_rxptrupd::PUBLISH_RXPTRUPD_SPEC>;
94#[doc = "Publish configuration for event RXPTRUPD"]
95pub mod publish_rxptrupd;
96#[doc = "PUBLISH_STOPPED (rw) register accessor: an alias for `Reg<PUBLISH_STOPPED_SPEC>`"]
97pub type PUBLISH_STOPPED = crate::Reg<publish_stopped::PUBLISH_STOPPED_SPEC>;
98#[doc = "Publish configuration for event STOPPED"]
99pub mod publish_stopped;
100#[doc = "PUBLISH_TXPTRUPD (rw) register accessor: an alias for `Reg<PUBLISH_TXPTRUPD_SPEC>`"]
101pub type PUBLISH_TXPTRUPD = crate::Reg<publish_txptrupd::PUBLISH_TXPTRUPD_SPEC>;
102#[doc = "Publish configuration for event TXPTRUPD"]
103pub mod publish_txptrupd;
104#[doc = "PUBLISH_FRAMESTART (rw) register accessor: an alias for `Reg<PUBLISH_FRAMESTART_SPEC>`"]
105pub type PUBLISH_FRAMESTART = crate::Reg<publish_framestart::PUBLISH_FRAMESTART_SPEC>;
106#[doc = "Publish configuration for event FRAMESTART"]
107pub mod publish_framestart;
108#[doc = "INTEN (rw) register accessor: an alias for `Reg<INTEN_SPEC>`"]
109pub type INTEN = crate::Reg<inten::INTEN_SPEC>;
110#[doc = "Enable or disable interrupt"]
111pub mod inten;
112#[doc = "INTENSET (rw) register accessor: an alias for `Reg<INTENSET_SPEC>`"]
113pub type INTENSET = crate::Reg<intenset::INTENSET_SPEC>;
114#[doc = "Enable interrupt"]
115pub mod intenset;
116#[doc = "INTENCLR (rw) register accessor: an alias for `Reg<INTENCLR_SPEC>`"]
117pub type INTENCLR = crate::Reg<intenclr::INTENCLR_SPEC>;
118#[doc = "Disable interrupt"]
119pub mod intenclr;
120#[doc = "ENABLE (rw) register accessor: an alias for `Reg<ENABLE_SPEC>`"]
121pub type ENABLE = crate::Reg<enable::ENABLE_SPEC>;
122#[doc = "Enable I2S module"]
123pub mod enable;
124#[doc = "Unspecified"]
125pub use config::CONFIG;
126#[doc = r"Cluster"]
127#[doc = "Unspecified"]
128pub mod config;
129#[doc = "Unspecified"]
130pub use rxd::RXD;
131#[doc = r"Cluster"]
132#[doc = "Unspecified"]
133pub mod rxd;
134#[doc = "Unspecified"]
135pub use txd::TXD;
136#[doc = r"Cluster"]
137#[doc = "Unspecified"]
138pub mod txd;
139#[doc = "Unspecified"]
140pub use rxtxd::RXTXD;
141#[doc = r"Cluster"]
142#[doc = "Unspecified"]
143pub mod rxtxd;
144#[doc = "Unspecified"]
145pub use psel::PSEL;
146#[doc = r"Cluster"]
147#[doc = "Unspecified"]
148pub mod psel;