1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
#[doc = r" Register block"]
#[repr(C)]
pub struct RegisterBlock {
    #[doc = "0x00 - Random Number Lower Word Readout Value"]
    pub out0: OUT0,
    #[doc = "0x04 - Random Number Upper Word Readout Value"]
    pub out1: OUT1,
    #[doc = "0x08 - Interrupt Status"]
    pub irqflagstat: IRQFLAGSTAT,
    #[doc = "0x0c - Interrupt Mask"]
    pub irqflagmask: IRQFLAGMASK,
    #[doc = "0x10 - Interrupt Flag Clear"]
    pub irqflagclr: IRQFLAGCLR,
    #[doc = "0x14 - Control"]
    pub ctl: CTL,
    #[doc = "0x18 - Configuration 0"]
    pub cfg0: CFG0,
    #[doc = "0x1c - Alarm Control"]
    pub alarmcnt: ALARMCNT,
    #[doc = "0x20 - FRO Enable"]
    pub froen: FROEN,
    #[doc = "0x24 - FRO De-tune Bit"]
    pub frodetune: FRODETUNE,
    #[doc = "0x28 - Alarm Event"]
    pub alarmmask: ALARMMASK,
    #[doc = "0x2c - Alarm Shutdown"]
    pub alarmstop: ALARMSTOP,
    #[doc = "0x30 - LFSR Readout Value"]
    pub lfsr0: LFSR0,
    #[doc = "0x34 - LFSR Readout Value"]
    pub lfsr1: LFSR1,
    #[doc = "0x38 - LFSR Readout Value"]
    pub lfsr2: LFSR2,
    _reserved0: [u8; 60usize],
    #[doc = "0x78 - TRNG Engine Options Information"]
    pub hwopt: HWOPT,
    #[doc = "0x7c - HW Version 0 EIP Number And Core Revision"]
    pub hwver0: HWVER0,
    _reserved1: [u8; 8024usize],
    #[doc = "0x1fd8 - Interrupt Status After Masking"]
    pub irqstatmask: IRQSTATMASK,
    _reserved2: [u8; 4usize],
    #[doc = "0x1fe0 - HW Version 1 TRNG Revision Number"]
    pub hwver1: HWVER1,
    _reserved3: [u8; 8usize],
    #[doc = "0x1fec - Interrupt Set"]
    pub irqset: IRQSET,
    #[doc = "0x1ff0 - SW Reset Control"]
    pub swreset: SWRESET,
    _reserved4: [u8; 4usize],
    #[doc = "0x1ff8 - Interrupt Status"]
    pub irqstat: IRQSTAT,
}
#[doc = "Random Number Lower Word Readout Value"]
pub struct OUT0 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Random Number Lower Word Readout Value"]
pub mod out0;
#[doc = "Random Number Upper Word Readout Value"]
pub struct OUT1 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Random Number Upper Word Readout Value"]
pub mod out1;
#[doc = "Interrupt Status"]
pub struct IRQFLAGSTAT {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Interrupt Status"]
pub mod irqflagstat;
#[doc = "Interrupt Mask"]
pub struct IRQFLAGMASK {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Interrupt Mask"]
pub mod irqflagmask;
#[doc = "Interrupt Flag Clear"]
pub struct IRQFLAGCLR {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Interrupt Flag Clear"]
pub mod irqflagclr;
#[doc = "Control"]
pub struct CTL {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Control"]
pub mod ctl;
#[doc = "Configuration 0"]
pub struct CFG0 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Configuration 0"]
pub mod cfg0;
#[doc = "Alarm Control"]
pub struct ALARMCNT {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Alarm Control"]
pub mod alarmcnt;
#[doc = "FRO Enable"]
pub struct FROEN {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "FRO Enable"]
pub mod froen;
#[doc = "FRO De-tune Bit"]
pub struct FRODETUNE {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "FRO De-tune Bit"]
pub mod frodetune;
#[doc = "Alarm Event"]
pub struct ALARMMASK {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Alarm Event"]
pub mod alarmmask;
#[doc = "Alarm Shutdown"]
pub struct ALARMSTOP {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Alarm Shutdown"]
pub mod alarmstop;
#[doc = "LFSR Readout Value"]
pub struct LFSR0 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "LFSR Readout Value"]
pub mod lfsr0;
#[doc = "LFSR Readout Value"]
pub struct LFSR1 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "LFSR Readout Value"]
pub mod lfsr1;
#[doc = "LFSR Readout Value"]
pub struct LFSR2 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "LFSR Readout Value"]
pub mod lfsr2;
#[doc = "TRNG Engine Options Information"]
pub struct HWOPT {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "TRNG Engine Options Information"]
pub mod hwopt;
#[doc = "HW Version 0 EIP Number And Core Revision"]
pub struct HWVER0 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "HW Version 0 EIP Number And Core Revision"]
pub mod hwver0;
#[doc = "Interrupt Status After Masking"]
pub struct IRQSTATMASK {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Interrupt Status After Masking"]
pub mod irqstatmask;
#[doc = "HW Version 1 TRNG Revision Number"]
pub struct HWVER1 {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "HW Version 1 TRNG Revision Number"]
pub mod hwver1;
#[doc = "Interrupt Set"]
pub struct IRQSET {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Interrupt Set"]
pub mod irqset;
#[doc = "SW Reset Control"]
pub struct SWRESET {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "SW Reset Control"]
pub mod swreset;
#[doc = "Interrupt Status"]
pub struct IRQSTAT {
    register: ::vcell::VolatileCell<u32>,
}
#[doc = "Interrupt Status"]
pub mod irqstat;