1#[repr(C)]
2#[cfg_attr(feature = "impl-register-debug", derive(Debug))]
3#[doc = "Register block"]
4pub struct RegisterBlock {
5 m_mem: [M_MEM; 128],
6 z_mem: [Z_MEM; 128],
7 y_mem: [Y_MEM; 128],
8 x_mem: [X_MEM; 128],
9 m_prime: M_PRIME,
10 mode: MODE,
11 clean: CLEAN,
12 modexp_start: MODEXP_START,
13 modmult_start: MODMULT_START,
14 mult_start: MULT_START,
15 idle: IDLE,
16 int_clr: INT_CLR,
17 constant_time: CONSTANT_TIME,
18 search_enable: SEARCH_ENABLE,
19 search_pos: SEARCH_POS,
20 int_ena: INT_ENA,
21 date: DATE,
22}
23impl RegisterBlock {
24 #[doc = "0x00..0x200 - Memory M"]
25 #[inline(always)]
26 pub const fn m_mem(&self, n: usize) -> &M_MEM {
27 &self.m_mem[n]
28 }
29 #[doc = "Iterator for array of:"]
30 #[doc = "0x00..0x200 - Memory M"]
31 #[inline(always)]
32 pub fn m_mem_iter(&self) -> impl Iterator<Item = &M_MEM> {
33 self.m_mem.iter()
34 }
35 #[doc = "0x200..0x400 - Memory Z"]
36 #[inline(always)]
37 pub const fn z_mem(&self, n: usize) -> &Z_MEM {
38 &self.z_mem[n]
39 }
40 #[doc = "Iterator for array of:"]
41 #[doc = "0x200..0x400 - Memory Z"]
42 #[inline(always)]
43 pub fn z_mem_iter(&self) -> impl Iterator<Item = &Z_MEM> {
44 self.z_mem.iter()
45 }
46 #[doc = "0x400..0x600 - Memory Y"]
47 #[inline(always)]
48 pub const fn y_mem(&self, n: usize) -> &Y_MEM {
49 &self.y_mem[n]
50 }
51 #[doc = "Iterator for array of:"]
52 #[doc = "0x400..0x600 - Memory Y"]
53 #[inline(always)]
54 pub fn y_mem_iter(&self) -> impl Iterator<Item = &Y_MEM> {
55 self.y_mem.iter()
56 }
57 #[doc = "0x600..0x800 - Memory X"]
58 #[inline(always)]
59 pub const fn x_mem(&self, n: usize) -> &X_MEM {
60 &self.x_mem[n]
61 }
62 #[doc = "Iterator for array of:"]
63 #[doc = "0x600..0x800 - Memory X"]
64 #[inline(always)]
65 pub fn x_mem_iter(&self) -> impl Iterator<Item = &X_MEM> {
66 self.x_mem.iter()
67 }
68 #[doc = "0x800 - RSA M' register"]
69 #[inline(always)]
70 pub const fn m_prime(&self) -> &M_PRIME {
71 &self.m_prime
72 }
73 #[doc = "0x804 - RSA length mode register"]
74 #[inline(always)]
75 pub const fn mode(&self) -> &MODE {
76 &self.mode
77 }
78 #[doc = "0x808 - RSA clean register"]
79 #[inline(always)]
80 pub const fn clean(&self) -> &CLEAN {
81 &self.clean
82 }
83 #[doc = "0x80c - Modular exponentiation trigger register."]
84 #[inline(always)]
85 pub const fn modexp_start(&self) -> &MODEXP_START {
86 &self.modexp_start
87 }
88 #[doc = "0x810 - Modular multiplication trigger register."]
89 #[inline(always)]
90 pub const fn modmult_start(&self) -> &MODMULT_START {
91 &self.modmult_start
92 }
93 #[doc = "0x814 - Normal multiplication trigger register."]
94 #[inline(always)]
95 pub const fn mult_start(&self) -> &MULT_START {
96 &self.mult_start
97 }
98 #[doc = "0x818 - RSA idle register"]
99 #[inline(always)]
100 pub const fn idle(&self) -> &IDLE {
101 &self.idle
102 }
103 #[doc = "0x81c - RSA interrupt clear register"]
104 #[inline(always)]
105 pub const fn int_clr(&self) -> &INT_CLR {
106 &self.int_clr
107 }
108 #[doc = "0x820 - CONSTANT_TIME option control register"]
109 #[inline(always)]
110 pub const fn constant_time(&self) -> &CONSTANT_TIME {
111 &self.constant_time
112 }
113 #[doc = "0x824 - SEARCH option enable register"]
114 #[inline(always)]
115 pub const fn search_enable(&self) -> &SEARCH_ENABLE {
116 &self.search_enable
117 }
118 #[doc = "0x828 - RSA search position configure register"]
119 #[inline(always)]
120 pub const fn search_pos(&self) -> &SEARCH_POS {
121 &self.search_pos
122 }
123 #[doc = "0x82c - RSA interrupt enable register"]
124 #[inline(always)]
125 pub const fn int_ena(&self) -> &INT_ENA {
126 &self.int_ena
127 }
128 #[doc = "0x830 - RSA version control register"]
129 #[inline(always)]
130 pub const fn date(&self) -> &DATE {
131 &self.date
132 }
133}
134#[doc = "M_MEM (w) register accessor: Memory M\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`m_mem::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@m_mem`] module"]
135pub type M_MEM = crate::Reg<m_mem::M_MEM_SPEC>;
136#[doc = "Memory M"]
137pub mod m_mem;
138#[doc = "Z_MEM (rw) register accessor: Memory Z\n\nYou can [`read`](crate::Reg::read) this register and get [`z_mem::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`z_mem::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@z_mem`] module"]
139pub type Z_MEM = crate::Reg<z_mem::Z_MEM_SPEC>;
140#[doc = "Memory Z"]
141pub mod z_mem;
142#[doc = "Y_MEM (w) register accessor: Memory Y\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`y_mem::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@y_mem`] module"]
143pub type Y_MEM = crate::Reg<y_mem::Y_MEM_SPEC>;
144#[doc = "Memory Y"]
145pub mod y_mem;
146#[doc = "X_MEM (w) register accessor: Memory X\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`x_mem::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@x_mem`] module"]
147pub type X_MEM = crate::Reg<x_mem::X_MEM_SPEC>;
148#[doc = "Memory X"]
149pub mod x_mem;
150#[doc = "M_PRIME (rw) register accessor: RSA M' register\n\nYou can [`read`](crate::Reg::read) this register and get [`m_prime::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`m_prime::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@m_prime`] module"]
151pub type M_PRIME = crate::Reg<m_prime::M_PRIME_SPEC>;
152#[doc = "RSA M' register"]
153pub mod m_prime;
154#[doc = "MODE (rw) register accessor: RSA length mode register\n\nYou can [`read`](crate::Reg::read) this register and get [`mode::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`mode::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@mode`] module"]
155pub type MODE = crate::Reg<mode::MODE_SPEC>;
156#[doc = "RSA length mode register"]
157pub mod mode;
158#[doc = "CLEAN (r) register accessor: RSA clean register\n\nYou can [`read`](crate::Reg::read) this register and get [`clean::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@clean`] module"]
159pub type CLEAN = crate::Reg<clean::CLEAN_SPEC>;
160#[doc = "RSA clean register"]
161pub mod clean;
162#[doc = "MODEXP_START (w) register accessor: Modular exponentiation trigger register.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`modexp_start::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@modexp_start`] module"]
163pub type MODEXP_START = crate::Reg<modexp_start::MODEXP_START_SPEC>;
164#[doc = "Modular exponentiation trigger register."]
165pub mod modexp_start;
166#[doc = "MODMULT_START (w) register accessor: Modular multiplication trigger register.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`modmult_start::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@modmult_start`] module"]
167pub type MODMULT_START = crate::Reg<modmult_start::MODMULT_START_SPEC>;
168#[doc = "Modular multiplication trigger register."]
169pub mod modmult_start;
170#[doc = "MULT_START (w) register accessor: Normal multiplication trigger register.\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`mult_start::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@mult_start`] module"]
171pub type MULT_START = crate::Reg<mult_start::MULT_START_SPEC>;
172#[doc = "Normal multiplication trigger register."]
173pub mod mult_start;
174#[doc = "IDLE (r) register accessor: RSA idle register\n\nYou can [`read`](crate::Reg::read) this register and get [`idle::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@idle`] module"]
175pub type IDLE = crate::Reg<idle::IDLE_SPEC>;
176#[doc = "RSA idle register"]
177pub mod idle;
178#[doc = "INT_CLR (rw) register accessor: RSA interrupt clear register\n\nYou can [`read`](crate::Reg::read) this register and get [`int_clr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`int_clr::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_clr`] module"]
179pub type INT_CLR = crate::Reg<int_clr::INT_CLR_SPEC>;
180#[doc = "RSA interrupt clear register"]
181pub mod int_clr;
182#[doc = "CONSTANT_TIME (rw) register accessor: CONSTANT_TIME option control register\n\nYou can [`read`](crate::Reg::read) this register and get [`constant_time::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`constant_time::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@constant_time`] module"]
183pub type CONSTANT_TIME = crate::Reg<constant_time::CONSTANT_TIME_SPEC>;
184#[doc = "CONSTANT_TIME option control register"]
185pub mod constant_time;
186#[doc = "SEARCH_ENABLE (rw) register accessor: SEARCH option enable register\n\nYou can [`read`](crate::Reg::read) this register and get [`search_enable::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`search_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@search_enable`] module"]
187pub type SEARCH_ENABLE = crate::Reg<search_enable::SEARCH_ENABLE_SPEC>;
188#[doc = "SEARCH option enable register"]
189pub mod search_enable;
190#[doc = "SEARCH_POS (rw) register accessor: RSA search position configure register\n\nYou can [`read`](crate::Reg::read) this register and get [`search_pos::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`search_pos::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@search_pos`] module"]
191pub type SEARCH_POS = crate::Reg<search_pos::SEARCH_POS_SPEC>;
192#[doc = "RSA search position configure register"]
193pub mod search_pos;
194#[doc = "INT_ENA (rw) register accessor: RSA 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"]
195pub type INT_ENA = crate::Reg<int_ena::INT_ENA_SPEC>;
196#[doc = "RSA interrupt enable register"]
197pub mod int_ena;
198#[doc = "DATE (rw) register accessor: RSA 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"]
199pub type DATE = crate::Reg<date::DATE_SPEC>;
200#[doc = "RSA version control register"]
201pub mod date;