Go to the documentation of this file.
107 #define LL_RNG_SEED_FR0_S0 (4UL << RNG_CONFIG_LFSR_SEED_SEL_POS)
108 #define LL_RNG_SEED_USER (6UL << RNG_CONFIG_LFSR_SEED_SEL_POS)
115 #define LL_RNG_LFSR_MODE_59BIT (0x00000000UL)
116 #define LL_RNG_LFSR_MODE_128BIT (1UL << RNG_CONFIG_LFSR_MODE_POS)
122 #define LL_RNG_POST_PRO_NOT (0x00000000UL)
123 #define LL_RNG_POST_PRO_SKIPPING (1UL << RNG_CONFIG_POST_MODE_POS)
124 #define LL_RNG_POST_PRO_COUNTING (2UL << RNG_CONFIG_POST_MODE_POS)
125 #define LL_RNG_POST_PRO_NEUMANN (3UL << RNG_CONFIG_POST_MODE_POS)
131 #define LL_RNG_IT_DISABLE (0x00000000UL)
132 #define LL_RNG_IT_ENABLE (1UL << RNG_CONFIG_IRQ_EN_POS)
138 #define LL_RNG_OUTPUT_FR0_S0 (4UL << RNG_CONFIG_OUT_MODE_POS)
139 #define LL_RNG_OUTPUT_CYCLIC_PARITY (6UL << RNG_CONFIG_OUT_MODE_POS)
140 #define LL_RNG_OUTPUT_CYCLIC (7UL << RNG_CONFIG_OUT_MODE_POS)
141 #define LL_RNG_OUTPUT_LFSR_RNG (8UL << RNG_CONFIG_OUT_MODE_POS)
142 #define LL_RNG_OUTPUT_LFSR (9UL << RNG_CONFIG_OUT_MODE_POS)
163 #define LL_RNG_WriteReg(__instance__, __REG__, __VALUE__) WRITE_REG(__instance__->__REG__, (__VALUE__))
171 #define LL_RNG_ReadReg(__instance__, __REG__) READ_REG(__instance__->__REG__)
197 SET_BITS(RNGx->CTRL, RNG_CTRL_RUN_EN);
212 CLEAR_BITS(RNGx->CTRL, RNG_CTRL_RUN_EN);
227 return (READ_BITS(RNGx->CTRL, RNG_CTRL_RUN_EN) == (RNG_CTRL_RUN_EN));
242 SET_BITS(RNGx->CONFIG, RNG_CONFIG_FRO_EN);
257 CLEAR_BITS(RNGx->CONFIG, RNG_CONFIG_FRO_EN);
272 return (READ_BITS(RNGx->CONFIG, RNG_CONFIG_FRO_EN) == (RNG_CONFIG_FRO_EN));
290 MODIFY_REG(RNGx->CONFIG, RNG_CONFIG_LFSR_SEED_SEL, seed);
307 return READ_BITS(RNGx->CONFIG, RNG_CONFIG_LFSR_SEED_SEL);
325 MODIFY_REG(RNGx->CONFIG, RNG_CONFIG_LFSR_MODE, mode);
342 return READ_BITS(RNGx->CONFIG, RNG_CONFIG_LFSR_MODE);
362 MODIFY_REG(RNGx->CONFIG, RNG_CONFIG_POST_MODE, post);
381 return READ_BITS(RNGx->CONFIG, RNG_CONFIG_POST_MODE);
402 MODIFY_REG(RNGx->CONFIG, RNG_CONFIG_OUT_MODE, mode);
422 return READ_BITS(RNGx->CONFIG, RNG_CONFIG_OUT_MODE);
438 MODIFY_REG(RNGx->TSCON, RNG_TSCON_TRDY_TIME, time);
453 return READ_BITS(RNGx->TSCON, RNG_TSCON_TRDY_TIME);
470 WRITE_REG(RNGx->USER_SEED, seed);
491 return (READ_BITS(RNGx->LR_STATUS, RNG_LR_STATUS_FLAG) == (RNG_LR_STATUS_FLAG));
506 return READ_BITS(RNGx->STATUS, RNG_STATUS_READY);
521 WRITE_REG(RNGx->STATUS, RNG_STATUS_READY);
542 SET_BITS(RNGx->CONFIG, RNG_CONFIG_IRQ_EN);
557 CLEAR_BITS(RNGx->CONFIG, RNG_CONFIG_IRQ_EN);
572 return (READ_BITS(RNGx->CONFIG, RNG_CONFIG_IRQ_EN) == (RNG_CONFIG_IRQ_EN));
593 return (uint32_t)(READ_REG(RNGx->DATA));
608 return READ_BITS(RNGx->LR_STATUS, RNG_LR_STATUS_CNT) >> RNG_LR_STATUS_CNT_POS;
LL RNG Init Structure definition.
__STATIC_INLINE uint32_t ll_rng_is_active_flag_lr(rng_regs_t *RNGx)
Indicate if the Flag of RNG long run test is set or not.
__STATIC_INLINE uint32_t ll_rng_get_post_mode(rng_regs_t *RNGx)
Get RNG post-process configuration.
__STATIC_INLINE void ll_rng_set_lfsr_seed(rng_regs_t *RNGx, uint32_t seed)
Set source of LFSR seed.
__STATIC_INLINE void ll_rng_enable_fro(rng_regs_t *RNGx)
Enable Ring oscillator TRNG enabled signal.
__STATIC_INLINE void ll_rng_clear_flag_sts(rng_regs_t *RNGx)
Clear RNG Status flag.
__STATIC_INLINE void ll_rng_set_post_mode(rng_regs_t *RNGx, uint32_t post)
Set RNG post-process configuration.
__STATIC_INLINE void ll_rng_enable(rng_regs_t *RNGx)
Enable Random Number Generation.
__STATIC_INLINE uint32_t ll_rng_get_lfsr_seed(rng_regs_t *RNGx)
Get source of LFSR seed.
void ll_rng_struct_init(ll_rng_init_t *p_rng_init)
Set each field of a ll_rng_init_t type structure to default value.
__STATIC_INLINE void ll_rng_set_trdy_time(rng_regs_t *RNGx, uint32_t time)
set the waiting time that RNG input reaches stable.
__STATIC_INLINE uint32_t ll_rng_read_lr_count(rng_regs_t *RNGx)
Return8-bit RNG Long Run Test counts.
__STATIC_INLINE uint32_t ll_rng_is_enabled_it(rng_regs_t *RNGx)
Check if Random Number Generator Interrupt is enabled.
CMSIS Cortex-M# Core Peripheral Access Layer Header File for Device GR5405.
__STATIC_INLINE void ll_rng_set_output_mode(rng_regs_t *RNGx, uint32_t mode)
set RNG output mode.
__STATIC_INLINE void ll_rng_enable_it(rng_regs_t *RNGx)
Enable Random Number Generator Interrupt.
__STATIC_INLINE void ll_rng_disable_it(rng_regs_t *RNGx)
Disable Random Number Generator Interrupt.
__STATIC_INLINE void ll_rng_set_user_seed(rng_regs_t *RNGx, uint32_t seed)
set RNG seed configured by user.
__STATIC_INLINE uint32_t ll_rng_read_random_data32(rng_regs_t *RNGx)
Return32-bit Random Number value.
__STATIC_INLINE void ll_rng_disable_fro(rng_regs_t *RNGx)
Disable Ring oscillator TRNG enabled signal.
__STATIC_INLINE uint32_t ll_rng_get_output_mode(rng_regs_t *RNGx)
get RNG output mode.
__STATIC_INLINE uint32_t ll_rng_get_lfsr_mode(rng_regs_t *RNGx)
Get LFSR configuration mode.
__STATIC_INLINE uint32_t ll_rng_is_enabled(rng_regs_t *RNGx)
Check if Random Number Generator is enabled.
__STATIC_INLINE uint32_t ll_rng_get_trdy_time(rng_regs_t *RNGx)
get the waiting time that RNG input reaches stable.
void ll_rng_init(rng_regs_t *RNGx, const ll_rng_init_t *p_rng_init)
Initialize RNG registers according to the specified parameters in p_rng_init.
__STATIC_INLINE uint32_t ll_rng_is_active_flag_sts(rng_regs_t *RNGx)
Indicate if the RNG Status Flag is set or not.
__STATIC_INLINE void ll_rng_disable(rng_regs_t *RNGx)
Disable Random Number Generation.
__STATIC_INLINE void ll_rng_set_lfsr_mode(rng_regs_t *RNGx, uint32_t mode)
Set LFSR configuration mode.
__STATIC_INLINE uint32_t ll_rng_fro_is_enabled(rng_regs_t *RNGx)
Check if Ring oscillator TRNG enabled signal is enabled.
void ll_rng_deinit(rng_regs_t *RNGx)
De-initialize the RNG registers to their default reset values.