STM32H735xx HAL User Manual
|
00001 /** 00002 ****************************************************************************** 00003 * @file stm32h7xx_hal_mdios.h 00004 * @author MCD Application Team 00005 * @brief Header file of MDIOS HAL 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 00019 /* Define to prevent recursive inclusion -------------------------------------*/ 00020 #ifndef STM32H7xx_HAL_MDIOS_H 00021 #define STM32H7xx_HAL_MDIOS_H 00022 00023 #ifdef __cplusplus 00024 extern "C" { 00025 #endif 00026 00027 00028 /* Includes ------------------------------------------------------------------*/ 00029 #include "stm32h7xx_hal_def.h" 00030 00031 #if defined (MDIOS) 00032 00033 /** @addtogroup STM32H7xx_HAL_Driver 00034 * @{ 00035 */ 00036 00037 /** @addtogroup MDIOS 00038 * @{ 00039 */ 00040 00041 /* Exported types ------------------------------------------------------------*/ 00042 /** @defgroup MDIOS_Exported_Types MDIOS Exported Types 00043 * @{ 00044 */ 00045 00046 /** @defgroup MDIOS_Exported_Types_Group1 MDIOS State structures definition 00047 * @{ 00048 */ 00049 00050 typedef enum 00051 { 00052 HAL_MDIOS_STATE_RESET = 0x00U, /*!< Peripheral not yet Initialized or disabled */ 00053 HAL_MDIOS_STATE_READY = 0x01U, /*!< Peripheral Initialized and ready for use */ 00054 HAL_MDIOS_STATE_BUSY = 0x02U, /*!< an internal process is ongoing */ 00055 HAL_MDIOS_STATE_ERROR = 0x04U /*!< Reception process is ongoing */ 00056 }HAL_MDIOS_StateTypeDef; 00057 00058 /** 00059 * @} 00060 */ 00061 00062 /** @defgroup MDIOS_Exported_Types_Group2 MDIOS Init Structure definition 00063 * @{ 00064 */ 00065 00066 typedef struct 00067 { 00068 uint32_t PortAddress; /*!< Specifies the MDIOS port address. 00069 This parameter can be a value from 0 to 31 */ 00070 uint32_t PreambleCheck; /*!< Specifies whether the preamble check is enabled or disabled. 00071 This parameter can be a value of @ref MDIOS_Preamble_Check */ 00072 }MDIOS_InitTypeDef; 00073 00074 /** 00075 * @} 00076 */ 00077 00078 /** @defgroup MDIOS_Exported_Types_Group4 MDIOS handle Structure definition 00079 * @{ 00080 */ 00081 00082 #if (USE_HAL_MDIOS_REGISTER_CALLBACKS == 1) 00083 typedef struct __MDIOS_HandleTypeDef 00084 #else 00085 typedef struct 00086 #endif 00087 { 00088 MDIOS_TypeDef *Instance; /*!< Register base address */ 00089 00090 MDIOS_InitTypeDef Init; /*!< MDIOS Init Structure */ 00091 00092 __IO HAL_MDIOS_StateTypeDef State; /*!< MDIOS communication state 00093 This parameter can be a value of of @ref HAL_MDIOS_StateTypeDef */ 00094 00095 __IO uint32_t ErrorCode; /*!< Holds the global Error code of the MDIOS HAL status machine 00096 This parameter can be a value of of @ref MDIOS_Error_Code */ 00097 00098 HAL_LockTypeDef Lock; /*!< MDIOS Lock */ 00099 00100 #if (USE_HAL_MDIOS_REGISTER_CALLBACKS == 1) 00101 00102 void (* WriteCpltCallback) ( struct __MDIOS_HandleTypeDef * hmdios); /*!< MDIOS Write Complete Callback */ 00103 void (* ReadCpltCallback) ( struct __MDIOS_HandleTypeDef * hmdios); /*!< MDIOS Read Complete Callback */ 00104 void (* ErrorCallback) ( struct __MDIOS_HandleTypeDef * hmdios); /*!< MDIOS Error Callback */ 00105 void (* WakeUpCallback) ( struct __MDIOS_HandleTypeDef * hmdios); /*!< MDIOS Wake UP Callback */ 00106 00107 void (* MspInitCallback) ( struct __MDIOS_HandleTypeDef * hmdios); /*!< MDIOS Msp Init callback */ 00108 void (* MspDeInitCallback) ( struct __MDIOS_HandleTypeDef * hmdios); /*!< MDIOS Msp DeInit callback */ 00109 00110 #endif /* USE_HAL_MDIOS_REGISTER_CALLBACKS */ 00111 }MDIOS_HandleTypeDef; 00112 00113 /** 00114 * @} 00115 */ 00116 00117 #if (USE_HAL_MDIOS_REGISTER_CALLBACKS == 1) 00118 /** 00119 * @brief HAL MDIOS Callback ID enumeration definition 00120 */ 00121 typedef enum 00122 { 00123 HAL_MDIOS_MSPINIT_CB_ID = 0x00U, /*!< MDIOS MspInit callback ID */ 00124 HAL_MDIOS_MSPDEINIT_CB_ID = 0x01U, /*!< MDIOS MspDeInit callback ID */ 00125 00126 HAL_MDIOS_WRITE_COMPLETE_CB_ID = 0x02U, /*!< MDIOS Write Complete Callback ID */ 00127 HAL_MDIOS_READ_COMPLETE_CB_ID = 0x03U, /*!< MDIOS Read Complete Callback ID */ 00128 HAL_MDIOS_ERROR_CB_ID = 0x04U, /*!< MDIOS Error Callback ID */ 00129 HAL_MDIOS_WAKEUP_CB_ID = 0x05U /*!< MDIOS Wake UP Callback ID */ 00130 }HAL_MDIOS_CallbackIDTypeDef; 00131 00132 /** 00133 * @brief HAL MDIOS Callback pointer definition 00134 */ 00135 typedef void (*pMDIOS_CallbackTypeDef)(MDIOS_HandleTypeDef * hmdios); /*!< pointer to an MDIOS callback function */ 00136 00137 #endif /* USE_HAL_MDIOS_REGISTER_CALLBACKS */ 00138 00139 /** 00140 * @} 00141 */ 00142 00143 /* Exported constants --------------------------------------------------------*/ 00144 /** @defgroup MDIOS_Exported_Constants MDIOS Exported Constants 00145 * @{ 00146 */ 00147 00148 /** @defgroup MDIOS_Preamble_Check MDIOS Preamble Check 00149 * @{ 00150 */ 00151 #define MDIOS_PREAMBLE_CHECK_ENABLE ((uint32_t)0x00000000U) 00152 #define MDIOS_PREAMBLE_CHECK_DISABLE MDIOS_CR_DPC 00153 /** 00154 * @} 00155 */ 00156 00157 /** @defgroup MDIOS_Input_Output_Registers_Definitions MDIOS Input Output Registers Definitions 00158 * @{ 00159 */ 00160 #define MDIOS_REG0 ((uint32_t)0x00000000U) 00161 #define MDIOS_REG1 ((uint32_t)0x00000001U) 00162 #define MDIOS_REG2 ((uint32_t)0x00000002U) 00163 #define MDIOS_REG3 ((uint32_t)0x00000003U) 00164 #define MDIOS_REG4 ((uint32_t)0x00000004U) 00165 #define MDIOS_REG5 ((uint32_t)0x00000005U) 00166 #define MDIOS_REG6 ((uint32_t)0x00000006U) 00167 #define MDIOS_REG7 ((uint32_t)0x00000007U) 00168 #define MDIOS_REG8 ((uint32_t)0x00000008U) 00169 #define MDIOS_REG9 ((uint32_t)0x00000009U) 00170 #define MDIOS_REG10 ((uint32_t)0x0000000AU) 00171 #define MDIOS_REG11 ((uint32_t)0x0000000BU) 00172 #define MDIOS_REG12 ((uint32_t)0x0000000CU) 00173 #define MDIOS_REG13 ((uint32_t)0x0000000DU) 00174 #define MDIOS_REG14 ((uint32_t)0x0000000EU) 00175 #define MDIOS_REG15 ((uint32_t)0x0000000FU) 00176 #define MDIOS_REG16 ((uint32_t)0x00000010U) 00177 #define MDIOS_REG17 ((uint32_t)0x00000011U) 00178 #define MDIOS_REG18 ((uint32_t)0x00000012U) 00179 #define MDIOS_REG19 ((uint32_t)0x00000013U) 00180 #define MDIOS_REG20 ((uint32_t)0x00000014U) 00181 #define MDIOS_REG21 ((uint32_t)0x00000015U) 00182 #define MDIOS_REG22 ((uint32_t)0x00000016U) 00183 #define MDIOS_REG23 ((uint32_t)0x00000017U) 00184 #define MDIOS_REG24 ((uint32_t)0x00000018U) 00185 #define MDIOS_REG25 ((uint32_t)0x00000019U) 00186 #define MDIOS_REG26 ((uint32_t)0x0000001AU) 00187 #define MDIOS_REG27 ((uint32_t)0x0000001BU) 00188 #define MDIOS_REG28 ((uint32_t)0x0000001CU) 00189 #define MDIOS_REG29 ((uint32_t)0x0000001DU) 00190 #define MDIOS_REG30 ((uint32_t)0x0000001EU) 00191 #define MDIOS_REG31 ((uint32_t)0x0000001FU) 00192 /** 00193 * @} 00194 */ 00195 00196 /** @defgroup MDIOS_Registers_Flags MDIOS Registers Flags 00197 * @{ 00198 */ 00199 #define MDIOS_REG0_FLAG ((uint32_t)0x00000001U) 00200 #define MDIOS_REG1_FLAG ((uint32_t)0x00000002U) 00201 #define MDIOS_REG2_FLAG ((uint32_t)0x00000004U) 00202 #define MDIOS_REG3_FLAG ((uint32_t)0x00000008U) 00203 #define MDIOS_REG4_FLAG ((uint32_t)0x00000010U) 00204 #define MDIOS_REG5_FLAG ((uint32_t)0x00000020U) 00205 #define MDIOS_REG6_FLAG ((uint32_t)0x00000040U) 00206 #define MDIOS_REG7_FLAG ((uint32_t)0x00000080U) 00207 #define MDIOS_REG8_FLAG ((uint32_t)0x00000100U) 00208 #define MDIOS_REG9_FLAG ((uint32_t)0x00000200U) 00209 #define MDIOS_REG10_FLAG ((uint32_t)0x00000400U) 00210 #define MDIOS_REG11_FLAG ((uint32_t)0x00000800U) 00211 #define MDIOS_REG12_FLAG ((uint32_t)0x00001000U) 00212 #define MDIOS_REG13_FLAG ((uint32_t)0x00002000U) 00213 #define MDIOS_REG14_FLAG ((uint32_t)0x00004000U) 00214 #define MDIOS_REG15_FLAG ((uint32_t)0x00008000U) 00215 #define MDIOS_REG16_FLAG ((uint32_t)0x00010000U) 00216 #define MDIOS_REG17_FLAG ((uint32_t)0x00020000U) 00217 #define MDIOS_REG18_FLAG ((uint32_t)0x00040000U) 00218 #define MDIOS_REG19_FLAG ((uint32_t)0x00080000U) 00219 #define MDIOS_REG20_FLAG ((uint32_t)0x00100000U) 00220 #define MDIOS_REG21_FLAG ((uint32_t)0x00200000U) 00221 #define MDIOS_REG22_FLAG ((uint32_t)0x00400000U) 00222 #define MDIOS_REG23_FLAG ((uint32_t)0x00800000U) 00223 #define MDIOS_REG24_FLAG ((uint32_t)0x01000000U) 00224 #define MDIOS_REG25_FLAG ((uint32_t)0x02000000U) 00225 #define MDIOS_REG26_FLAG ((uint32_t)0x04000000U) 00226 #define MDIOS_REG27_FLAG ((uint32_t)0x08000000U) 00227 #define MDIOS_REG28_FLAG ((uint32_t)0x10000000U) 00228 #define MDIOS_REG29_FLAG ((uint32_t)0x20000000U) 00229 #define MDIOS_REG30_FLAG ((uint32_t)0x40000000U) 00230 #define MDIOS_REG31_FLAG ((uint32_t)0x80000000U) 00231 #define MDIOS_ALLREG_FLAG ((uint32_t)0xFFFFFFFFU) 00232 /** 00233 * @} 00234 */ 00235 00236 /** @defgroup MDIOS_Interrupt_sources Interrupt Sources 00237 * @{ 00238 */ 00239 #define MDIOS_IT_WRITE MDIOS_CR_WRIE 00240 #define MDIOS_IT_READ MDIOS_CR_RDIE 00241 #define MDIOS_IT_ERROR MDIOS_CR_EIE 00242 /** 00243 * @} 00244 */ 00245 00246 /** @defgroup MDIOS_Interrupt_Flags MDIOS Interrupt Flags 00247 * @{ 00248 */ 00249 #define MDIOS_TURNAROUND_ERROR_FLAG MDIOS_SR_TERF 00250 #define MDIOS_START_ERROR_FLAG MDIOS_SR_SERF 00251 #define MDIOS_PREAMBLE_ERROR_FLAG MDIOS_SR_PERF 00252 /** 00253 * @} 00254 */ 00255 00256 /** @defgroup MDIOS_Error_Code MDIOS Error Code 00257 * @{ 00258 */ 00259 #define HAL_MDIOS_ERROR_NONE ((uint32_t)0x00000000U) /*!< No error */ 00260 #define HAL_MDIOS_ERROR_PARAM ((uint32_t)0x00000001U) /*!< Busy error */ 00261 #define HAL_MDIOS_ERROR_BUSY ((uint32_t)0x00000002U) /*!< Parameter error */ 00262 #define HAL_MDIOS_ERROR_TIMEOUT ((uint32_t)0x00000004U) /*!< Timeout error */ 00263 #define HAL_MDIOS_ERROR_DATA ((uint32_t)0x00000010U) /*!< Data transfer error */ 00264 #if (USE_HAL_MDIOS_REGISTER_CALLBACKS == 1) 00265 #define HAL_MDIOS_ERROR_INVALID_CALLBACK ((uint32_t)0x00000020U) /*!< Invalid Callback error */ 00266 #endif /* USE_HAL_MDIOS_REGISTER_CALLBACKS */ 00267 /** 00268 * @} 00269 */ 00270 00271 /** @defgroup MDIOS_Wakeup_Line MDIOS Wakeup Line 00272 * @{ 00273 */ 00274 #define MDIOS_WAKEUP_EXTI_LINE ((uint32_t)0x00000400) /* !< 42 - 32 = 10 */ 00275 /** 00276 * @} 00277 */ 00278 00279 /** 00280 * @} 00281 */ 00282 /* Exported macros -----------------------------------------------------------*/ 00283 /** @defgroup MDIOS_Exported_Macros MDIOS Exported Macros 00284 * @{ 00285 */ 00286 00287 /** @brief Reset MDIOS handle state 00288 * @param __HANDLE__: MDIOS handle. 00289 * @retval None 00290 */ 00291 #if (USE_HAL_MDIOS_REGISTER_CALLBACKS == 1) 00292 #define __HAL_MDIOS_RESET_HANDLE_STATE(__HANDLE__) do{ \ 00293 (__HANDLE__)->State = HAL_MDIOS_STATE_RESET; \ 00294 (__HANDLE__)->MspInitCallback = NULL; \ 00295 (__HANDLE__)->MspDeInitCallback = NULL; \ 00296 } while(0) 00297 #else 00298 #define __HAL_MDIOS_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_MDIOS_STATE_RESET) 00299 #endif /*USE_HAL_MDIOS_REGISTER_CALLBACKS */ 00300 00301 /** 00302 * @brief Enable/Disable the MDIOS peripheral. 00303 * @param __HANDLE__: specifies the MDIOS handle. 00304 * @retval None 00305 */ 00306 #define __HAL_MDIOS_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= MDIOS_CR_EN) 00307 #define __HAL_MDIOS_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~MDIOS_CR_EN) 00308 00309 00310 /** 00311 * @brief Enable the MDIOS device interrupt. 00312 * @param __HANDLE__: specifies the MDIOS handle. 00313 * @param __INTERRUPT__ : specifies the MDIOS interrupt sources to be enabled. 00314 * This parameter can be one or a combination of the following values: 00315 * @arg MDIOS_IT_WRITE: Register write interrupt 00316 * @arg MDIOS_IT_READ: Register read interrupt 00317 * @arg MDIOS_IT_ERROR: Error interrupt 00318 * @retval None 00319 */ 00320 #define __HAL_MDIOS_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__)) 00321 00322 /** 00323 * @brief Disable the MDIOS device interrupt. 00324 * @param __HANDLE__: specifies the MDIOS handle. 00325 * @param __INTERRUPT__ : specifies the MDIOS interrupt sources to be disabled. 00326 * This parameter can be one or a combination of the following values: 00327 * @arg MDIOS_IT_WRITE: Register write interrupt 00328 * @arg MDIOS_IT_READ: Register read interrupt 00329 * @arg MDIOS_IT_ERROR: Error interrupt 00330 * @retval None 00331 */ 00332 #define __HAL_MDIOS_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__)) 00333 00334 /** @brief Set MDIOS slave get write register flag 00335 * @param __HANDLE__: specifies the MDIOS handle. 00336 * @param __FLAG__: specifies the write register flag 00337 * @retval The state of write flag 00338 */ 00339 #define __HAL_MDIOS_GET_WRITE_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->WRFR & (__FLAG__)) 00340 00341 /** @brief MDIOS slave get read register flag 00342 * @param __HANDLE__: specifies the MDIOS handle. 00343 * @param __FLAG__: specifies the read register flag 00344 * @retval The state of read flag 00345 */ 00346 #define __HAL_MDIOS_GET_READ_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->RDFR & (__FLAG__)) 00347 00348 /** @brief MDIOS slave get interrupt 00349 * @param __HANDLE__: specifies the MDIOS handle. 00350 * @param __FLAG__ : specifies the Error flag. 00351 * This parameter can be one or a combination of the following values: 00352 * @arg MDIOS_TURNARROUND_ERROR_FLAG: Register write interrupt 00353 * @arg MDIOS_START_ERROR_FLAG: Register read interrupt 00354 * @arg MDIOS_PREAMBLE_ERROR_FLAG: Error interrupt 00355 * @retval The state of the error flag 00356 */ 00357 #define __HAL_MDIOS_GET_ERROR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->SR & (__FLAG__)) 00358 00359 /** @brief MDIOS slave clear interrupt 00360 * @param __HANDLE__: specifies the MDIOS handle. 00361 * @param __FLAG__ : specifies the Error flag. 00362 * This parameter can be one or a combination of the following values: 00363 * @arg MDIOS_TURNARROUND_ERROR_FLAG: Register write interrupt 00364 * @arg MDIOS_START_ERROR_FLAG: Register read interrupt 00365 * @arg MDIOS_PREAMBLE_ERROR_FLAG: Error interrupt 00366 * @retval none 00367 */ 00368 #define __HAL_MDIOS_CLEAR_ERROR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->CLRFR) |= (__FLAG__) 00369 00370 /** 00371 * @brief Checks whether the specified MDIOS interrupt is set or not. 00372 * @param __HANDLE__: specifies the MDIOS handle. 00373 * @param __INTERRUPT__ : specifies the MDIOS interrupt sources 00374 * This parameter can be one or a combination of the following values: 00375 * @arg MDIOS_IT_WRITE: Register write interrupt 00376 * @arg MDIOS_IT_READ: Register read interrupt 00377 * @arg MDIOS_IT_ERROR: Error interrupt 00378 * @retval The state of the interrupt source 00379 */ 00380 #define __HAL_MDIOS_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR & (__INTERRUPT__)) 00381 00382 /** 00383 * @brief Enable the MDIOS WAKEUP Exti Line. 00384 * @param __EXTI_LINE__: specifies the MDIOS WAKEUP Exti sources to be enabled. 00385 * This parameter can be: 00386 * @arg MDIOS_WAKEUP_EXTI_LINE 00387 * @retval None. 00388 */ 00389 #define __HAL_MDIOS_WAKEUP_EXTI_ENABLE_IT(__EXTI_LINE__) (EXTI->IMR2 |= (__EXTI_LINE__)) 00390 00391 #if defined(DUAL_CORE) 00392 /** 00393 * @brief Enable the MDIOS WAKEUP Exti Line by Domain2. 00394 * @param __EXTI_LINE__: specifies the MDIOS WAKEUP Exti sources to be enabled. 00395 * This parameter can be: 00396 * @arg MDIOS_WAKEUP_EXTI_LINE 00397 * @retval None. 00398 */ 00399 #define __HAL_MDIOS_WAKEUP_EXTID2_ENABLE_IT(__EXTI_LINE__) (EXTI->C2IMR2 |= (__EXTI_LINE__)) 00400 00401 #endif 00402 /** 00403 * @brief checks whether the specified MDIOS WAKEUP Exti interrupt flag is set or not. 00404 * @param __EXTI_LINE__: specifies the MDIOS WAKEUP Exti sources to be cleared. 00405 * This parameter can be: 00406 * @arg MDIOS_WAKEUP_EXTI_LINE 00407 * @retval EXTI MDIOS WAKEUP Line Status. 00408 */ 00409 #define __HAL_MDIOS_WAKEUP_EXTI_GET_FLAG(__EXTI_LINE__) (EXTI->PR2 & (__EXTI_LINE__)) 00410 00411 #if defined(DUAL_CORE) 00412 /** 00413 * @brief checks whether the specified MDIOS WAKEUP Exti interrupt flag is set or not. 00414 * @param __EXTI_LINE__: specifies the MDIOS WAKEUP Exti sources to be cleared. 00415 * This parameter can be: 00416 * @arg MDIOS_WAKEUP_EXTI_LINE 00417 * @retval EXTI MDIOS WAKEUP Line Status. 00418 */ 00419 #define __HAL_MDIOS_WAKEUP_EXTID2_GET_FLAG(__EXTI_LINE__) (EXTI->C2PR2 & (__EXTI_LINE__)) 00420 #endif 00421 /** 00422 * @brief Clear the MDIOS WAKEUP Exti flag. 00423 * @param __EXTI_LINE__: specifies the MDIOS WAKEUP Exti sources to be cleared. 00424 * This parameter can be: 00425 * @arg MDIOS_WAKEUP_EXTI_LINE 00426 * @retval None. 00427 */ 00428 #define __HAL_MDIOS_WAKEUP_EXTI_CLEAR_FLAG(__EXTI_LINE__) (EXTI->PR2 = (__EXTI_LINE__)) 00429 00430 #if defined(DUAL_CORE) 00431 /** 00432 * @brief Clear the MDIOS WAKEUP Exti flag. 00433 * @param __EXTI_LINE__: specifies the MDIOS WAKEUP Exti sources to be cleared. 00434 * This parameter can be: 00435 * @arg MDIOS_WAKEUP_EXTI_LINE 00436 * @retval None. 00437 */ 00438 #define __HAL_MDIOS_WAKEUP_EXTID2_CLEAR_FLAG(__EXTI_LINE__) (EXTI->C2PR2 = (__EXTI_LINE__)) 00439 00440 #endif 00441 /** 00442 * @brief enable rising edge interrupt on selected EXTI line. 00443 * @param __EXTI_LINE__: specifies the MDIOS WAKEUP EXTI sources to be disabled. 00444 * This parameter can be: 00445 * @arg MDIOS_WAKEUP_EXTI_LINE 00446 * @retval None 00447 */ 00448 #define __HAL_MDIOS_WAKEUP_EXTI_ENABLE_RISING_EDGE(__EXTI_LINE__) (EXTI->FTSR2 &= ~(__EXTI_LINE__)); \ 00449 (EXTI->RTSR2 |= (__EXTI_LINE__)) 00450 00451 /** 00452 * @brief enable falling edge interrupt on selected EXTI line. 00453 * @param __EXTI_LINE__: specifies the MDIOS WAKEUP EXTI sources to be disabled. 00454 * This parameter can be: 00455 * @arg MDIOS_WAKEUP_EXTI_LINE 00456 * @retval None 00457 */ 00458 #define __HAL_MDIOS_WAKEUP_EXTI_ENABLE_FALLING_EDGE(__EXTI_LINE__) (EXTI->RTSR2 &= ~(__EXTI_LINE__));\ 00459 (EXTI->FTSR2 |= (__EXTI_LINE__)) 00460 00461 /** 00462 * @brief enable falling edge interrupt on selected EXTI line. 00463 * @param __EXTI_LINE__: specifies the MDIOS WAKEUP EXTI sources to be disabled. 00464 * This parameter can be: 00465 * @arg MDIOS_WAKEUP_EXTI_LINE 00466 * @retval None 00467 */ 00468 #define __HAL_MDIOS_WAKEUP_EXTI_ENABLE_RISING_FALLING_EDGE(__EXTI_LINE__) (EXTI->RTSR2 |= (__EXTI_LINE__));\ 00469 (EXTI->FTSR2 |= (__EXTI_LINE__)) 00470 00471 /** 00472 * @brief Generates a Software interrupt on selected EXTI line. 00473 * @param __EXTI_LINE__: specifies the MDIOS WAKEUP EXTI sources to be disabled. 00474 * This parameter can be: 00475 * @arg MDIOS_WAKEUP_EXTI_LINE 00476 * @retval None 00477 */ 00478 #define __HAL_MDIOS_WAKEUP_EXTI_GENERATE_SWIT(__EXTI_LINE__) (EXTI->SWIER2 |= (__EXTI_LINE__)) 00479 00480 /** 00481 * @} 00482 */ 00483 00484 /* Exported functions --------------------------------------------------------*/ 00485 /** @defgroup MDIOS_Exported_Functions MDIOS Exported Functions 00486 * @{ 00487 */ 00488 00489 /** @addtogroup MDIOS_Exported_Functions_Group1 00490 * @{ 00491 */ 00492 HAL_StatusTypeDef HAL_MDIOS_Init(MDIOS_HandleTypeDef *hmdios); 00493 HAL_StatusTypeDef HAL_MDIOS_DeInit(MDIOS_HandleTypeDef *hmdios); 00494 void HAL_MDIOS_MspInit(MDIOS_HandleTypeDef *hmdios); 00495 void HAL_MDIOS_MspDeInit(MDIOS_HandleTypeDef *hmdios); 00496 00497 /* Callbacks Register/UnRegister functions ***********************************/ 00498 #if (USE_HAL_MDIOS_REGISTER_CALLBACKS == 1) 00499 HAL_StatusTypeDef HAL_MDIOS_RegisterCallback(MDIOS_HandleTypeDef *hmdios, HAL_MDIOS_CallbackIDTypeDef CallbackID, pMDIOS_CallbackTypeDef pCallback); 00500 HAL_StatusTypeDef HAL_MDIOS_UnRegisterCallback(MDIOS_HandleTypeDef *hmdios, HAL_MDIOS_CallbackIDTypeDef CallbackID); 00501 #endif /* USE_HAL_MDIOS_REGISTER_CALLBACKS */ 00502 /** 00503 * @} 00504 */ 00505 00506 /** @addtogroup MDIOS_Exported_Functions_Group2 00507 * @{ 00508 */ 00509 HAL_StatusTypeDef HAL_MDIOS_WriteReg(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum, uint16_t Data); 00510 HAL_StatusTypeDef HAL_MDIOS_ReadReg(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum, uint16_t *pData); 00511 00512 uint32_t HAL_MDIOS_GetWrittenRegAddress(MDIOS_HandleTypeDef *hmdios); 00513 uint32_t HAL_MDIOS_GetReadRegAddress(MDIOS_HandleTypeDef *hmdios); 00514 HAL_StatusTypeDef HAL_MDIOS_ClearWriteRegAddress(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum); 00515 HAL_StatusTypeDef HAL_MDIOS_ClearReadRegAddress(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum); 00516 00517 HAL_StatusTypeDef HAL_MDIOS_EnableEvents(MDIOS_HandleTypeDef *hmdios); 00518 void HAL_MDIOS_IRQHandler(MDIOS_HandleTypeDef *hmdios); 00519 void HAL_MDIOS_WriteCpltCallback(MDIOS_HandleTypeDef *hmdios); 00520 void HAL_MDIOS_ReadCpltCallback(MDIOS_HandleTypeDef *hmdios); 00521 void HAL_MDIOS_ErrorCallback(MDIOS_HandleTypeDef *hmdios); 00522 void HAL_MDIOS_WakeUpCallback(MDIOS_HandleTypeDef *hmdios); 00523 /** 00524 * @} 00525 */ 00526 00527 /** @addtogroup MDIOS_Exported_Functions_Group3 00528 * @{ 00529 */ 00530 uint32_t HAL_MDIOS_GetError(MDIOS_HandleTypeDef *hmdios); 00531 HAL_MDIOS_StateTypeDef HAL_MDIOS_GetState(MDIOS_HandleTypeDef *hmdios); 00532 /** 00533 * @} 00534 */ 00535 00536 /** 00537 * @} 00538 */ 00539 00540 /* Private types -------------------------------------------------------------*/ 00541 /** @defgroup MDIOS_Private_Types MDIOS Private Types 00542 * @{ 00543 */ 00544 00545 /** 00546 * @} 00547 */ 00548 00549 /* Private variables ---------------------------------------------------------*/ 00550 /** @defgroup MDIOS_Private_Variables MDIOS Private Variables 00551 * @{ 00552 */ 00553 00554 /** 00555 * @} 00556 */ 00557 00558 /* Private constants ---------------------------------------------------------*/ 00559 /** @defgroup MDIOS_Private_Constants MDIOS Private Constants 00560 * @{ 00561 */ 00562 00563 /** 00564 * @} 00565 */ 00566 00567 /* Private macros ------------------------------------------------------------*/ 00568 /** @defgroup MDIOS_Private_Macros MDIOS Private Macros 00569 * @{ 00570 */ 00571 00572 #define IS_MDIOS_PORTADDRESS(__ADDR__) ((__ADDR__) < 32U) 00573 00574 #define IS_MDIOS_REGISTER(__REGISTER__) ((__REGISTER__) < 32U) 00575 00576 #define IS_MDIOS_PREAMBLECHECK(__PREAMBLECHECK__) (((__PREAMBLECHECK__) == MDIOS_PREAMBLE_CHECK_ENABLE) || \ 00577 ((__PREAMBLECHECK__) == MDIOS_PREAMBLE_CHECK_DISABLE)) 00578 00579 /** 00580 * @} 00581 */ 00582 00583 /* Private functions ---------------------------------------------------------*/ 00584 /** @defgroup MDIOS_Private_Functions MDIOS Private Functions 00585 * @{ 00586 */ 00587 00588 /** 00589 * @} 00590 */ 00591 00592 00593 /** 00594 * @} 00595 */ 00596 00597 /** 00598 * @} 00599 */ 00600 00601 #endif /* MDIOS */ 00602 00603 #ifdef __cplusplus 00604 } 00605 #endif 00606 00607 #endif /* STM32H7xx_HAL_MDIOS_H */ 00608