1#![allow(clippy::identity_op)]
21#![allow(clippy::module_inception)]
22#![allow(clippy::derivable_impls)]
23#[allow(unused_imports)]
24use crate::common::sealed;
25#[allow(unused_imports)]
26use crate::common::*;
27#[doc = r"TRNG registers"]
28unsafe impl ::core::marker::Send for super::Trng {}
29unsafe impl ::core::marker::Sync for super::Trng {}
30impl super::Trng {
31 #[allow(unused)]
32 #[inline(always)]
33 pub(crate) const fn _svd2pac_as_ptr(&self) -> *mut u8 {
34 self.ptr
35 }
36
37 #[doc = "TRNG control register"]
38 #[inline(always)]
39 pub const fn trng_ctrl_reg(
40 &self,
41 ) -> &'static crate::common::Reg<self::TrngCtrlReg_SPEC, crate::common::RW> {
42 unsafe {
43 crate::common::Reg::<self::TrngCtrlReg_SPEC, crate::common::RW>::from_ptr(
44 self._svd2pac_as_ptr().add(0usize),
45 )
46 }
47 }
48
49 #[doc = "TRNG FIFO level register"]
50 #[inline(always)]
51 pub const fn trng_fifolvl_reg(
52 &self,
53 ) -> &'static crate::common::Reg<self::TrngFifolvlReg_SPEC, crate::common::RW> {
54 unsafe {
55 crate::common::Reg::<self::TrngFifolvlReg_SPEC, crate::common::RW>::from_ptr(
56 self._svd2pac_as_ptr().add(4usize),
57 )
58 }
59 }
60
61 #[doc = "TRNG Version register"]
62 #[inline(always)]
63 pub const fn trng_ver_reg(
64 &self,
65 ) -> &'static crate::common::Reg<self::TrngVerReg_SPEC, crate::common::RW> {
66 unsafe {
67 crate::common::Reg::<self::TrngVerReg_SPEC, crate::common::RW>::from_ptr(
68 self._svd2pac_as_ptr().add(8usize),
69 )
70 }
71 }
72}
73#[doc(hidden)]
74#[derive(Copy, Clone, Eq, PartialEq)]
75pub struct TrngCtrlReg_SPEC;
76impl crate::sealed::RegSpec for TrngCtrlReg_SPEC {
77 type DataType = u32;
78}
79
80#[doc = "TRNG control register"]
81pub type TrngCtrlReg = crate::RegValueT<TrngCtrlReg_SPEC>;
82
83impl TrngCtrlReg {
84 #[doc = "0: select the TRNG with asynchronous free running oscillators (default)\n1: select the pseudo-random generator with synchronous oscillators (for simulation purpose only)"]
85 #[inline(always)]
86 pub fn trng_mode(
87 self,
88 ) -> crate::common::RegisterFieldBool<1, 1, 0, TrngCtrlReg_SPEC, crate::common::RW> {
89 crate::common::RegisterFieldBool::<1,1,0,TrngCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
90 }
91
92 #[doc = "0: Disable the TRNG\n1: Enable the TRNG this signal is ignored when the FIFO is full"]
93 #[inline(always)]
94 pub fn trng_enable(
95 self,
96 ) -> crate::common::RegisterFieldBool<0, 1, 0, TrngCtrlReg_SPEC, crate::common::RW> {
97 crate::common::RegisterFieldBool::<0,1,0,TrngCtrlReg_SPEC,crate::common::RW>::from_register(self,0)
98 }
99}
100impl ::core::default::Default for TrngCtrlReg {
101 #[inline(always)]
102 fn default() -> TrngCtrlReg {
103 <crate::RegValueT<TrngCtrlReg_SPEC> as RegisterValue<_>>::new(0)
104 }
105}
106
107#[doc(hidden)]
108#[derive(Copy, Clone, Eq, PartialEq)]
109pub struct TrngFifolvlReg_SPEC;
110impl crate::sealed::RegSpec for TrngFifolvlReg_SPEC {
111 type DataType = u32;
112}
113
114#[doc = "TRNG FIFO level register"]
115pub type TrngFifolvlReg = crate::RegValueT<TrngFifolvlReg_SPEC>;
116
117impl TrngFifolvlReg {
118 #[doc = "1:FIFO full indication. This bit is cleared if the FIFO is read."]
119 #[inline(always)]
120 pub fn trng_fifofull(
121 self,
122 ) -> crate::common::RegisterFieldBool<5, 1, 0, TrngFifolvlReg_SPEC, crate::common::R> {
123 crate::common::RegisterFieldBool::<5,1,0,TrngFifolvlReg_SPEC,crate::common::R>::from_register(self,0)
124 }
125
126 #[doc = "Number of 32 bit words of random data in the FIFO (max 31) until the FIFO is full. When it is 0 and TRNG_FIFOFULL is 1, it means the FIFO is full."]
127 #[inline(always)]
128 pub fn trng_fifolvl(
129 self,
130 ) -> crate::common::RegisterField<0, 0x1f, 1, 0, u8, u8, TrngFifolvlReg_SPEC, crate::common::R>
131 {
132 crate::common::RegisterField::<0,0x1f,1,0,u8,u8,TrngFifolvlReg_SPEC,crate::common::R>::from_register(self,0)
133 }
134}
135impl ::core::default::Default for TrngFifolvlReg {
136 #[inline(always)]
137 fn default() -> TrngFifolvlReg {
138 <crate::RegValueT<TrngFifolvlReg_SPEC> as RegisterValue<_>>::new(0)
139 }
140}
141
142#[doc(hidden)]
143#[derive(Copy, Clone, Eq, PartialEq)]
144pub struct TrngVerReg_SPEC;
145impl crate::sealed::RegSpec for TrngVerReg_SPEC {
146 type DataType = u32;
147}
148
149#[doc = "TRNG Version register"]
150pub type TrngVerReg = crate::RegValueT<TrngVerReg_SPEC>;
151
152impl TrngVerReg {
153 #[doc = "Major version number"]
154 #[inline(always)]
155 pub fn trng_maj(
156 self,
157 ) -> crate::common::RegisterField<24, 0xff, 1, 0, u8, u8, TrngVerReg_SPEC, crate::common::R>
158 {
159 crate::common::RegisterField::<24,0xff,1,0,u8,u8,TrngVerReg_SPEC,crate::common::R>::from_register(self,0)
160 }
161
162 #[doc = "Minor version number"]
163 #[inline(always)]
164 pub fn trng_min(
165 self,
166 ) -> crate::common::RegisterField<16, 0xff, 1, 0, u8, u8, TrngVerReg_SPEC, crate::common::R>
167 {
168 crate::common::RegisterField::<16,0xff,1,0,u8,u8,TrngVerReg_SPEC,crate::common::R>::from_register(self,0)
169 }
170
171 #[doc = "SVN revision number"]
172 #[inline(always)]
173 pub fn trng_svn(
174 self,
175 ) -> crate::common::RegisterField<0, 0xffff, 1, 0, u16, u16, TrngVerReg_SPEC, crate::common::R>
176 {
177 crate::common::RegisterField::<0,0xffff,1,0,u16,u16,TrngVerReg_SPEC,crate::common::R>::from_register(self,0)
178 }
179}
180impl ::core::default::Default for TrngVerReg {
181 #[inline(always)]
182 fn default() -> TrngVerReg {
183 <crate::RegValueT<TrngVerReg_SPEC> as RegisterValue<_>>::new(259)
184 }
185}