STM32H735xx HAL User Manual
stm32h7xx_ll_fmac.c
Go to the documentation of this file.
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 */