nrf5340_app_pac/
i2s0_ns.rs

1#[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;