1#[repr(C)]
2#[cfg_attr(feature = "impl-register-debug", derive(Debug))]
3#[doc = "Register block"]
4pub struct RegisterBlock {
5 _reserved0: [u8; 0x0c],
6 int_raw: INT_RAW,
7 int_st: INT_ST,
8 int_ena: INT_ENA,
9 int_clr: INT_CLR,
10 _reserved4: [u8; 0x04],
11 rx_conf: RX_CONF,
12 tx_conf: TX_CONF,
13 rx_conf1: RX_CONF1,
14 tx_conf1: TX_CONF1,
15 rx_clkm_conf: RX_CLKM_CONF,
16 tx_clkm_conf: TX_CLKM_CONF,
17 rx_clkm_div_conf: RX_CLKM_DIV_CONF,
18 tx_clkm_div_conf: TX_CLKM_DIV_CONF,
19 tx_pcm2pdm_conf: TX_PCM2PDM_CONF,
20 tx_pcm2pdm_conf1: TX_PCM2PDM_CONF1,
21 _reserved14: [u8; 0x08],
22 rx_tdm_ctrl: RX_TDM_CTRL,
23 tx_tdm_ctrl: TX_TDM_CTRL,
24 rx_timing: RX_TIMING,
25 tx_timing: TX_TIMING,
26 lc_hung_conf: LC_HUNG_CONF,
27 rxeof_num: RXEOF_NUM,
28 conf_sigle_data: CONF_SIGLE_DATA,
29 state: STATE,
30 etm_conf: ETM_CONF,
31 _reserved23: [u8; 0x0c],
32 date: DATE,
33}
34impl RegisterBlock {
35 #[doc = "0x0c - I2S interrupt raw register, valid in level."]
36 #[inline(always)]
37 pub const fn int_raw(&self) -> &INT_RAW {
38 &self.int_raw
39 }
40 #[doc = "0x10 - I2S interrupt status register."]
41 #[inline(always)]
42 pub const fn int_st(&self) -> &INT_ST {
43 &self.int_st
44 }
45 #[doc = "0x14 - I2S interrupt enable register."]
46 #[inline(always)]
47 pub const fn int_ena(&self) -> &INT_ENA {
48 &self.int_ena
49 }
50 #[doc = "0x18 - I2S interrupt clear register."]
51 #[inline(always)]
52 pub const fn int_clr(&self) -> &INT_CLR {
53 &self.int_clr
54 }
55 #[doc = "0x20 - I2S RX configure register"]
56 #[inline(always)]
57 pub const fn rx_conf(&self) -> &RX_CONF {
58 &self.rx_conf
59 }
60 #[doc = "0x24 - I2S TX configure register"]
61 #[inline(always)]
62 pub const fn tx_conf(&self) -> &TX_CONF {
63 &self.tx_conf
64 }
65 #[doc = "0x28 - I2S RX configure register 1"]
66 #[inline(always)]
67 pub const fn rx_conf1(&self) -> &RX_CONF1 {
68 &self.rx_conf1
69 }
70 #[doc = "0x2c - I2S TX configure register 1"]
71 #[inline(always)]
72 pub const fn tx_conf1(&self) -> &TX_CONF1 {
73 &self.tx_conf1
74 }
75 #[doc = "0x30 - I2S RX clock configure register"]
76 #[inline(always)]
77 pub const fn rx_clkm_conf(&self) -> &RX_CLKM_CONF {
78 &self.rx_clkm_conf
79 }
80 #[doc = "0x34 - I2S TX clock configure register"]
81 #[inline(always)]
82 pub const fn tx_clkm_conf(&self) -> &TX_CLKM_CONF {
83 &self.tx_clkm_conf
84 }
85 #[doc = "0x38 - I2S RX module clock divider configure register"]
86 #[inline(always)]
87 pub const fn rx_clkm_div_conf(&self) -> &RX_CLKM_DIV_CONF {
88 &self.rx_clkm_div_conf
89 }
90 #[doc = "0x3c - I2S TX module clock divider configure register"]
91 #[inline(always)]
92 pub const fn tx_clkm_div_conf(&self) -> &TX_CLKM_DIV_CONF {
93 &self.tx_clkm_div_conf
94 }
95 #[doc = "0x40 - I2S TX PCM2PDM configuration register"]
96 #[inline(always)]
97 pub const fn tx_pcm2pdm_conf(&self) -> &TX_PCM2PDM_CONF {
98 &self.tx_pcm2pdm_conf
99 }
100 #[doc = "0x44 - I2S TX PCM2PDM configuration register"]
101 #[inline(always)]
102 pub const fn tx_pcm2pdm_conf1(&self) -> &TX_PCM2PDM_CONF1 {
103 &self.tx_pcm2pdm_conf1
104 }
105 #[doc = "0x50 - I2S TX TDM mode control register"]
106 #[inline(always)]
107 pub const fn rx_tdm_ctrl(&self) -> &RX_TDM_CTRL {
108 &self.rx_tdm_ctrl
109 }
110 #[doc = "0x54 - I2S TX TDM mode control register"]
111 #[inline(always)]
112 pub const fn tx_tdm_ctrl(&self) -> &TX_TDM_CTRL {
113 &self.tx_tdm_ctrl
114 }
115 #[doc = "0x58 - I2S RX timing control register"]
116 #[inline(always)]
117 pub const fn rx_timing(&self) -> &RX_TIMING {
118 &self.rx_timing
119 }
120 #[doc = "0x5c - I2S TX timing control register"]
121 #[inline(always)]
122 pub const fn tx_timing(&self) -> &TX_TIMING {
123 &self.tx_timing
124 }
125 #[doc = "0x60 - I2S HUNG configure register."]
126 #[inline(always)]
127 pub const fn lc_hung_conf(&self) -> &LC_HUNG_CONF {
128 &self.lc_hung_conf
129 }
130 #[doc = "0x64 - I2S RX data number control register."]
131 #[inline(always)]
132 pub const fn rxeof_num(&self) -> &RXEOF_NUM {
133 &self.rxeof_num
134 }
135 #[doc = "0x68 - I2S signal data register"]
136 #[inline(always)]
137 pub const fn conf_sigle_data(&self) -> &CONF_SIGLE_DATA {
138 &self.conf_sigle_data
139 }
140 #[doc = "0x6c - I2S TX status register"]
141 #[inline(always)]
142 pub const fn state(&self) -> &STATE {
143 &self.state
144 }
145 #[doc = "0x70 - I2S ETM configure register"]
146 #[inline(always)]
147 pub const fn etm_conf(&self) -> &ETM_CONF {
148 &self.etm_conf
149 }
150 #[doc = "0x80 - Version control register"]
151 #[inline(always)]
152 pub const fn date(&self) -> &DATE {
153 &self.date
154 }
155}
156#[doc = "INT_RAW (r) register accessor: I2S interrupt raw register, valid in level.\n\nYou can [`read`](crate::Reg::read) this register and get [`int_raw::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@int_raw`] module"]
157pub type INT_RAW = crate::Reg<int_raw::INT_RAW_SPEC>;
158#[doc = "I2S interrupt raw register, valid in level."]
159pub mod int_raw;
160#[doc = "INT_ST (r) register accessor: I2S interrupt status register.\n\nYou can [`read`](crate::Reg::read) this register and get [`int_st::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@int_st`] module"]
161pub type INT_ST = crate::Reg<int_st::INT_ST_SPEC>;
162#[doc = "I2S interrupt status register."]
163pub mod int_st;
164#[doc = "INT_ENA (rw) register accessor: I2S interrupt enable register.\n\nYou can [`read`](crate::Reg::read) this register and get [`int_ena::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`int_ena::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@int_ena`] module"]
165pub type INT_ENA = crate::Reg<int_ena::INT_ENA_SPEC>;
166#[doc = "I2S interrupt enable register."]
167pub mod int_ena;
168#[doc = "INT_CLR (w) register accessor: I2S interrupt clear register.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`int_clr::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@int_clr`] module"]
169pub type INT_CLR = crate::Reg<int_clr::INT_CLR_SPEC>;
170#[doc = "I2S interrupt clear register."]
171pub mod int_clr;
172#[doc = "RX_CONF (rw) register accessor: I2S RX configure register\n\nYou can [`read`](crate::Reg::read) this register and get [`rx_conf::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`rx_conf::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@rx_conf`] module"]
173pub type RX_CONF = crate::Reg<rx_conf::RX_CONF_SPEC>;
174#[doc = "I2S RX configure register"]
175pub mod rx_conf;
176#[doc = "TX_CONF (rw) register accessor: I2S TX configure register\n\nYou can [`read`](crate::Reg::read) this register and get [`tx_conf::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tx_conf::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tx_conf`] module"]
177pub type TX_CONF = crate::Reg<tx_conf::TX_CONF_SPEC>;
178#[doc = "I2S TX configure register"]
179pub mod tx_conf;
180#[doc = "RX_CONF1 (rw) register accessor: I2S RX configure register 1\n\nYou can [`read`](crate::Reg::read) this register and get [`rx_conf1::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`rx_conf1::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@rx_conf1`] module"]
181pub type RX_CONF1 = crate::Reg<rx_conf1::RX_CONF1_SPEC>;
182#[doc = "I2S RX configure register 1"]
183pub mod rx_conf1;
184#[doc = "TX_CONF1 (rw) register accessor: I2S TX configure register 1\n\nYou can [`read`](crate::Reg::read) this register and get [`tx_conf1::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tx_conf1::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tx_conf1`] module"]
185pub type TX_CONF1 = crate::Reg<tx_conf1::TX_CONF1_SPEC>;
186#[doc = "I2S TX configure register 1"]
187pub mod tx_conf1;
188#[doc = "RX_CLKM_CONF (rw) register accessor: I2S RX clock configure register\n\nYou can [`read`](crate::Reg::read) this register and get [`rx_clkm_conf::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`rx_clkm_conf::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@rx_clkm_conf`] module"]
189pub type RX_CLKM_CONF = crate::Reg<rx_clkm_conf::RX_CLKM_CONF_SPEC>;
190#[doc = "I2S RX clock configure register"]
191pub mod rx_clkm_conf;
192#[doc = "TX_CLKM_CONF (rw) register accessor: I2S TX clock configure register\n\nYou can [`read`](crate::Reg::read) this register and get [`tx_clkm_conf::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tx_clkm_conf::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tx_clkm_conf`] module"]
193pub type TX_CLKM_CONF = crate::Reg<tx_clkm_conf::TX_CLKM_CONF_SPEC>;
194#[doc = "I2S TX clock configure register"]
195pub mod tx_clkm_conf;
196#[doc = "RX_CLKM_DIV_CONF (rw) register accessor: I2S RX module clock divider configure register\n\nYou can [`read`](crate::Reg::read) this register and get [`rx_clkm_div_conf::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`rx_clkm_div_conf::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@rx_clkm_div_conf`] module"]
197pub type RX_CLKM_DIV_CONF = crate::Reg<rx_clkm_div_conf::RX_CLKM_DIV_CONF_SPEC>;
198#[doc = "I2S RX module clock divider configure register"]
199pub mod rx_clkm_div_conf;
200#[doc = "TX_CLKM_DIV_CONF (rw) register accessor: I2S TX module clock divider configure register\n\nYou can [`read`](crate::Reg::read) this register and get [`tx_clkm_div_conf::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tx_clkm_div_conf::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tx_clkm_div_conf`] module"]
201pub type TX_CLKM_DIV_CONF = crate::Reg<tx_clkm_div_conf::TX_CLKM_DIV_CONF_SPEC>;
202#[doc = "I2S TX module clock divider configure register"]
203pub mod tx_clkm_div_conf;
204#[doc = "TX_PCM2PDM_CONF (rw) register accessor: I2S TX PCM2PDM configuration register\n\nYou can [`read`](crate::Reg::read) this register and get [`tx_pcm2pdm_conf::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tx_pcm2pdm_conf::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tx_pcm2pdm_conf`] module"]
205pub type TX_PCM2PDM_CONF = crate::Reg<tx_pcm2pdm_conf::TX_PCM2PDM_CONF_SPEC>;
206#[doc = "I2S TX PCM2PDM configuration register"]
207pub mod tx_pcm2pdm_conf;
208#[doc = "TX_PCM2PDM_CONF1 (rw) register accessor: I2S TX PCM2PDM configuration register\n\nYou can [`read`](crate::Reg::read) this register and get [`tx_pcm2pdm_conf1::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tx_pcm2pdm_conf1::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tx_pcm2pdm_conf1`] module"]
209pub type TX_PCM2PDM_CONF1 = crate::Reg<tx_pcm2pdm_conf1::TX_PCM2PDM_CONF1_SPEC>;
210#[doc = "I2S TX PCM2PDM configuration register"]
211pub mod tx_pcm2pdm_conf1;
212#[doc = "RX_TDM_CTRL (rw) register accessor: I2S TX TDM mode control register\n\nYou can [`read`](crate::Reg::read) this register and get [`rx_tdm_ctrl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`rx_tdm_ctrl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@rx_tdm_ctrl`] module"]
213pub type RX_TDM_CTRL = crate::Reg<rx_tdm_ctrl::RX_TDM_CTRL_SPEC>;
214#[doc = "I2S TX TDM mode control register"]
215pub mod rx_tdm_ctrl;
216#[doc = "TX_TDM_CTRL (rw) register accessor: I2S TX TDM mode control register\n\nYou can [`read`](crate::Reg::read) this register and get [`tx_tdm_ctrl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tx_tdm_ctrl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tx_tdm_ctrl`] module"]
217pub type TX_TDM_CTRL = crate::Reg<tx_tdm_ctrl::TX_TDM_CTRL_SPEC>;
218#[doc = "I2S TX TDM mode control register"]
219pub mod tx_tdm_ctrl;
220#[doc = "RX_TIMING (rw) register accessor: I2S RX timing control register\n\nYou can [`read`](crate::Reg::read) this register and get [`rx_timing::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`rx_timing::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@rx_timing`] module"]
221pub type RX_TIMING = crate::Reg<rx_timing::RX_TIMING_SPEC>;
222#[doc = "I2S RX timing control register"]
223pub mod rx_timing;
224#[doc = "TX_TIMING (rw) register accessor: I2S TX timing control register\n\nYou can [`read`](crate::Reg::read) this register and get [`tx_timing::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tx_timing::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tx_timing`] module"]
225pub type TX_TIMING = crate::Reg<tx_timing::TX_TIMING_SPEC>;
226#[doc = "I2S TX timing control register"]
227pub mod tx_timing;
228#[doc = "LC_HUNG_CONF (rw) register accessor: I2S HUNG configure register.\n\nYou can [`read`](crate::Reg::read) this register and get [`lc_hung_conf::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`lc_hung_conf::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@lc_hung_conf`] module"]
229pub type LC_HUNG_CONF = crate::Reg<lc_hung_conf::LC_HUNG_CONF_SPEC>;
230#[doc = "I2S HUNG configure register."]
231pub mod lc_hung_conf;
232#[doc = "RXEOF_NUM (rw) register accessor: I2S RX data number control register.\n\nYou can [`read`](crate::Reg::read) this register and get [`rxeof_num::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`rxeof_num::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@rxeof_num`] module"]
233pub type RXEOF_NUM = crate::Reg<rxeof_num::RXEOF_NUM_SPEC>;
234#[doc = "I2S RX data number control register."]
235pub mod rxeof_num;
236#[doc = "CONF_SIGLE_DATA (rw) register accessor: I2S signal data register\n\nYou can [`read`](crate::Reg::read) this register and get [`conf_sigle_data::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`conf_sigle_data::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@conf_sigle_data`] module"]
237pub type CONF_SIGLE_DATA = crate::Reg<conf_sigle_data::CONF_SIGLE_DATA_SPEC>;
238#[doc = "I2S signal data register"]
239pub mod conf_sigle_data;
240#[doc = "STATE (r) register accessor: I2S TX status register\n\nYou can [`read`](crate::Reg::read) this register and get [`state::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@state`] module"]
241pub type STATE = crate::Reg<state::STATE_SPEC>;
242#[doc = "I2S TX status register"]
243pub mod state;
244#[doc = "ETM_CONF (rw) register accessor: I2S ETM configure register\n\nYou can [`read`](crate::Reg::read) this register and get [`etm_conf::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`etm_conf::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@etm_conf`] module"]
245pub type ETM_CONF = crate::Reg<etm_conf::ETM_CONF_SPEC>;
246#[doc = "I2S ETM configure register"]
247pub mod etm_conf;
248#[doc = "DATE (rw) register accessor: Version control register\n\nYou can [`read`](crate::Reg::read) this register and get [`date::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`date::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@date`] module"]
249pub type DATE = crate::Reg<date::DATE_SPEC>;
250#[doc = "Version control register"]
251pub mod date;