SAME54P20A Test Project
trng.h
Go to the documentation of this file.
1 
30 #ifndef _SAME54_TRNG_COMPONENT_
31 #define _SAME54_TRNG_COMPONENT_
32 
33 /* ========================================================================== */
35 /* ========================================================================== */
38 
39 #define TRNG_U2242
40 #define REV_TRNG 0x110
41 
42 /* -------- TRNG_CTRLA : (TRNG Offset: 0x00) (R/W 8) Control A -------- */
43 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
44 typedef union {
45  struct {
46  uint8_t :1;
47  uint8_t ENABLE:1;
48  uint8_t :4;
49  uint8_t RUNSTDBY:1;
50  uint8_t :1;
51  } bit;
52  uint8_t reg;
54 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
55 
56 #define TRNG_CTRLA_OFFSET 0x00
57 #define TRNG_CTRLA_RESETVALUE _U_(0x00)
59 #define TRNG_CTRLA_ENABLE_Pos 1
60 #define TRNG_CTRLA_ENABLE (_U_(0x1) << TRNG_CTRLA_ENABLE_Pos)
61 #define TRNG_CTRLA_RUNSTDBY_Pos 6
62 #define TRNG_CTRLA_RUNSTDBY (_U_(0x1) << TRNG_CTRLA_RUNSTDBY_Pos)
63 #define TRNG_CTRLA_MASK _U_(0x42)
65 /* -------- TRNG_EVCTRL : (TRNG Offset: 0x04) (R/W 8) Event Control -------- */
66 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
67 typedef union {
68  struct {
69  uint8_t DATARDYEO:1;
70  uint8_t :7;
71  } bit;
72  uint8_t reg;
74 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
75 
76 #define TRNG_EVCTRL_OFFSET 0x04
77 #define TRNG_EVCTRL_RESETVALUE _U_(0x00)
79 #define TRNG_EVCTRL_DATARDYEO_Pos 0
80 #define TRNG_EVCTRL_DATARDYEO (_U_(0x1) << TRNG_EVCTRL_DATARDYEO_Pos)
81 #define TRNG_EVCTRL_MASK _U_(0x01)
83 /* -------- TRNG_INTENCLR : (TRNG Offset: 0x08) (R/W 8) Interrupt Enable Clear -------- */
84 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
85 typedef union {
86  struct {
87  uint8_t DATARDY:1;
88  uint8_t :7;
89  } bit;
90  uint8_t reg;
92 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
93 
94 #define TRNG_INTENCLR_OFFSET 0x08
95 #define TRNG_INTENCLR_RESETVALUE _U_(0x00)
97 #define TRNG_INTENCLR_DATARDY_Pos 0
98 #define TRNG_INTENCLR_DATARDY (_U_(0x1) << TRNG_INTENCLR_DATARDY_Pos)
99 #define TRNG_INTENCLR_MASK _U_(0x01)
101 /* -------- TRNG_INTENSET : (TRNG Offset: 0x09) (R/W 8) Interrupt Enable Set -------- */
102 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
103 typedef union {
104  struct {
105  uint8_t DATARDY:1;
106  uint8_t :7;
107  } bit;
108  uint8_t reg;
110 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
111 
112 #define TRNG_INTENSET_OFFSET 0x09
113 #define TRNG_INTENSET_RESETVALUE _U_(0x00)
115 #define TRNG_INTENSET_DATARDY_Pos 0
116 #define TRNG_INTENSET_DATARDY (_U_(0x1) << TRNG_INTENSET_DATARDY_Pos)
117 #define TRNG_INTENSET_MASK _U_(0x01)
119 /* -------- TRNG_INTFLAG : (TRNG Offset: 0x0A) (R/W 8) Interrupt Flag Status and Clear -------- */
120 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
121 typedef union { // __I to avoid read-modify-write on write-to-clear register
122  struct {
123  __I uint8_t DATARDY:1;
124  __I uint8_t :7;
125  } bit;
126  uint8_t reg;
128 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
129 
130 #define TRNG_INTFLAG_OFFSET 0x0A
131 #define TRNG_INTFLAG_RESETVALUE _U_(0x00)
133 #define TRNG_INTFLAG_DATARDY_Pos 0
134 #define TRNG_INTFLAG_DATARDY (_U_(0x1) << TRNG_INTFLAG_DATARDY_Pos)
135 #define TRNG_INTFLAG_MASK _U_(0x01)
137 /* -------- TRNG_DATA : (TRNG Offset: 0x20) (R/ 32) Output Data -------- */
138 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
139 typedef union {
140  struct {
141  uint32_t DATA:32;
142  } bit;
143  uint32_t reg;
145 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
146 
147 #define TRNG_DATA_OFFSET 0x20
148 #define TRNG_DATA_RESETVALUE _U_(0x00000000)
150 #define TRNG_DATA_DATA_Pos 0
151 #define TRNG_DATA_DATA_Msk (_U_(0xFFFFFFFF) << TRNG_DATA_DATA_Pos)
152 #define TRNG_DATA_DATA(value) (TRNG_DATA_DATA_Msk & ((value) << TRNG_DATA_DATA_Pos))
153 #define TRNG_DATA_MASK _U_(0xFFFFFFFF)
156 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
157 typedef struct {
159  RoReg8 Reserved1[0x3];
161  RoReg8 Reserved2[0x3];
165  RoReg8 Reserved3[0x15];
167 } Trng;
168 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
169 
172 #endif /* _SAME54_TRNG_COMPONENT_ */
TRNG_EVCTRL_Type::reg
uint8_t reg
Definition: trng.h:72
TRNG_INTENSET_Type::reg
uint8_t reg
Definition: trng.h:108
Trng::CTRLA
__IO TRNG_CTRLA_Type CTRLA
Offset: 0x00 (R/W 8) Control A.
Definition: trng.h:158
TRNG_DATA_Type
Definition: trng.h:139
TRNG_INTFLAG_Type
Definition: trng.h:121
TRNG_INTFLAG_Type::reg
uint8_t reg
Definition: trng.h:126
Trng::INTENSET
__IO TRNG_INTENSET_Type INTENSET
Offset: 0x09 (R/W 8) Interrupt Enable Set.
Definition: trng.h:163
TRNG_INTFLAG_Type::DATARDY
__I uint8_t DATARDY
Definition: trng.h:123
TRNG_CTRLA_Type
Definition: trng.h:44
TRNG_INTENCLR_Type
Definition: trng.h:85
Trng
TRNG hardware registers.
Definition: trng.h:157
TRNG_EVCTRL_Type::DATARDYEO
uint8_t DATARDYEO
Definition: trng.h:69
TRNG_EVCTRL_Type
Definition: trng.h:67
TRNG_INTENSET_Type
Definition: trng.h:103
Trng::INTENCLR
__IO TRNG_INTENCLR_Type INTENCLR
Offset: 0x08 (R/W 8) Interrupt Enable Clear.
Definition: trng.h:162
TRNG_INTENCLR_Type::reg
uint8_t reg
Definition: trng.h:90
TRNG_INTFLAG_Type::uint8_t
__I uint8_t
Definition: trng.h:124
TRNG_DATA_Type::DATA
uint32_t DATA
Definition: trng.h:141
Trng::DATA
__I TRNG_DATA_Type DATA
Offset: 0x20 (R/ 32) Output Data.
Definition: trng.h:166
TRNG_INTENCLR_Type::DATARDY
uint8_t DATARDY
Definition: trng.h:87
Trng::INTFLAG
__IO TRNG_INTFLAG_Type INTFLAG
Offset: 0x0A (R/W 8) Interrupt Flag Status and Clear.
Definition: trng.h:164
RoReg8
volatile const uint8_t RoReg8
Definition: same54n19a.h:53
TRNG_CTRLA_Type::ENABLE
uint8_t ENABLE
Definition: trng.h:47
TRNG_CTRLA_Type::RUNSTDBY
uint8_t RUNSTDBY
Definition: trng.h:49
TRNG_CTRLA_Type::reg
uint8_t reg
Definition: trng.h:52
TRNG_INTENSET_Type::DATARDY
uint8_t DATARDY
Definition: trng.h:105
Trng::EVCTRL
__IO TRNG_EVCTRL_Type EVCTRL
Offset: 0x04 (R/W 8) Event Control.
Definition: trng.h:160
TRNG_DATA_Type::reg
uint32_t reg
Definition: trng.h:143