1 /** 2 ****************************************************************************** 3 * @file stm32h7rsxx_hal_mdios.h 4 * @author MCD Application Team 5 * @brief Header file of MDIOS HAL module. 6 ****************************************************************************** 7 * @attention 8 * 9 * Copyright (c) 2017 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 19 /* Define to prevent recursive inclusion -------------------------------------*/ 20 #ifndef STM32H7RSxx_HAL_MDIOS_H 21 #define STM32H7RSxx_HAL_MDIOS_H 22 23 #ifdef __cplusplus 24 extern "C" { 25 #endif 26 27 28 /* Includes ------------------------------------------------------------------*/ 29 #include "stm32h7rsxx_hal_def.h" 30 31 #if defined (MDIOS) 32 33 /** @addtogroup STM32H7RSxx_HAL_Driver 34 * @{ 35 */ 36 37 /** @addtogroup MDIOS 38 * @{ 39 */ 40 41 /* Exported types ------------------------------------------------------------*/ 42 /** @defgroup MDIOS_Exported_Types MDIOS Exported Types 43 * @{ 44 */ 45 46 /** @defgroup MDIOS_Exported_Types_Group1 MDIOS State structures definition 47 * @{ 48 */ 49 50 typedef enum 51 { 52 HAL_MDIOS_STATE_RESET = 0x00U, /*!< Peripheral not yet Initialized or disabled */ 53 HAL_MDIOS_STATE_READY = 0x01U, /*!< Peripheral Initialized and ready for use */ 54 HAL_MDIOS_STATE_BUSY = 0x02U, /*!< an internal process is ongoing */ 55 HAL_MDIOS_STATE_ERROR = 0x04U /*!< Reception process is ongoing */ 56 } HAL_MDIOS_StateTypeDef; 57 58 /** 59 * @} 60 */ 61 62 /** @defgroup MDIOS_Exported_Types_Group2 MDIOS Init Structure definition 63 * @{ 64 */ 65 66 typedef struct 67 { 68 uint32_t PortAddress; /*!< Specifies the MDIOS port address. 69 This parameter can be a value from 0 to 31 */ 70 uint32_t PreambleCheck; /*!< Specifies whether the preamble check is enabled or disabled. 71 This parameter can be a value of @ref MDIOS_Preamble_Check */ 72 } MDIOS_InitTypeDef; 73 74 /** 75 * @} 76 */ 77 78 /** @defgroup MDIOS_Exported_Types_Group4 MDIOS handle Structure definition 79 * @{ 80 */ 81 82 #if (USE_HAL_MDIOS_REGISTER_CALLBACKS == 1) 83 typedef struct __MDIOS_HandleTypeDef 84 #else 85 typedef struct 86 #endif 87 { 88 MDIOS_TypeDef *Instance; /*!< Register base address */ 89 90 MDIOS_InitTypeDef Init; /*!< MDIOS Init Structure */ 91 92 __IO HAL_MDIOS_StateTypeDef State; /*!< MDIOS communication state 93 This parameter can be a value of of @ref HAL_MDIOS_StateTypeDef */ 94 95 __IO uint32_t ErrorCode; /*!< Holds the global Error code of the MDIOS HAL status machine 96 This parameter can be a value of of @ref MDIOS_Error_Code */ 97 98 HAL_LockTypeDef Lock; /*!< MDIOS Lock */ 99 100 #if (USE_HAL_MDIOS_REGISTER_CALLBACKS == 1) 101 102 void (* WriteCpltCallback)(struct __MDIOS_HandleTypeDef *hmdios); /*!< MDIOS Write Complete Callback */ 103 void (* ReadCpltCallback)(struct __MDIOS_HandleTypeDef *hmdios); /*!< MDIOS Read Complete Callback */ 104 void (* ErrorCallback)(struct __MDIOS_HandleTypeDef *hmdios); /*!< MDIOS Error Callback */ 105 void (* WakeUpCallback)(struct __MDIOS_HandleTypeDef *hmdios); /*!< MDIOS Wake UP Callback */ 106 107 void (* MspInitCallback)(struct __MDIOS_HandleTypeDef *hmdios); /*!< MDIOS Msp Init callback */ 108 void (* MspDeInitCallback)(struct __MDIOS_HandleTypeDef *hmdios); /*!< MDIOS Msp DeInit callback */ 109 110 #endif /* USE_HAL_MDIOS_REGISTER_CALLBACKS */ 111 } MDIOS_HandleTypeDef; 112 113 /** 114 * @} 115 */ 116 117 #if (USE_HAL_MDIOS_REGISTER_CALLBACKS == 1) 118 /** 119 * @brief HAL MDIOS Callback ID enumeration definition 120 */ 121 typedef enum 122 { 123 HAL_MDIOS_MSPINIT_CB_ID = 0x00U, /*!< MDIOS MspInit callback ID */ 124 HAL_MDIOS_MSPDEINIT_CB_ID = 0x01U, /*!< MDIOS MspDeInit callback ID */ 125 126 HAL_MDIOS_WRITE_COMPLETE_CB_ID = 0x02U, /*!< MDIOS Write Complete Callback ID */ 127 HAL_MDIOS_READ_COMPLETE_CB_ID = 0x03U, /*!< MDIOS Read Complete Callback ID */ 128 HAL_MDIOS_ERROR_CB_ID = 0x04U, /*!< MDIOS Error Callback ID */ 129 HAL_MDIOS_WAKEUP_CB_ID = 0x05U /*!< MDIOS Wake UP Callback ID */ 130 } HAL_MDIOS_CallbackIDTypeDef; 131 132 /** 133 * @brief HAL MDIOS Callback pointer definition 134 */ 135 typedef void (*pMDIOS_CallbackTypeDef)(MDIOS_HandleTypeDef *hmdios); /*!< pointer to an MDIOS callback function */ 136 137 #endif /* USE_HAL_MDIOS_REGISTER_CALLBACKS */ 138 139 /** 140 * @} 141 */ 142 143 /* Exported constants --------------------------------------------------------*/ 144 /** @defgroup MDIOS_Exported_Constants MDIOS Exported Constants 145 * @{ 146 */ 147 148 /** @defgroup MDIOS_Preamble_Check MDIOS Preamble Check 149 * @{ 150 */ 151 #define MDIOS_PREAMBLE_CHECK_ENABLE ((uint32_t)0x00000000U) 152 #define MDIOS_PREAMBLE_CHECK_DISABLE MDIOS_CR_DPC 153 /** 154 * @} 155 */ 156 157 /** @defgroup MDIOS_Input_Output_Registers_Definitions MDIOS Input Output Registers Definitions 158 * @{ 159 */ 160 #define MDIOS_REG0 ((uint32_t)0x00000000U) 161 #define MDIOS_REG1 ((uint32_t)0x00000001U) 162 #define MDIOS_REG2 ((uint32_t)0x00000002U) 163 #define MDIOS_REG3 ((uint32_t)0x00000003U) 164 #define MDIOS_REG4 ((uint32_t)0x00000004U) 165 #define MDIOS_REG5 ((uint32_t)0x00000005U) 166 #define MDIOS_REG6 ((uint32_t)0x00000006U) 167 #define MDIOS_REG7 ((uint32_t)0x00000007U) 168 #define MDIOS_REG8 ((uint32_t)0x00000008U) 169 #define MDIOS_REG9 ((uint32_t)0x00000009U) 170 #define MDIOS_REG10 ((uint32_t)0x0000000AU) 171 #define MDIOS_REG11 ((uint32_t)0x0000000BU) 172 #define MDIOS_REG12 ((uint32_t)0x0000000CU) 173 #define MDIOS_REG13 ((uint32_t)0x0000000DU) 174 #define MDIOS_REG14 ((uint32_t)0x0000000EU) 175 #define MDIOS_REG15 ((uint32_t)0x0000000FU) 176 #define MDIOS_REG16 ((uint32_t)0x00000010U) 177 #define MDIOS_REG17 ((uint32_t)0x00000011U) 178 #define MDIOS_REG18 ((uint32_t)0x00000012U) 179 #define MDIOS_REG19 ((uint32_t)0x00000013U) 180 #define MDIOS_REG20 ((uint32_t)0x00000014U) 181 #define MDIOS_REG21 ((uint32_t)0x00000015U) 182 #define MDIOS_REG22 ((uint32_t)0x00000016U) 183 #define MDIOS_REG23 ((uint32_t)0x00000017U) 184 #define MDIOS_REG24 ((uint32_t)0x00000018U) 185 #define MDIOS_REG25 ((uint32_t)0x00000019U) 186 #define MDIOS_REG26 ((uint32_t)0x0000001AU) 187 #define MDIOS_REG27 ((uint32_t)0x0000001BU) 188 #define MDIOS_REG28 ((uint32_t)0x0000001CU) 189 #define MDIOS_REG29 ((uint32_t)0x0000001DU) 190 #define MDIOS_REG30 ((uint32_t)0x0000001EU) 191 #define MDIOS_REG31 ((uint32_t)0x0000001FU) 192 /** 193 * @} 194 */ 195 196 /** @defgroup MDIOS_Registers_Flags MDIOS Registers Flags 197 * @{ 198 */ 199 #define MDIOS_REG0_FLAG ((uint32_t)0x00000001U) 200 #define MDIOS_REG1_FLAG ((uint32_t)0x00000002U) 201 #define MDIOS_REG2_FLAG ((uint32_t)0x00000004U) 202 #define MDIOS_REG3_FLAG ((uint32_t)0x00000008U) 203 #define MDIOS_REG4_FLAG ((uint32_t)0x00000010U) 204 #define MDIOS_REG5_FLAG ((uint32_t)0x00000020U) 205 #define MDIOS_REG6_FLAG ((uint32_t)0x00000040U) 206 #define MDIOS_REG7_FLAG ((uint32_t)0x00000080U) 207 #define MDIOS_REG8_FLAG ((uint32_t)0x00000100U) 208 #define MDIOS_REG9_FLAG ((uint32_t)0x00000200U) 209 #define MDIOS_REG10_FLAG ((uint32_t)0x00000400U) 210 #define MDIOS_REG11_FLAG ((uint32_t)0x00000800U) 211 #define MDIOS_REG12_FLAG ((uint32_t)0x00001000U) 212 #define MDIOS_REG13_FLAG ((uint32_t)0x00002000U) 213 #define MDIOS_REG14_FLAG ((uint32_t)0x00004000U) 214 #define MDIOS_REG15_FLAG ((uint32_t)0x00008000U) 215 #define MDIOS_REG16_FLAG ((uint32_t)0x00010000U) 216 #define MDIOS_REG17_FLAG ((uint32_t)0x00020000U) 217 #define MDIOS_REG18_FLAG ((uint32_t)0x00040000U) 218 #define MDIOS_REG19_FLAG ((uint32_t)0x00080000U) 219 #define MDIOS_REG20_FLAG ((uint32_t)0x00100000U) 220 #define MDIOS_REG21_FLAG ((uint32_t)0x00200000U) 221 #define MDIOS_REG22_FLAG ((uint32_t)0x00400000U) 222 #define MDIOS_REG23_FLAG ((uint32_t)0x00800000U) 223 #define MDIOS_REG24_FLAG ((uint32_t)0x01000000U) 224 #define MDIOS_REG25_FLAG ((uint32_t)0x02000000U) 225 #define MDIOS_REG26_FLAG ((uint32_t)0x04000000U) 226 #define MDIOS_REG27_FLAG ((uint32_t)0x08000000U) 227 #define MDIOS_REG28_FLAG ((uint32_t)0x10000000U) 228 #define MDIOS_REG29_FLAG ((uint32_t)0x20000000U) 229 #define MDIOS_REG30_FLAG ((uint32_t)0x40000000U) 230 #define MDIOS_REG31_FLAG ((uint32_t)0x80000000U) 231 #define MDIOS_ALLREG_FLAG ((uint32_t)0xFFFFFFFFU) 232 /** 233 * @} 234 */ 235 236 /** @defgroup MDIOS_Interrupt_sources Interrupt Sources 237 * @{ 238 */ 239 #define MDIOS_IT_WRITE MDIOS_CR_WRIE 240 #define MDIOS_IT_READ MDIOS_CR_RDIE 241 #define MDIOS_IT_ERROR MDIOS_CR_EIE 242 /** 243 * @} 244 */ 245 246 /** @defgroup MDIOS_Interrupt_Flags MDIOS Interrupt Flags 247 * @{ 248 */ 249 #define MDIOS_TURNAROUND_ERROR_FLAG MDIOS_SR_TERF 250 #define MDIOS_START_ERROR_FLAG MDIOS_SR_SERF 251 #define MDIOS_PREAMBLE_ERROR_FLAG MDIOS_SR_PERF 252 /** 253 * @} 254 */ 255 256 /** @defgroup MDIOS_Error_Code MDIOS Error Code 257 * @{ 258 */ 259 #define HAL_MDIOS_ERROR_NONE ((uint32_t)0x00000000U) /*!< No error */ 260 #define HAL_MDIOS_ERROR_PARAM ((uint32_t)0x00000001U) /*!< Busy error */ 261 #define HAL_MDIOS_ERROR_BUSY ((uint32_t)0x00000002U) /*!< Parameter error */ 262 #define HAL_MDIOS_ERROR_TIMEOUT ((uint32_t)0x00000004U) /*!< Timeout error */ 263 #define HAL_MDIOS_ERROR_DATA ((uint32_t)0x00000010U) /*!< Data transfer error */ 264 #if (USE_HAL_MDIOS_REGISTER_CALLBACKS == 1) 265 #define HAL_MDIOS_ERROR_INVALID_CALLBACK ((uint32_t)0x00000020U) /*!< Invalid Callback error */ 266 #endif /* USE_HAL_MDIOS_REGISTER_CALLBACKS */ 267 /** 268 * @} 269 */ 270 271 /** @defgroup MDIOS_Wakeup_Line MDIOS Wakeup Line 272 * @{ 273 */ 274 #define MDIOS_WAKEUP_EXTI_LINE ((uint32_t)0x00000400) /* !< 42 - 32 = 10 */ 275 /** 276 * @} 277 */ 278 279 /** 280 * @} 281 */ 282 /* Exported macros -----------------------------------------------------------*/ 283 /** @defgroup MDIOS_Exported_Macros MDIOS Exported Macros 284 * @{ 285 */ 286 287 /** @brief Reset MDIOS handle state 288 * @param __HANDLE__: MDIOS handle. 289 * @retval None 290 */ 291 #if (USE_HAL_MDIOS_REGISTER_CALLBACKS == 1) 292 #define __HAL_MDIOS_RESET_HANDLE_STATE(__HANDLE__) do{ \ 293 (__HANDLE__)->State = HAL_MDIOS_STATE_RESET; \ 294 (__HANDLE__)->MspInitCallback = NULL; \ 295 (__HANDLE__)->MspDeInitCallback = NULL; \ 296 } while(0) 297 #else 298 #define __HAL_MDIOS_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_MDIOS_STATE_RESET) 299 #endif /*USE_HAL_MDIOS_REGISTER_CALLBACKS */ 300 301 /** 302 * @brief Enable/Disable the MDIOS peripheral. 303 * @param __HANDLE__: specifies the MDIOS handle. 304 * @retval None 305 */ 306 #define __HAL_MDIOS_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= MDIOS_CR_EN) 307 #define __HAL_MDIOS_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~MDIOS_CR_EN) 308 309 310 /** 311 * @brief Enable the MDIOS device interrupt. 312 * @param __HANDLE__: specifies the MDIOS handle. 313 * @param __INTERRUPT__ : specifies the MDIOS interrupt sources to be enabled. 314 * This parameter can be one or a combination of the following values: 315 * @arg MDIOS_IT_WRITE: Register write interrupt 316 * @arg MDIOS_IT_READ: Register read interrupt 317 * @arg MDIOS_IT_ERROR: Error interrupt 318 * @retval None 319 */ 320 #define __HAL_MDIOS_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__)) 321 322 /** 323 * @brief Disable the MDIOS device interrupt. 324 * @param __HANDLE__: specifies the MDIOS handle. 325 * @param __INTERRUPT__ : specifies the MDIOS interrupt sources to be disabled. 326 * This parameter can be one or a combination of the following values: 327 * @arg MDIOS_IT_WRITE: Register write interrupt 328 * @arg MDIOS_IT_READ: Register read interrupt 329 * @arg MDIOS_IT_ERROR: Error interrupt 330 * @retval None 331 */ 332 #define __HAL_MDIOS_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__)) 333 334 /** @brief Set MDIOS slave get write register flag 335 * @param __HANDLE__: specifies the MDIOS handle. 336 * @param __FLAG__: specifies the write register flag 337 * @retval The state of write flag 338 */ 339 #define __HAL_MDIOS_GET_WRITE_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->WRFR & (__FLAG__)) 340 341 /** @brief MDIOS slave get read register flag 342 * @param __HANDLE__: specifies the MDIOS handle. 343 * @param __FLAG__: specifies the read register flag 344 * @retval The state of read flag 345 */ 346 #define __HAL_MDIOS_GET_READ_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->RDFR & (__FLAG__)) 347 348 /** @brief MDIOS slave get interrupt 349 * @param __HANDLE__: specifies the MDIOS handle. 350 * @param __FLAG__ : specifies the Error flag. 351 * This parameter can be one or a combination of the following values: 352 * @arg MDIOS_TURNARROUND_ERROR_FLAG: Register write interrupt 353 * @arg MDIOS_START_ERROR_FLAG: Register read interrupt 354 * @arg MDIOS_PREAMBLE_ERROR_FLAG: Error interrupt 355 * @retval The state of the error flag 356 */ 357 #define __HAL_MDIOS_GET_ERROR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->SR & (__FLAG__)) 358 359 /** @brief MDIOS slave clear interrupt 360 * @param __HANDLE__: specifies the MDIOS handle. 361 * @param __FLAG__ : specifies the Error flag. 362 * This parameter can be one or a combination of the following values: 363 * @arg MDIOS_TURNARROUND_ERROR_FLAG: Register write interrupt 364 * @arg MDIOS_START_ERROR_FLAG: Register read interrupt 365 * @arg MDIOS_PREAMBLE_ERROR_FLAG: Error interrupt 366 * @retval none 367 */ 368 #define __HAL_MDIOS_CLEAR_ERROR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->CLRFR) |= (__FLAG__) 369 370 /** 371 * @brief Checks whether the specified MDIOS interrupt is set or not. 372 * @param __HANDLE__: specifies the MDIOS handle. 373 * @param __INTERRUPT__ : specifies the MDIOS interrupt sources 374 * This parameter can be one or a combination of the following values: 375 * @arg MDIOS_IT_WRITE: Register write interrupt 376 * @arg MDIOS_IT_READ: Register read interrupt 377 * @arg MDIOS_IT_ERROR: Error interrupt 378 * @retval The state of the interrupt source 379 */ 380 #define __HAL_MDIOS_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR & (__INTERRUPT__)) 381 382 /** 383 * @brief Enable the MDIOS WAKEUP Exti Line. 384 * @param __EXTI_LINE__: specifies the MDIOS WAKEUP Exti sources to be enabled. 385 * This parameter can be: 386 * @arg MDIOS_WAKEUP_EXTI_LINE 387 * @retval None. 388 */ 389 #define __HAL_MDIOS_WAKEUP_EXTI_ENABLE_IT(__EXTI_LINE__) (EXTI->IMR2 |= (__EXTI_LINE__)) 390 391 /** 392 * @brief checks whether the specified MDIOS WAKEUP Exti interrupt flag is set or not. 393 * @param __EXTI_LINE__: specifies the MDIOS WAKEUP Exti sources to be cleared. 394 * This parameter can be: 395 * @arg MDIOS_WAKEUP_EXTI_LINE 396 * @retval EXTI MDIOS WAKEUP Line Status. 397 */ 398 #define __HAL_MDIOS_WAKEUP_EXTI_GET_FLAG(__EXTI_LINE__) (EXTI->PR2 & (__EXTI_LINE__)) 399 400 /** 401 * @brief Clear the MDIOS WAKEUP Exti flag. 402 * @param __EXTI_LINE__: specifies the MDIOS WAKEUP Exti sources to be cleared. 403 * This parameter can be: 404 * @arg MDIOS_WAKEUP_EXTI_LINE 405 * @retval None. 406 */ 407 #define __HAL_MDIOS_WAKEUP_EXTI_CLEAR_FLAG(__EXTI_LINE__) (EXTI->PR2 = (__EXTI_LINE__)) 408 409 /** 410 * @brief enable rising edge interrupt on selected EXTI line. 411 * @param __EXTI_LINE__: specifies the MDIOS WAKEUP EXTI sources to be disabled. 412 * This parameter can be: 413 * @arg MDIOS_WAKEUP_EXTI_LINE 414 * @retval None 415 */ 416 #define __HAL_MDIOS_WAKEUP_EXTI_ENABLE_RISING_EDGE(__EXTI_LINE__) (EXTI->FTSR2 &= ~(__EXTI_LINE__)); \ 417 (EXTI->RTSR2 |= (__EXTI_LINE__)) 418 419 /** 420 * @brief enable falling edge interrupt on selected EXTI line. 421 * @param __EXTI_LINE__: specifies the MDIOS WAKEUP EXTI sources to be disabled. 422 * This parameter can be: 423 * @arg MDIOS_WAKEUP_EXTI_LINE 424 * @retval None 425 */ 426 #define __HAL_MDIOS_WAKEUP_EXTI_ENABLE_FALLING_EDGE(__EXTI_LINE__) (EXTI->RTSR2 &= ~(__EXTI_LINE__));\ 427 (EXTI->FTSR2 |= (__EXTI_LINE__)) 428 429 /** 430 * @brief enable falling edge interrupt on selected EXTI line. 431 * @param __EXTI_LINE__: specifies the MDIOS WAKEUP EXTI sources to be disabled. 432 * This parameter can be: 433 * @arg MDIOS_WAKEUP_EXTI_LINE 434 * @retval None 435 */ 436 #define __HAL_MDIOS_WAKEUP_EXTI_ENABLE_RISING_FALLING_EDGE(__EXTI_LINE__) (EXTI->RTSR2 |= (__EXTI_LINE__));\ 437 (EXTI->FTSR2 |= (__EXTI_LINE__)) 438 439 /** 440 * @brief Generates a Software interrupt on selected EXTI line. 441 * @param __EXTI_LINE__: specifies the MDIOS WAKEUP EXTI sources to be disabled. 442 * This parameter can be: 443 * @arg MDIOS_WAKEUP_EXTI_LINE 444 * @retval None 445 */ 446 #define __HAL_MDIOS_WAKEUP_EXTI_GENERATE_SWIT(__EXTI_LINE__) (EXTI->SWIER2 |= (__EXTI_LINE__)) 447 448 /** 449 * @} 450 */ 451 452 /* Exported functions --------------------------------------------------------*/ 453 /** @defgroup MDIOS_Exported_Functions MDIOS Exported Functions 454 * @{ 455 */ 456 457 /** @addtogroup MDIOS_Exported_Functions_Group1 458 * @{ 459 */ 460 HAL_StatusTypeDef HAL_MDIOS_Init(MDIOS_HandleTypeDef *hmdios); 461 HAL_StatusTypeDef HAL_MDIOS_DeInit(MDIOS_HandleTypeDef *hmdios); 462 void HAL_MDIOS_MspInit(MDIOS_HandleTypeDef *hmdios); 463 void HAL_MDIOS_MspDeInit(MDIOS_HandleTypeDef *hmdios); 464 465 /* Callbacks Register/UnRegister functions ***********************************/ 466 #if (USE_HAL_MDIOS_REGISTER_CALLBACKS == 1) 467 HAL_StatusTypeDef HAL_MDIOS_RegisterCallback(MDIOS_HandleTypeDef *hmdios, HAL_MDIOS_CallbackIDTypeDef CallbackID, 468 pMDIOS_CallbackTypeDef pCallback); 469 HAL_StatusTypeDef HAL_MDIOS_UnRegisterCallback(MDIOS_HandleTypeDef *hmdios, HAL_MDIOS_CallbackIDTypeDef CallbackID); 470 #endif /* USE_HAL_MDIOS_REGISTER_CALLBACKS */ 471 /** 472 * @} 473 */ 474 475 /** @addtogroup MDIOS_Exported_Functions_Group2 476 * @{ 477 */ 478 HAL_StatusTypeDef HAL_MDIOS_WriteReg(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum, uint16_t Data); 479 HAL_StatusTypeDef HAL_MDIOS_ReadReg(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum, uint16_t *pData); 480 481 uint32_t HAL_MDIOS_GetWrittenRegAddress(MDIOS_HandleTypeDef *hmdios); 482 uint32_t HAL_MDIOS_GetReadRegAddress(MDIOS_HandleTypeDef *hmdios); 483 HAL_StatusTypeDef HAL_MDIOS_ClearWriteRegAddress(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum); 484 HAL_StatusTypeDef HAL_MDIOS_ClearReadRegAddress(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum); 485 486 HAL_StatusTypeDef HAL_MDIOS_EnableEvents(MDIOS_HandleTypeDef *hmdios); 487 void HAL_MDIOS_IRQHandler(MDIOS_HandleTypeDef *hmdios); 488 void HAL_MDIOS_WriteCpltCallback(MDIOS_HandleTypeDef *hmdios); 489 void HAL_MDIOS_ReadCpltCallback(MDIOS_HandleTypeDef *hmdios); 490 void HAL_MDIOS_ErrorCallback(MDIOS_HandleTypeDef *hmdios); 491 void HAL_MDIOS_WakeUpCallback(MDIOS_HandleTypeDef *hmdios); 492 /** 493 * @} 494 */ 495 496 /** @addtogroup MDIOS_Exported_Functions_Group3 497 * @{ 498 */ 499 uint32_t HAL_MDIOS_GetError(MDIOS_HandleTypeDef *hmdios); 500 HAL_MDIOS_StateTypeDef HAL_MDIOS_GetState(MDIOS_HandleTypeDef *hmdios); 501 /** 502 * @} 503 */ 504 505 /** 506 * @} 507 */ 508 509 /* Private types -------------------------------------------------------------*/ 510 /** @defgroup MDIOS_Private_Types MDIOS Private Types 511 * @{ 512 */ 513 514 /** 515 * @} 516 */ 517 518 /* Private variables ---------------------------------------------------------*/ 519 /** @defgroup MDIOS_Private_Variables MDIOS Private Variables 520 * @{ 521 */ 522 523 /** 524 * @} 525 */ 526 527 /* Private constants ---------------------------------------------------------*/ 528 /** @defgroup MDIOS_Private_Constants MDIOS Private Constants 529 * @{ 530 */ 531 532 /** 533 * @} 534 */ 535 536 /* Private macros ------------------------------------------------------------*/ 537 /** @defgroup MDIOS_Private_Macros MDIOS Private Macros 538 * @{ 539 */ 540 541 #define IS_MDIOS_PORTADDRESS(__ADDR__) ((__ADDR__) < 32U) 542 543 #define IS_MDIOS_REGISTER(__REGISTER__) ((__REGISTER__) < 32U) 544 545 #define IS_MDIOS_PREAMBLECHECK(__PREAMBLECHECK__) (((__PREAMBLECHECK__) == MDIOS_PREAMBLE_CHECK_ENABLE) || \ 546 ((__PREAMBLECHECK__) == MDIOS_PREAMBLE_CHECK_DISABLE)) 547 548 /** 549 * @} 550 */ 551 552 /* Private functions ---------------------------------------------------------*/ 553 /** @defgroup MDIOS_Private_Functions MDIOS Private Functions 554 * @{ 555 */ 556 557 /** 558 * @} 559 */ 560 561 562 /** 563 * @} 564 */ 565 566 /** 567 * @} 568 */ 569 570 #endif /* MDIOS */ 571 572 #ifdef __cplusplus 573 } 574 #endif 575 576 #endif /* STM32H7RSxx_HAL_MDIOS_H */ 577