Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:09

0001 /**
0002   ******************************************************************************
0003   * @file    stm32h7xx_ll_fmac.c
0004   * @author  MCD Application Team
0005   * @brief   Header for stm32h7xx_ll_fmac.c module
0006   ******************************************************************************
0007   * @attention
0008   *
0009   * Copyright (c) 2017 STMicroelectronics.
0010   * All rights reserved.
0011   *
0012   * This software is licensed under terms that can be found in the LICENSE file
0013   * in the root directory of this software component.
0014   * If no LICENSE file comes with this software, it is provided AS-IS.
0015   *
0016   ******************************************************************************
0017   */
0018 #if defined(USE_FULL_LL_DRIVER) || defined(__rtems__)
0019 
0020 /* Includes ------------------------------------------------------------------*/
0021 #include "stm32h7xx_ll_fmac.h"
0022 #include "stm32h7xx_ll_bus.h"
0023 #ifdef USE_FULL_ASSERT
0024 #include "stm32_assert.h"
0025 #else
0026 #define assert_param(expr) ((void)0U)
0027 #endif /* USE_FULL_ASSERT */
0028 
0029 /** @addtogroup STM32H7xx_LL_Driver
0030   * @{
0031   */
0032 
0033 #if defined(FMAC)
0034 
0035 /** @addtogroup FMAC_LL
0036   * @{
0037   */
0038 
0039 /* Private typedef -----------------------------------------------------------*/
0040 /* Private defines -----------------------------------------------------------*/
0041 /* Private macros ------------------------------------------------------------*/
0042 /* Private variables ---------------------------------------------------------*/
0043 /* Global variables ----------------------------------------------------------*/
0044 /* Private function prototypes -----------------------------------------------*/
0045 /* Functions Definition ------------------------------------------------------*/
0046 /** @addtogroup FMAC_LL_Exported_Functions
0047   * @{
0048   */
0049 
0050 /** @addtogroup FMAC_LL_EF_Init
0051   * @{
0052   */
0053 
0054 /**
0055   * @brief  Initialize FMAC peripheral registers to their default reset values.
0056   * @param  FMACx FMAC Instance
0057   * @retval ErrorStatus enumeration value:
0058   *          - SUCCESS: FMAC registers are initialized
0059   *          - ERROR: FMAC registers are not initialized
0060   */
0061 ErrorStatus LL_FMAC_Init(FMAC_TypeDef *FMACx)
0062 {
0063   ErrorStatus status = SUCCESS;
0064 
0065   /* Check the parameters */
0066   assert_param(IS_FMAC_ALL_INSTANCE(FMACx));
0067 
0068   if (FMACx == FMAC)
0069   {
0070     /* Perform the reset */
0071     LL_FMAC_EnableReset(FMACx);
0072 
0073     /* Wait until flag is reset */
0074     while (LL_FMAC_IsEnabledReset(FMACx) != 0UL)
0075     {
0076     }
0077   }
0078   else
0079   {
0080     status = ERROR;
0081   }
0082 
0083   return (status);
0084 }
0085 
0086 /**
0087   * @brief  De-Initialize FMAC peripheral registers to their default reset values.
0088   * @param  FMACx FMAC Instance
0089   * @retval An ErrorStatus enumeration value:
0090   *          - SUCCESS: FMAC registers are de-initialized
0091   *          - ERROR: FMAC registers are not de-initialized
0092   */
0093 ErrorStatus LL_FMAC_DeInit(const FMAC_TypeDef *FMACx)
0094 {
0095   ErrorStatus status = SUCCESS;
0096 
0097   /* Check the parameters */
0098   assert_param(IS_FMAC_ALL_INSTANCE(FMACx));
0099 
0100   if (FMACx == FMAC)
0101   {
0102     /* Force FMAC reset */
0103     LL_AHB2_GRP1_ForceReset(LL_AHB2_GRP1_PERIPH_FMAC);
0104 
0105     /* Release FMAC reset */
0106     LL_AHB2_GRP1_ReleaseReset(LL_AHB2_GRP1_PERIPH_FMAC);
0107   }
0108   else
0109   {
0110     status = ERROR;
0111   }
0112 
0113   return (status);
0114 }
0115 
0116 
0117 
0118 /**
0119   * @}
0120   */
0121 
0122 /**
0123   * @}
0124   */
0125 
0126 /**
0127   * @}
0128   */
0129 
0130 #endif /* defined(FMAC) */
0131 
0132 /**
0133   * @}
0134   */
0135 
0136 #endif /* USE_FULL_LL_DRIVER */