1 /** 2 ****************************************************************************** 3 * @file stm32f4xx_ll_rng.c 4 * @author MCD Application Team 5 * @brief RNG LL module driver. 6 ****************************************************************************** 7 * @attention 8 * 9 * Copyright (c) 2016 STMicroelectronics. 10 * All rights reserved. 11 * 12 * This software is licensed under terms that can be found in the LICENSE file 13 * in the root directory of this software component. 14 * If no LICENSE file comes with this software, it is provided AS-IS. 15 * 16 ****************************************************************************** 17 */ 18 #if defined(USE_FULL_LL_DRIVER) 19 20 /* Includes ------------------------------------------------------------------*/ 21 #include "stm32f4xx_ll_rng.h" 22 #include "stm32f4xx_ll_bus.h" 23 24 #ifdef USE_FULL_ASSERT 25 #include "stm32_assert.h" 26 #else 27 #define assert_param(expr) ((void)0U) 28 #endif /* USE_FULL_ASSERT */ 29 30 /** @addtogroup STM32F4xx_LL_Driver 31 * @{ 32 */ 33 34 #if defined (RNG) 35 36 /** @addtogroup RNG_LL 37 * @{ 38 */ 39 40 /* Private types -------------------------------------------------------------*/ 41 /* Private variables ---------------------------------------------------------*/ 42 /* Private constants ---------------------------------------------------------*/ 43 /* Private macros ------------------------------------------------------------*/ 44 /* Private function prototypes -----------------------------------------------*/ 45 46 /* Exported functions --------------------------------------------------------*/ 47 /** @addtogroup RNG_LL_Exported_Functions 48 * @{ 49 */ 50 51 /** @addtogroup RNG_LL_EF_Init 52 * @{ 53 */ 54 55 /** 56 * @brief De-initialize RNG registers (Registers restored to their default values). 57 * @param RNGx RNG Instance 58 * @retval An ErrorStatus enumeration value: 59 * - SUCCESS: RNG registers are de-initialized 60 * - ERROR: not applicable 61 */ LL_RNG_DeInit(RNG_TypeDef * RNGx)62ErrorStatus LL_RNG_DeInit(RNG_TypeDef *RNGx) 63 { 64 ErrorStatus status = SUCCESS; 65 66 /* Check the parameters */ 67 assert_param(IS_RNG_ALL_INSTANCE(RNGx)); 68 if (RNGx == RNG) 69 { 70 #if !defined(RCC_AHB2_SUPPORT) 71 /* Enable RNG reset state */ 72 LL_AHB1_GRP1_ForceReset(LL_AHB1_GRP1_PERIPH_RNG); 73 74 /* Release RNG from reset state */ 75 LL_AHB1_GRP1_ReleaseReset(LL_AHB1_GRP1_PERIPH_RNG); 76 #else 77 /* Enable RNG reset state */ 78 LL_AHB2_GRP1_ForceReset(LL_AHB2_GRP1_PERIPH_RNG); 79 80 /* Release RNG from reset state */ 81 LL_AHB2_GRP1_ReleaseReset(LL_AHB2_GRP1_PERIPH_RNG); 82 #endif /* !RCC_AHB2_SUPPORT */ 83 } 84 else 85 { 86 status = ERROR; 87 } 88 89 return status; 90 } 91 92 /** 93 * @} 94 */ 95 96 /** 97 * @} 98 */ 99 100 /** 101 * @} 102 */ 103 104 #endif /* RNG */ 105 106 /** 107 * @} 108 */ 109 110 #endif /* USE_FULL_LL_DRIVER */ 111 112