esp32s2_ulp/
rtc_io.rs

1#[repr(C)]
2#[cfg_attr(feature = "impl-register-debug", derive(Debug))]
3#[doc = "Register block"]
4pub struct RegisterBlock {
5    out: OUT,
6    out_w1ts: OUT_W1TS,
7    out_w1tc: OUT_W1TC,
8    enable: ENABLE,
9    enable_w1ts: ENABLE_W1TS,
10    enable_w1tc: ENABLE_W1TC,
11    status: STATUS,
12    status_w1ts: STATUS_W1TS,
13    status_w1tc: STATUS_W1TC,
14    in_: IN,
15    pin: [PIN; 22],
16    rtc_debug_sel: RTC_DEBUG_SEL,
17    touch_pad: [TOUCH_PAD; 15],
18    xtal_32p_pad: XTAL_32P_PAD,
19    xtal_32n_pad: XTAL_32N_PAD,
20    pad_dac1: PAD_DAC1,
21    pad_dac2: PAD_DAC2,
22    rtc_pad19: RTC_PAD19,
23    rtc_pad20: RTC_PAD20,
24    rtc_pad21: RTC_PAD21,
25    ext_wakeup0: EXT_WAKEUP0,
26    xtl_ext_ctr: XTL_EXT_CTR,
27    sar_i2c_io: SAR_I2C_IO,
28    rtc_io_touch_ctrl: RTC_IO_TOUCH_CTRL,
29    _reserved24: [u8; 0x0110],
30    rtc_io_date: RTC_IO_DATE,
31}
32impl RegisterBlock {
33    #[doc = "0x00 - RTC GPIO output register"]
34    #[inline(always)]
35    pub const fn out(&self) -> &OUT {
36        &self.out
37    }
38    #[doc = "0x04 - RTC GPIO output bit set register"]
39    #[inline(always)]
40    pub const fn out_w1ts(&self) -> &OUT_W1TS {
41        &self.out_w1ts
42    }
43    #[doc = "0x08 - RTC GPIO output bit clear register"]
44    #[inline(always)]
45    pub const fn out_w1tc(&self) -> &OUT_W1TC {
46        &self.out_w1tc
47    }
48    #[doc = "0x0c - RTC GPIO output enable register"]
49    #[inline(always)]
50    pub const fn enable(&self) -> &ENABLE {
51        &self.enable
52    }
53    #[doc = "0x10 - RTC GPIO output enable bit set register"]
54    #[inline(always)]
55    pub const fn enable_w1ts(&self) -> &ENABLE_W1TS {
56        &self.enable_w1ts
57    }
58    #[doc = "0x14 - RTC GPIO output enable bit clear register"]
59    #[inline(always)]
60    pub const fn enable_w1tc(&self) -> &ENABLE_W1TC {
61        &self.enable_w1tc
62    }
63    #[doc = "0x18 - RTC GPIO interrupt status register"]
64    #[inline(always)]
65    pub const fn status(&self) -> &STATUS {
66        &self.status
67    }
68    #[doc = "0x1c - RTC GPIO interrupt status bit set register"]
69    #[inline(always)]
70    pub const fn status_w1ts(&self) -> &STATUS_W1TS {
71        &self.status_w1ts
72    }
73    #[doc = "0x20 - RTC GPIO interrupt status bit clear register"]
74    #[inline(always)]
75    pub const fn status_w1tc(&self) -> &STATUS_W1TC {
76        &self.status_w1tc
77    }
78    #[doc = "0x24 - RTC GPIO input register"]
79    #[inline(always)]
80    pub const fn in_(&self) -> &IN {
81        &self.in_
82    }
83    #[doc = "0x28..0x80 - RTC configuration for pin %s"]
84    #[inline(always)]
85    pub const fn pin(&self, n: usize) -> &PIN {
86        &self.pin[n]
87    }
88    #[doc = "Iterator for array of:"]
89    #[doc = "0x28..0x80 - RTC configuration for pin %s"]
90    #[inline(always)]
91    pub fn pin_iter(&self) -> impl Iterator<Item = &PIN> {
92        self.pin.iter()
93    }
94    #[doc = "0x80 - RTC debug select register"]
95    #[inline(always)]
96    pub const fn rtc_debug_sel(&self) -> &RTC_DEBUG_SEL {
97        &self.rtc_debug_sel
98    }
99    #[doc = "0x84..0xc0 - Touch pad %s configuration register"]
100    #[inline(always)]
101    pub const fn touch_pad(&self, n: usize) -> &TOUCH_PAD {
102        &self.touch_pad[n]
103    }
104    #[doc = "Iterator for array of:"]
105    #[doc = "0x84..0xc0 - Touch pad %s configuration register"]
106    #[inline(always)]
107    pub fn touch_pad_iter(&self) -> impl Iterator<Item = &TOUCH_PAD> {
108        self.touch_pad.iter()
109    }
110    #[doc = "0xc0 - 32KHz crystal P-pad configuration register"]
111    #[inline(always)]
112    pub const fn xtal_32p_pad(&self) -> &XTAL_32P_PAD {
113        &self.xtal_32p_pad
114    }
115    #[doc = "0xc4 - 32KHz crystal N-pad configuration register"]
116    #[inline(always)]
117    pub const fn xtal_32n_pad(&self) -> &XTAL_32N_PAD {
118        &self.xtal_32n_pad
119    }
120    #[doc = "0xc8 - DAC1 configuration register"]
121    #[inline(always)]
122    pub const fn pad_dac1(&self) -> &PAD_DAC1 {
123        &self.pad_dac1
124    }
125    #[doc = "0xcc - DAC2 configuration register"]
126    #[inline(always)]
127    pub const fn pad_dac2(&self) -> &PAD_DAC2 {
128        &self.pad_dac2
129    }
130    #[doc = "0xd0 - Touch pad 19 configuration register"]
131    #[inline(always)]
132    pub const fn rtc_pad19(&self) -> &RTC_PAD19 {
133        &self.rtc_pad19
134    }
135    #[doc = "0xd4 - Touch pad 20 configuration register"]
136    #[inline(always)]
137    pub const fn rtc_pad20(&self) -> &RTC_PAD20 {
138        &self.rtc_pad20
139    }
140    #[doc = "0xd8 - Touch pad 21 configuration register"]
141    #[inline(always)]
142    pub const fn rtc_pad21(&self) -> &RTC_PAD21 {
143        &self.rtc_pad21
144    }
145    #[doc = "0xdc - External wake up configuration register"]
146    #[inline(always)]
147    pub const fn ext_wakeup0(&self) -> &EXT_WAKEUP0 {
148        &self.ext_wakeup0
149    }
150    #[doc = "0xe0 - Crystal power down enable GPIO source"]
151    #[inline(always)]
152    pub const fn xtl_ext_ctr(&self) -> &XTL_EXT_CTR {
153        &self.xtl_ext_ctr
154    }
155    #[doc = "0xe4 - RTC I2C pad selection"]
156    #[inline(always)]
157    pub const fn sar_i2c_io(&self) -> &SAR_I2C_IO {
158        &self.sar_i2c_io
159    }
160    #[doc = "0xe8 - Touch control register"]
161    #[inline(always)]
162    pub const fn rtc_io_touch_ctrl(&self) -> &RTC_IO_TOUCH_CTRL {
163        &self.rtc_io_touch_ctrl
164    }
165    #[doc = "0x1fc - Version control register"]
166    #[inline(always)]
167    pub const fn rtc_io_date(&self) -> &RTC_IO_DATE {
168        &self.rtc_io_date
169    }
170}
171#[doc = "OUT (rw) register accessor: RTC GPIO output register\n\nYou can [`read`](crate::Reg::read) this register and get [`out::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`out::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@out`] module"]
172pub type OUT = crate::Reg<out::OUT_SPEC>;
173#[doc = "RTC GPIO output register"]
174pub mod out;
175#[doc = "OUT_W1TS (w) register accessor: RTC GPIO output bit set register\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`out_w1ts::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@out_w1ts`] module"]
176pub type OUT_W1TS = crate::Reg<out_w1ts::OUT_W1TS_SPEC>;
177#[doc = "RTC GPIO output bit set register"]
178pub mod out_w1ts;
179#[doc = "OUT_W1TC (w) register accessor: RTC GPIO output bit clear register\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`out_w1tc::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@out_w1tc`] module"]
180pub type OUT_W1TC = crate::Reg<out_w1tc::OUT_W1TC_SPEC>;
181#[doc = "RTC GPIO output bit clear register"]
182pub mod out_w1tc;
183#[doc = "ENABLE (rw) register accessor: RTC GPIO output enable register\n\nYou can [`read`](crate::Reg::read) this register and get [`enable::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`enable::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@enable`] module"]
184pub type ENABLE = crate::Reg<enable::ENABLE_SPEC>;
185#[doc = "RTC GPIO output enable register"]
186pub mod enable;
187#[doc = "ENABLE_W1TS (w) register accessor: RTC GPIO output enable bit set register\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`enable_w1ts::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@enable_w1ts`] module"]
188pub type ENABLE_W1TS = crate::Reg<enable_w1ts::ENABLE_W1TS_SPEC>;
189#[doc = "RTC GPIO output enable bit set register"]
190pub mod enable_w1ts;
191#[doc = "ENABLE_W1TC (w) register accessor: RTC GPIO output enable bit clear register\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`enable_w1tc::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@enable_w1tc`] module"]
192pub type ENABLE_W1TC = crate::Reg<enable_w1tc::ENABLE_W1TC_SPEC>;
193#[doc = "RTC GPIO output enable bit clear register"]
194pub mod enable_w1tc;
195#[doc = "STATUS (rw) register accessor: RTC GPIO interrupt status register\n\nYou can [`read`](crate::Reg::read) this register and get [`status::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`status::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@status`] module"]
196pub type STATUS = crate::Reg<status::STATUS_SPEC>;
197#[doc = "RTC GPIO interrupt status register"]
198pub mod status;
199#[doc = "STATUS_W1TS (w) register accessor: RTC GPIO interrupt status bit set register\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`status_w1ts::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@status_w1ts`] module"]
200pub type STATUS_W1TS = crate::Reg<status_w1ts::STATUS_W1TS_SPEC>;
201#[doc = "RTC GPIO interrupt status bit set register"]
202pub mod status_w1ts;
203#[doc = "STATUS_W1TC (w) register accessor: RTC GPIO interrupt status bit clear register\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`status_w1tc::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@status_w1tc`] module"]
204pub type STATUS_W1TC = crate::Reg<status_w1tc::STATUS_W1TC_SPEC>;
205#[doc = "RTC GPIO interrupt status bit clear register"]
206pub mod status_w1tc;
207#[doc = "IN (r) register accessor: RTC GPIO input register\n\nYou can [`read`](crate::Reg::read) this register and get [`in_::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@in_`] module"]
208pub type IN = crate::Reg<in_::IN_SPEC>;
209#[doc = "RTC GPIO input register"]
210pub mod in_;
211#[doc = "PIN (rw) register accessor: RTC configuration for pin %s\n\nYou can [`read`](crate::Reg::read) this register and get [`pin::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`pin::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@pin`] module"]
212pub type PIN = crate::Reg<pin::PIN_SPEC>;
213#[doc = "RTC configuration for pin %s"]
214pub mod pin;
215#[doc = "RTC_DEBUG_SEL (rw) register accessor: RTC debug select register\n\nYou can [`read`](crate::Reg::read) this register and get [`rtc_debug_sel::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`rtc_debug_sel::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@rtc_debug_sel`] module"]
216pub type RTC_DEBUG_SEL = crate::Reg<rtc_debug_sel::RTC_DEBUG_SEL_SPEC>;
217#[doc = "RTC debug select register"]
218pub mod rtc_debug_sel;
219#[doc = "TOUCH_PAD (rw) register accessor: Touch pad %s configuration register\n\nYou can [`read`](crate::Reg::read) this register and get [`touch_pad::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`touch_pad::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@touch_pad`] module"]
220pub type TOUCH_PAD = crate::Reg<touch_pad::TOUCH_PAD_SPEC>;
221#[doc = "Touch pad %s configuration register"]
222pub mod touch_pad;
223#[doc = "XTAL_32P_PAD (rw) register accessor: 32KHz crystal P-pad configuration register\n\nYou can [`read`](crate::Reg::read) this register and get [`xtal_32p_pad::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`xtal_32p_pad::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@xtal_32p_pad`] module"]
224pub type XTAL_32P_PAD = crate::Reg<xtal_32p_pad::XTAL_32P_PAD_SPEC>;
225#[doc = "32KHz crystal P-pad configuration register"]
226pub mod xtal_32p_pad;
227#[doc = "XTAL_32N_PAD (rw) register accessor: 32KHz crystal N-pad configuration register\n\nYou can [`read`](crate::Reg::read) this register and get [`xtal_32n_pad::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`xtal_32n_pad::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@xtal_32n_pad`] module"]
228pub type XTAL_32N_PAD = crate::Reg<xtal_32n_pad::XTAL_32N_PAD_SPEC>;
229#[doc = "32KHz crystal N-pad configuration register"]
230pub mod xtal_32n_pad;
231#[doc = "PAD_DAC1 (rw) register accessor: DAC1 configuration register\n\nYou can [`read`](crate::Reg::read) this register and get [`pad_dac1::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`pad_dac1::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@pad_dac1`] module"]
232pub type PAD_DAC1 = crate::Reg<pad_dac1::PAD_DAC1_SPEC>;
233#[doc = "DAC1 configuration register"]
234pub mod pad_dac1;
235#[doc = "PAD_DAC2 (rw) register accessor: DAC2 configuration register\n\nYou can [`read`](crate::Reg::read) this register and get [`pad_dac2::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`pad_dac2::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@pad_dac2`] module"]
236pub type PAD_DAC2 = crate::Reg<pad_dac2::PAD_DAC2_SPEC>;
237#[doc = "DAC2 configuration register"]
238pub mod pad_dac2;
239#[doc = "RTC_PAD19 (rw) register accessor: Touch pad 19 configuration register\n\nYou can [`read`](crate::Reg::read) this register and get [`rtc_pad19::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`rtc_pad19::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@rtc_pad19`] module"]
240pub type RTC_PAD19 = crate::Reg<rtc_pad19::RTC_PAD19_SPEC>;
241#[doc = "Touch pad 19 configuration register"]
242pub mod rtc_pad19;
243#[doc = "RTC_PAD20 (rw) register accessor: Touch pad 20 configuration register\n\nYou can [`read`](crate::Reg::read) this register and get [`rtc_pad20::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`rtc_pad20::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@rtc_pad20`] module"]
244pub type RTC_PAD20 = crate::Reg<rtc_pad20::RTC_PAD20_SPEC>;
245#[doc = "Touch pad 20 configuration register"]
246pub mod rtc_pad20;
247#[doc = "RTC_PAD21 (rw) register accessor: Touch pad 21 configuration register\n\nYou can [`read`](crate::Reg::read) this register and get [`rtc_pad21::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`rtc_pad21::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@rtc_pad21`] module"]
248pub type RTC_PAD21 = crate::Reg<rtc_pad21::RTC_PAD21_SPEC>;
249#[doc = "Touch pad 21 configuration register"]
250pub mod rtc_pad21;
251#[doc = "EXT_WAKEUP0 (rw) register accessor: External wake up configuration register\n\nYou can [`read`](crate::Reg::read) this register and get [`ext_wakeup0::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ext_wakeup0::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@ext_wakeup0`] module"]
252pub type EXT_WAKEUP0 = crate::Reg<ext_wakeup0::EXT_WAKEUP0_SPEC>;
253#[doc = "External wake up configuration register"]
254pub mod ext_wakeup0;
255#[doc = "XTL_EXT_CTR (rw) register accessor: Crystal power down enable GPIO source\n\nYou can [`read`](crate::Reg::read) this register and get [`xtl_ext_ctr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`xtl_ext_ctr::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@xtl_ext_ctr`] module"]
256pub type XTL_EXT_CTR = crate::Reg<xtl_ext_ctr::XTL_EXT_CTR_SPEC>;
257#[doc = "Crystal power down enable GPIO source"]
258pub mod xtl_ext_ctr;
259#[doc = "SAR_I2C_IO (rw) register accessor: RTC I2C pad selection\n\nYou can [`read`](crate::Reg::read) this register and get [`sar_i2c_io::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`sar_i2c_io::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@sar_i2c_io`] module"]
260pub type SAR_I2C_IO = crate::Reg<sar_i2c_io::SAR_I2C_IO_SPEC>;
261#[doc = "RTC I2C pad selection"]
262pub mod sar_i2c_io;
263#[doc = "RTC_IO_TOUCH_CTRL (rw) register accessor: Touch control register\n\nYou can [`read`](crate::Reg::read) this register and get [`rtc_io_touch_ctrl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`rtc_io_touch_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@rtc_io_touch_ctrl`] module"]
264pub type RTC_IO_TOUCH_CTRL = crate::Reg<rtc_io_touch_ctrl::RTC_IO_TOUCH_CTRL_SPEC>;
265#[doc = "Touch control register"]
266pub mod rtc_io_touch_ctrl;
267#[doc = "RTC_IO_DATE (rw) register accessor: Version control register\n\nYou can [`read`](crate::Reg::read) this register and get [`rtc_io_date::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`rtc_io_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@rtc_io_date`] module"]
268pub type RTC_IO_DATE = crate::Reg<rtc_io_date::RTC_IO_DATE_SPEC>;
269#[doc = "Version control register"]
270pub mod rtc_io_date;