MCUXpresso_LPC55S69/devices/LPC55S69/drivers/fsl_rng.h

105 lines
2.3 KiB
C

/*
* Copyright 2017, 2019, 2021 NXP
* All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef FSL_RNG_DRIVER_H_
#define FSL_RNG_DRIVER_H_
#include "fsl_common.h"
/*!
* @addtogroup rng
* @{
*/
/*******************************************************************************
* Definitions
*******************************************************************************/
/*! @name Driver version */
/*! @{ */
/*! @brief RNG driver version. Version 2.0.3.
*
* Current version: 2.0.3
*
* Change log:
* - Version 2.0.0
* - Initial version
*
* - Version 2.0.1
* - Fix MISRA C-2012 issue.
*
* - Version 2.0.2
* - Add RESET_PeripheralReset function inside RNG_Init and RNG_Deinit functions.
*
* - Version 2.0.3
* - Modified RNG_Init and RNG_GetRandomData functions, added rng_accumulateEntropy and rng_readEntropy functions.
* - These changes are reflecting recommended usage of RNG according to device UM.
*/
#define FSL_RNG_DRIVER_VERSION (MAKE_VERSION(2, 0, 3))
/*! @} */
/*******************************************************************************
* API
*******************************************************************************/
#if defined(__cplusplus)
extern "C" {
#endif
/*!
* @brief Initializes the RNG.
*
* This function initializes the RNG.
* When called, the RNG module and ring oscillator is enabled.
*
* @param base RNG base address
* @return If successful, returns the kStatus_RNG_Success. Otherwise, it returns an error.
*/
void RNG_Init(RNG_Type *base);
/*!
* @brief Shuts down the RNG.
*
* This function shuts down the RNG.
*
* @param base RNG base address.
*/
void RNG_Deinit(RNG_Type *base);
/*!
* @brief Gets random data.
*
* This function gets random data from the RNG.
*
* @param base RNG base address.
* @param data Pointer address used to store random data.
* @param dataSize Size of the buffer pointed by the data parameter.
* @return random data
*/
status_t RNG_GetRandomData(RNG_Type *base, void *data, size_t dataSize);
/*!
* @brief Returns random 32-bit number.
*
* This function gets random number from the RNG.
*
* @param base RNG base address.
* @return random number
*/
static inline uint32_t RNG_GetRandomWord(RNG_Type *base)
{
return base->RANDOM_NUMBER;
}
#if defined(__cplusplus)
}
#endif
/*! @}*/
#endif /*FSL_RNG_H_*/