STM32H735xx HAL User Manual
|
00001 /** 00002 ****************************************************************************** 00003 * @file stm32h7xx_ll_fmac.c 00004 * @author MCD Application Team 00005 * @brief Header for stm32h7xx_ll_fmac.c module 00006 ****************************************************************************** 00007 * @attention 00008 * 00009 * Copyright (c) 2017 STMicroelectronics. 00010 * All rights reserved. 00011 * 00012 * This software is licensed under terms that can be found in the LICENSE file 00013 * in the root directory of this software component. 00014 * If no LICENSE file comes with this software, it is provided AS-IS. 00015 * 00016 ****************************************************************************** 00017 */ 00018 #if defined(USE_FULL_LL_DRIVER) 00019 00020 /* Includes ------------------------------------------------------------------*/ 00021 #include "stm32h7xx_ll_fmac.h" 00022 #include "stm32h7xx_ll_bus.h" 00023 #ifdef USE_FULL_ASSERT 00024 #include "stm32_assert.h" 00025 #else 00026 #define assert_param(expr) ((void)0U) 00027 #endif /* USE_FULL_ASSERT */ 00028 00029 /** @addtogroup STM32H7xx_LL_Driver 00030 * @{ 00031 */ 00032 00033 #if defined(FMAC) 00034 00035 /** @addtogroup FMAC_LL 00036 * @{ 00037 */ 00038 00039 /* Private typedef -----------------------------------------------------------*/ 00040 /* Private defines -----------------------------------------------------------*/ 00041 /* Private macros ------------------------------------------------------------*/ 00042 /* Private variables ---------------------------------------------------------*/ 00043 /* Global variables ----------------------------------------------------------*/ 00044 /* Private function prototypes -----------------------------------------------*/ 00045 /* Functions Definition ------------------------------------------------------*/ 00046 /** @addtogroup FMAC_LL_Exported_Functions 00047 * @{ 00048 */ 00049 00050 /** @addtogroup FMAC_LL_EF_Init 00051 * @{ 00052 */ 00053 00054 /** 00055 * @brief Initialize FMAC peripheral registers to their default reset values. 00056 * @param FMACx FMAC Instance 00057 * @retval ErrorStatus enumeration value: 00058 * - SUCCESS: FMAC registers are initialized 00059 * - ERROR: FMAC registers are not initialized 00060 */ 00061 ErrorStatus LL_FMAC_Init(FMAC_TypeDef *FMACx) 00062 { 00063 ErrorStatus status = SUCCESS; 00064 00065 /* Check the parameters */ 00066 assert_param(IS_FMAC_ALL_INSTANCE(FMACx)); 00067 00068 if (FMACx == FMAC) 00069 { 00070 /* Perform the reset */ 00071 LL_FMAC_EnableReset(FMACx); 00072 00073 /* Wait until flag is reset */ 00074 while (LL_FMAC_IsEnabledReset(FMACx) != 0UL) 00075 { 00076 } 00077 } 00078 else 00079 { 00080 status = ERROR; 00081 } 00082 00083 return (status); 00084 } 00085 00086 /** 00087 * @brief De-Initialize FMAC peripheral registers to their default reset values. 00088 * @param FMACx FMAC Instance 00089 * @retval An ErrorStatus enumeration value: 00090 * - SUCCESS: FMAC registers are de-initialized 00091 * - ERROR: FMAC registers are not de-initialized 00092 */ 00093 ErrorStatus LL_FMAC_DeInit(FMAC_TypeDef *FMACx) 00094 { 00095 ErrorStatus status = SUCCESS; 00096 00097 /* Check the parameters */ 00098 assert_param(IS_FMAC_ALL_INSTANCE(FMACx)); 00099 00100 if (FMACx == FMAC) 00101 { 00102 /* Force FMAC reset */ 00103 LL_AHB2_GRP1_ForceReset(LL_AHB2_GRP1_PERIPH_FMAC); 00104 00105 /* Release FMAC reset */ 00106 LL_AHB2_GRP1_ReleaseReset(LL_AHB2_GRP1_PERIPH_FMAC); 00107 } 00108 else 00109 { 00110 status = ERROR; 00111 } 00112 00113 return (status); 00114 } 00115 00116 00117 00118 /** 00119 * @} 00120 */ 00121 00122 /** 00123 * @} 00124 */ 00125 00126 /** 00127 * @} 00128 */ 00129 00130 #endif /* defined(FMAC) */ 00131 00132 /** 00133 * @} 00134 */ 00135 00136 #endif /* USE_FULL_LL_DRIVER */