source: trunk/firmware/Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_ll_rng.c

Last change on this file was 6, checked in by f.jahn, 3 months ago
File size: 4.0 KB
Line 
1/**
2  ******************************************************************************
3  * @file    stm32g0xx_ll_rng.c
4  * @author  MCD Application Team
5  * @brief   RNG LL module driver.
6  ******************************************************************************
7  * @attention
8  *
9  * <h2><center>&copy; Copyright (c) 2018 STMicroelectronics.
10  * All rights reserved.</center></h2>
11  *
12  * This software component is licensed by ST under BSD 3-Clause license,
13  * the "License"; You may not use this file except in compliance with the
14  * License. You may obtain a copy of the License at:
15  *                        opensource.org/licenses/BSD-3-Clause
16  *
17  ******************************************************************************
18  */
19#if defined(USE_FULL_LL_DRIVER)
20
21/* Includes ------------------------------------------------------------------*/
22#include "stm32g0xx_ll_rng.h"
23#include "stm32g0xx_ll_bus.h"
24
25#ifdef  USE_FULL_ASSERT
26#include "stm32_assert.h"
27#else
28#define assert_param(expr) ((void)0U)
29#endif
30
31/** @addtogroup STM32G0xx_LL_Driver
32  * @{
33  */
34
35#if defined (RNG)
36
37/** @addtogroup RNG_LL
38  * @{
39  */
40
41/* Private types -------------------------------------------------------------*/
42/* Private variables ---------------------------------------------------------*/
43/* Private constants ---------------------------------------------------------*/
44/* Private macros ------------------------------------------------------------*/
45/** @defgroup RNG_LL_Private_Macros RNG Private Macros
46  * @{
47  */
48#define IS_LL_RNG_CED(__MODE__) (((__MODE__) == LL_RNG_CED_ENABLE) || \
49                                 ((__MODE__) == LL_RNG_CED_DISABLE))
50
51/**
52  * @}
53  */
54
55/* Private function prototypes -----------------------------------------------*/
56
57/* Exported functions --------------------------------------------------------*/
58/** @addtogroup RNG_LL_Exported_Functions
59  * @{
60  */
61
62/** @addtogroup RNG_LL_EF_Init
63  * @{
64  */
65
66/**
67  * @brief  De-initialize RNG registers (Registers restored to their default values).
68  * @param  RNGx RNG Instance
69  * @retval An ErrorStatus enumeration value:
70  *          - SUCCESS: RNG registers are de-initialized
71  *          - ERROR: not applicable
72  */
73ErrorStatus LL_RNG_DeInit(RNG_TypeDef *RNGx)
74{
75  /* Check the parameters */
76  assert_param(IS_RNG_ALL_INSTANCE(RNGx));
77
78  /* Enable RNG reset state */
79  LL_AHB1_GRP1_ForceReset(LL_AHB1_GRP1_PERIPH_RNG);
80
81  /* Release RNG from reset state */
82  LL_AHB1_GRP1_ReleaseReset(LL_AHB1_GRP1_PERIPH_RNG);
83
84  return (SUCCESS);
85}
86
87/**
88  * @brief  Initialize RNG registers according to the specified parameters in RNG_InitStruct.
89  * @param  RNGx RNG Instance
90  * @param  RNG_InitStruct: pointer to a LL_RNG_InitTypeDef structure
91  *         that contains the configuration information for the specified RNG peripheral.
92  * @retval An ErrorStatus enumeration value:
93  *          - SUCCESS: RNG registers are initialized according to RNG_InitStruct content
94  *          - ERROR: not applicable
95  */
96ErrorStatus LL_RNG_Init(RNG_TypeDef *RNGx, LL_RNG_InitTypeDef *RNG_InitStruct)
97{
98  /* Check the parameters */
99  assert_param(IS_RNG_ALL_INSTANCE(RNGx));
100  assert_param(IS_LL_RNG_CED(RNG_InitStruct->ClockErrorDetection));
101
102  /* Clock Error Detection configuration */
103  MODIFY_REG(RNGx->CR, RNG_CR_CED, RNG_InitStruct->ClockErrorDetection);
104
105  return (SUCCESS);
106}
107
108/**
109  * @brief Set each @ref LL_RNG_InitTypeDef field to default value.
110  * @param RNG_InitStruct Pointer to a @ref LL_RNG_InitTypeDef structure
111  *                       whose fields will be set to default values.
112  * @retval None
113  */
114void LL_RNG_StructInit(LL_RNG_InitTypeDef *RNG_InitStruct)
115{
116  /* Set RNG_InitStruct fields to default values */
117  RNG_InitStruct->ClockErrorDetection = LL_RNG_CED_ENABLE;
118
119}
120
121/**
122  * @}
123  */
124
125/**
126  * @}
127  */
128
129/**
130  * @}
131  */
132
133#endif /* defined (RNG) */
134
135/**
136  * @}
137  */
138
139#endif /* USE_FULL_LL_DRIVER */
140
141/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
142
Note: See TracBrowser for help on using the repository browser.