stm32g4xx_ll_fmac.c 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. /**
  2. ******************************************************************************
  3. * @file stm32g4xx_ll_fmac.c
  4. * @author MCD Application Team
  5. * @brief Header for stm32g4xx_ll_fmac.c module
  6. ******************************************************************************
  7. * @attention
  8. *
  9. * Copyright (c) 2019 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. /* Includes ------------------------------------------------------------------*/
  20. #include "stm32g4xx_ll_fmac.h"
  21. #include "stm32g4xx_ll_bus.h"
  22. #ifdef USE_FULL_ASSERT
  23. #include "stm32_assert.h"
  24. #else
  25. #define assert_param(expr) ((void)0U)
  26. #endif /* USE_FULL_ASSERT */
  27. /** @addtogroup STM32G4xx_LL_Driver
  28. * @{
  29. */
  30. #if defined(FMAC)
  31. /** @addtogroup FMAC_LL
  32. * @{
  33. */
  34. /* Private typedef -----------------------------------------------------------*/
  35. /* Private defines -----------------------------------------------------------*/
  36. /* Private macros ------------------------------------------------------------*/
  37. /* Private variables ---------------------------------------------------------*/
  38. /* Global variables ----------------------------------------------------------*/
  39. /* Private function prototypes -----------------------------------------------*/
  40. /* Functions Definition ------------------------------------------------------*/
  41. /** @addtogroup FMAC_LL_Exported_Functions
  42. * @{
  43. */
  44. /** @addtogroup FMAC_LL_EF_Init
  45. * @{
  46. */
  47. /**
  48. * @brief Initialize FMAC peripheral registers to their default reset values.
  49. * @param FMACx FMAC Instance
  50. * @retval ErrorStatus enumeration value:
  51. * - SUCCESS: FMAC registers are initialized
  52. * - ERROR: FMAC registers are not initialized
  53. */
  54. ErrorStatus LL_FMAC_Init(FMAC_TypeDef *FMACx)
  55. {
  56. ErrorStatus status = SUCCESS;
  57. /* Check the parameters */
  58. assert_param(IS_FMAC_ALL_INSTANCE(FMACx));
  59. if (FMACx == FMAC)
  60. {
  61. /* Perform the reset */
  62. LL_FMAC_EnableReset(FMACx);
  63. /* Wait until flag is reset */
  64. while (LL_FMAC_IsEnabledReset(FMACx) != 0UL)
  65. {
  66. }
  67. }
  68. else
  69. {
  70. status = ERROR;
  71. }
  72. return (status);
  73. }
  74. /**
  75. * @brief De-Initialize FMAC peripheral registers to their default reset values.
  76. * @param FMACx FMAC Instance
  77. * @retval An ErrorStatus enumeration value:
  78. * - SUCCESS: FMAC registers are de-initialized
  79. * - ERROR: FMAC registers are not de-initialized
  80. */
  81. ErrorStatus LL_FMAC_DeInit(const FMAC_TypeDef *FMACx)
  82. {
  83. ErrorStatus status = SUCCESS;
  84. /* Check the parameters */
  85. assert_param(IS_FMAC_ALL_INSTANCE(FMACx));
  86. if (FMACx == FMAC)
  87. {
  88. /* Force FMAC reset */
  89. LL_AHB1_GRP1_ForceReset(LL_AHB1_GRP1_PERIPH_FMAC);
  90. /* Release FMAC reset */
  91. LL_AHB1_GRP1_ReleaseReset(LL_AHB1_GRP1_PERIPH_FMAC);
  92. }
  93. else
  94. {
  95. status = ERROR;
  96. }
  97. return (status);
  98. }
  99. /**
  100. * @}
  101. */
  102. /**
  103. * @}
  104. */
  105. /**
  106. * @}
  107. */
  108. #endif /* defined(FMAC) */
  109. /**
  110. * @}
  111. */
  112. #endif /* USE_FULL_LL_DRIVER */