nt9856x/code/hdal/drivers/k_driver/include/rtos_na51089/trng.h
2023-03-28 15:07:53 +08:00

76 lines
1.5 KiB
C
Executable File

/*
Trng driver header file
Trng driver header file.
@file trng.h
@ingroup mIDrvMisc_Trng
@note Nothing
Copyright Novatek Microelectronics Corp. 2017. All rights reserved.
*/
#ifndef _TRNG_H
#define _TRNG_H
#include <kwrap/nvt_type.h>
/**
SEED
*/
typedef enum {
TRNG_SEED_LOW, ///< TRNG SEED LOW
TRNG_SEED_HIGH, ///< TRNG SEED HIGH
ENUM_DUMMY4WORD(TRNG_SEED)
} TRNG_SEED;
typedef enum {
TRNG_CONFIG_CLKSRC,
///< Context can be one of the following:
///< - @b 160 : 160 MHz (Default value)
///< - @b 240 : 240 MHz
TRNG_CONFIG_ROSC_CLKSRC,
TRNG_CONFIG_RO_DELAY,
TRNG_CONFIG_RO_CLKDIV,
TRNG_CONFIG_CLKDIV,
ENUM_DUMMY4WORD(TRNG_CONFIG_ID)
} TRNG_CONFIG_ID;
typedef enum {
TRNGRO_CLKSRC_RO,
TRNGRO_CLKSRC_PLL4,
ENUM_DUMMY4WORD(TRNGRO_CLKSRC)
} TRNGRO_CLKSRC;
extern ER trng_open(void);
extern ER trng_close(void);
extern ER trng_setConfig(TRNG_CONFIG_ID ConfigID, UINT32 uiConfig);
extern void trng_set_casr(BOOL b_en);
extern void trng_set_postproc(BOOL b_en);
extern void trng_set_lock(BOOL b_lock);
extern void trng_update_seed(BOOL b_update);
extern void trng_set_seed(TRNG_SEED seedhl, UINT32 data);
extern UINT32 trng_get_Control(void);
extern UINT32 trng_get_seed(TRNG_SEED seedhl);
extern BOOL trng_get_tdes_status(void);
extern UINT32 trng_get_randnum(void);
extern UINT32 randomUINT32(void);
#if defined(_NVT_EMULATION_)
BOOL trng_resetvalue_check(void);
#endif
//@}
#endif // _TRNG_H