nrf52840_pac/
i2s.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. Also stops MCK generator. Triggering this task will cause the {event:STOPPED} event to be generated."]
7    pub tasks_stop: TASKS_STOP,
8    _reserved2: [u8; 0xfc],
9    #[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 that are received on the SDIN pin."]
10    pub events_rxptrupd: EVENTS_RXPTRUPD,
11    #[doc = "0x108 - I2S transfer stopped."]
12    pub events_stopped: EVENTS_STOPPED,
13    _reserved4: [u8; 0x08],
14    #[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."]
15    pub events_txptrupd: EVENTS_TXPTRUPD,
16    _reserved5: [u8; 0x01e8],
17    #[doc = "0x300 - Enable or disable interrupt"]
18    pub inten: INTEN,
19    #[doc = "0x304 - Enable interrupt"]
20    pub intenset: INTENSET,
21    #[doc = "0x308 - Disable interrupt"]
22    pub intenclr: INTENCLR,
23    _reserved8: [u8; 0x01f4],
24    #[doc = "0x500 - Enable I2S module."]
25    pub enable: ENABLE,
26    #[doc = "0x504..0x52c - Unspecified"]
27    pub config: CONFIG,
28    _reserved10: [u8; 0x0c],
29    #[doc = "0x538 - Unspecified"]
30    pub rxd: RXD,
31    _reserved11: [u8; 0x04],
32    #[doc = "0x540 - Unspecified"]
33    pub txd: TXD,
34    _reserved12: [u8; 0x0c],
35    #[doc = "0x550 - Unspecified"]
36    pub rxtxd: RXTXD,
37    _reserved13: [u8; 0x0c],
38    #[doc = "0x560..0x574 - Unspecified"]
39    pub psel: PSEL,
40}
41#[doc = "TASKS_START (w) register accessor: an alias for `Reg<TASKS_START_SPEC>`"]
42pub type TASKS_START = crate::Reg<tasks_start::TASKS_START_SPEC>;
43#[doc = "Starts continuous I2S transfer. Also starts MCK generator when this is enabled."]
44pub mod tasks_start;
45#[doc = "TASKS_STOP (w) register accessor: an alias for `Reg<TASKS_STOP_SPEC>`"]
46pub type TASKS_STOP = crate::Reg<tasks_stop::TASKS_STOP_SPEC>;
47#[doc = "Stops I2S transfer. Also stops MCK generator. Triggering this task will cause the {event:STOPPED} event to be generated."]
48pub mod tasks_stop;
49#[doc = "EVENTS_RXPTRUPD (rw) register accessor: an alias for `Reg<EVENTS_RXPTRUPD_SPEC>`"]
50pub type EVENTS_RXPTRUPD = crate::Reg<events_rxptrupd::EVENTS_RXPTRUPD_SPEC>;
51#[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 that are received on the SDIN pin."]
52pub mod events_rxptrupd;
53#[doc = "EVENTS_STOPPED (rw) register accessor: an alias for `Reg<EVENTS_STOPPED_SPEC>`"]
54pub type EVENTS_STOPPED = crate::Reg<events_stopped::EVENTS_STOPPED_SPEC>;
55#[doc = "I2S transfer stopped."]
56pub mod events_stopped;
57#[doc = "EVENTS_TXPTRUPD (rw) register accessor: an alias for `Reg<EVENTS_TXPTRUPD_SPEC>`"]
58pub type EVENTS_TXPTRUPD = crate::Reg<events_txptrupd::EVENTS_TXPTRUPD_SPEC>;
59#[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."]
60pub mod events_txptrupd;
61#[doc = "INTEN (rw) register accessor: an alias for `Reg<INTEN_SPEC>`"]
62pub type INTEN = crate::Reg<inten::INTEN_SPEC>;
63#[doc = "Enable or disable interrupt"]
64pub mod inten;
65#[doc = "INTENSET (rw) register accessor: an alias for `Reg<INTENSET_SPEC>`"]
66pub type INTENSET = crate::Reg<intenset::INTENSET_SPEC>;
67#[doc = "Enable interrupt"]
68pub mod intenset;
69#[doc = "INTENCLR (rw) register accessor: an alias for `Reg<INTENCLR_SPEC>`"]
70pub type INTENCLR = crate::Reg<intenclr::INTENCLR_SPEC>;
71#[doc = "Disable interrupt"]
72pub mod intenclr;
73#[doc = "ENABLE (rw) register accessor: an alias for `Reg<ENABLE_SPEC>`"]
74pub type ENABLE = crate::Reg<enable::ENABLE_SPEC>;
75#[doc = "Enable I2S module."]
76pub mod enable;
77#[doc = "Unspecified"]
78pub use config::CONFIG;
79#[doc = r"Cluster"]
80#[doc = "Unspecified"]
81pub mod config;
82#[doc = "Unspecified"]
83pub use rxd::RXD;
84#[doc = r"Cluster"]
85#[doc = "Unspecified"]
86pub mod rxd;
87#[doc = "Unspecified"]
88pub use txd::TXD;
89#[doc = r"Cluster"]
90#[doc = "Unspecified"]
91pub mod txd;
92#[doc = "Unspecified"]
93pub use rxtxd::RXTXD;
94#[doc = r"Cluster"]
95#[doc = "Unspecified"]
96pub mod rxtxd;
97#[doc = "Unspecified"]
98pub use psel::PSEL;
99#[doc = r"Cluster"]
100#[doc = "Unspecified"]
101pub mod psel;