Initial commit
This commit is contained in:
248
Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rng_ex.h
Normal file
248
Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rng_ex.h
Normal file
@ -0,0 +1,248 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file stm32h7xx_hal_rng_ex.h
|
||||
* @author MCD Application Team
|
||||
* @brief Header file of RNG HAL Extension module.
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2017 STMicroelectronics.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef STM32H7xx_HAL_RNG_EX_H
|
||||
#define STM32H7xx_HAL_RNG_EX_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "stm32h7xx_hal_def.h"
|
||||
|
||||
/** @addtogroup STM32H7xx_HAL_Driver
|
||||
* @{
|
||||
*/
|
||||
|
||||
#if defined(RNG)
|
||||
#if defined(RNG_CR_CONDRST)
|
||||
|
||||
/** @defgroup RNG_Ex RNG_Ex
|
||||
* @brief RNG Extension HAL module driver
|
||||
* @{
|
||||
*/
|
||||
|
||||
/* Exported types ------------------------------------------------------------*/
|
||||
/** @defgroup RNG_Ex_Exported_Types RNG_Ex Exported Types
|
||||
* @brief RNG_Ex Exported types
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief RNG_Ex Configuration Structure definition
|
||||
*/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint32_t Config1; /*!< Config1 must be a value between 0 and 0x3F */
|
||||
uint32_t Config2; /*!< Config2 must be a value between 0 and 0x7 */
|
||||
uint32_t Config3; /*!< Config3 must be a value between 0 and 0xF */
|
||||
uint32_t ClockDivider; /*!< Clock Divider factor.This parameter can
|
||||
be a value of @ref RNG_Ex_Clock_Divider_Factor */
|
||||
uint32_t NistCompliance; /*!< NIST compliance.This parameter can be a
|
||||
value of @ref RNG_Ex_NIST_Compliance */
|
||||
} RNG_ConfigTypeDef;
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* Exported constants --------------------------------------------------------*/
|
||||
/** @defgroup RNG_Ex_Exported_Constants RNG_Ex Exported Constants
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @defgroup RNG_Ex_Clock_Divider_Factor Value used to configure an internal
|
||||
* programmable divider acting on the incoming RNG clock
|
||||
* @{
|
||||
*/
|
||||
#define RNG_CLKDIV_BY_1 (0x00000000UL) /*!< No clock division */
|
||||
#define RNG_CLKDIV_BY_2 (RNG_CR_CLKDIV_0)
|
||||
/*!< 2 RNG clock cycles per internal RNG clock */
|
||||
#define RNG_CLKDIV_BY_4 (RNG_CR_CLKDIV_1)
|
||||
/*!< 4 RNG clock cycles per internal RNG clock */
|
||||
#define RNG_CLKDIV_BY_8 (RNG_CR_CLKDIV_1 | RNG_CR_CLKDIV_0)
|
||||
/*!< 8 RNG clock cycles per internal RNG clock */
|
||||
#define RNG_CLKDIV_BY_16 (RNG_CR_CLKDIV_2)
|
||||
/*!< 16 RNG clock cycles per internal RNG clock */
|
||||
#define RNG_CLKDIV_BY_32 (RNG_CR_CLKDIV_2 | RNG_CR_CLKDIV_0)
|
||||
/*!< 32 RNG clock cycles per internal RNG clock */
|
||||
#define RNG_CLKDIV_BY_64 (RNG_CR_CLKDIV_2 | RNG_CR_CLKDIV_1)
|
||||
/*!< 64 RNG clock cycles per internal RNG clock */
|
||||
#define RNG_CLKDIV_BY_128 (RNG_CR_CLKDIV_2 | RNG_CR_CLKDIV_1 | RNG_CR_CLKDIV_0)
|
||||
/*!< 128 RNG clock cycles per internal RNG clock */
|
||||
#define RNG_CLKDIV_BY_256 (RNG_CR_CLKDIV_3)
|
||||
/*!< 256 RNG clock cycles per internal RNG clock */
|
||||
#define RNG_CLKDIV_BY_512 (RNG_CR_CLKDIV_3 | RNG_CR_CLKDIV_0)
|
||||
/*!< 512 RNG clock cycles per internal RNG clock */
|
||||
#define RNG_CLKDIV_BY_1024 (RNG_CR_CLKDIV_3 | RNG_CR_CLKDIV_1)
|
||||
/*!< 1024 RNG clock cycles per internal RNG clock */
|
||||
#define RNG_CLKDIV_BY_2048 (RNG_CR_CLKDIV_3 | RNG_CR_CLKDIV_1 | RNG_CR_CLKDIV_0)
|
||||
/*!< 2048 RNG clock cycles per internal RNG clock */
|
||||
#define RNG_CLKDIV_BY_4096 (RNG_CR_CLKDIV_3 | RNG_CR_CLKDIV_2)
|
||||
/*!< 4096 RNG clock cycles per internal RNG clock */
|
||||
#define RNG_CLKDIV_BY_8192 (RNG_CR_CLKDIV_3 | RNG_CR_CLKDIV_2 | RNG_CR_CLKDIV_0)
|
||||
/*!< 8192 RNG clock cycles per internal RNG clock */
|
||||
#define RNG_CLKDIV_BY_16384 (RNG_CR_CLKDIV_3 | RNG_CR_CLKDIV_2 | RNG_CR_CLKDIV_1)
|
||||
/*!< 16384 RNG clock cycles per internal RNG clock */
|
||||
#define RNG_CLKDIV_BY_32768 (RNG_CR_CLKDIV_3 | RNG_CR_CLKDIV_2 | RNG_CR_CLKDIV_1 | RNG_CR_CLKDIV_0)
|
||||
/*!< 32768 RNG clock cycles per internal RNG clock */
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @defgroup RNG_Ex_NIST_Compliance NIST Compliance configuration
|
||||
* @{
|
||||
*/
|
||||
#define RNG_NIST_COMPLIANT (0x00000000UL) /*!< NIST compliant configuration*/
|
||||
#define RNG_CUSTOM_NIST (RNG_CR_NISTC) /*!< Custom NIST configuration */
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* Private types -------------------------------------------------------------*/
|
||||
/** @defgroup RNG_Ex_Private_Types RNG_Ex Private Types
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* Private variables ---------------------------------------------------------*/
|
||||
/** @defgroup RNG_Ex_Private_Variables RNG_Ex Private Variables
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* Private constants ---------------------------------------------------------*/
|
||||
/** @defgroup RNG_Ex_Private_Constants RNG_Ex Private Constants
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* Private macros ------------------------------------------------------------*/
|
||||
/** @defgroup RNG_Ex_Private_Macros RNG_Ex Private Macros
|
||||
* @{
|
||||
*/
|
||||
|
||||
#define IS_RNG_CLOCK_DIVIDER(__CLOCK_DIV__) (((__CLOCK_DIV__) == RNG_CLKDIV_BY_1) || \
|
||||
((__CLOCK_DIV__) == RNG_CLKDIV_BY_2) || \
|
||||
((__CLOCK_DIV__) == RNG_CLKDIV_BY_4) || \
|
||||
((__CLOCK_DIV__) == RNG_CLKDIV_BY_8) || \
|
||||
((__CLOCK_DIV__) == RNG_CLKDIV_BY_16) || \
|
||||
((__CLOCK_DIV__) == RNG_CLKDIV_BY_32) || \
|
||||
((__CLOCK_DIV__) == RNG_CLKDIV_BY_64) || \
|
||||
((__CLOCK_DIV__) == RNG_CLKDIV_BY_128) || \
|
||||
((__CLOCK_DIV__) == RNG_CLKDIV_BY_256) || \
|
||||
((__CLOCK_DIV__) == RNG_CLKDIV_BY_512) || \
|
||||
((__CLOCK_DIV__) == RNG_CLKDIV_BY_1024) || \
|
||||
((__CLOCK_DIV__) == RNG_CLKDIV_BY_2048) || \
|
||||
((__CLOCK_DIV__) == RNG_CLKDIV_BY_4096) || \
|
||||
((__CLOCK_DIV__) == RNG_CLKDIV_BY_8192) || \
|
||||
((__CLOCK_DIV__) == RNG_CLKDIV_BY_16384) || \
|
||||
((__CLOCK_DIV__) == RNG_CLKDIV_BY_32768))
|
||||
|
||||
|
||||
#define IS_RNG_NIST_COMPLIANCE(__NIST_COMPLIANCE__) (((__NIST_COMPLIANCE__) == RNG_NIST_COMPLIANT) || \
|
||||
((__NIST_COMPLIANCE__) == RNG_CUSTOM_NIST))
|
||||
|
||||
#define IS_RNG_CONFIG1(__CONFIG1__) ((__CONFIG1__) <= 0x3FUL)
|
||||
|
||||
#define IS_RNG_CONFIG2(__CONFIG2__) ((__CONFIG2__) <= 0x07UL)
|
||||
|
||||
#define IS_RNG_CONFIG3(__CONFIG3__) ((__CONFIG3__) <= 0xFUL)
|
||||
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* Private functions ---------------------------------------------------------*/
|
||||
/** @defgroup RNG_Ex_Private_Functions RNG_Ex Private Functions
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* Exported functions --------------------------------------------------------*/
|
||||
/** @defgroup RNG_Ex_Exported_Functions RNG_Ex Exported Functions
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @addtogroup RNG_Ex_Exported_Functions_Group1
|
||||
* @{
|
||||
*/
|
||||
HAL_StatusTypeDef HAL_RNGEx_SetConfig(RNG_HandleTypeDef *hrng, RNG_ConfigTypeDef *pConf);
|
||||
HAL_StatusTypeDef HAL_RNGEx_GetConfig(RNG_HandleTypeDef *hrng, RNG_ConfigTypeDef *pConf);
|
||||
HAL_StatusTypeDef HAL_RNGEx_LockConfig(RNG_HandleTypeDef *hrng);
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @addtogroup RNG_Ex_Exported_Functions_Group2
|
||||
* @{
|
||||
*/
|
||||
HAL_StatusTypeDef HAL_RNGEx_RecoverSeedError(RNG_HandleTypeDef *hrng);
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
#endif /* RNG_CR_CONDRST */
|
||||
#endif /* RNG */
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* STM32H7xx_HAL_RNG_EX_H */
|
||||
|
||||
Reference in New Issue
Block a user