108 #ifdef HAL_MDIOS_MODULE_ENABLED 114 #define MDIOS_PORT_ADDRESS_SHIFT ((uint32_t)8) 115 #define MDIOS_ALL_REG_FLAG ((uint32_t)0xFFFFFFFFU) 116 #define MDIOS_ALL_ERRORS_FLAG ((uint32_t)(MDIOS_SR_PERF | MDIOS_SR_SERF | MDIOS_SR_TERF)) 118 #define MDIOS_DIN_BASE_ADDR (MDIOS_BASE + 0x100) 119 #define MDIOS_DOUT_BASE_ADDR (MDIOS_BASE + 0x180) 166 assert_param(IS_MDIOS_PORTADDRESS(hmdios->Init.PortAddress));
167 assert_param(IS_MDIOS_PREAMBLECHECK(hmdios->Init.PreambleCheck));
172 if(hmdios->State == HAL_MDIOS_STATE_RESET)
175 HAL_MDIOS_MspInit(hmdios);
179 hmdios->State = HAL_MDIOS_STATE_BUSY;
182 tmpcr = hmdios->Instance->CR;
188 tmpcr |= (uint32_t)(((hmdios->Init.PortAddress) << MDIOS_PORT_ADDRESS_SHIFT) |\
189 (hmdios->Init.PreambleCheck) | \
193 hmdios->Instance->CR = tmpcr;
196 hmdios->State = HAL_MDIOS_STATE_READY;
223 hmdios->State = HAL_MDIOS_STATE_BUSY;
226 __HAL_MDIOS_DISABLE(hmdios);
229 HAL_MDIOS_MspDeInit(hmdios);
232 hmdios->State = HAL_MDIOS_STATE_RESET;
246 __weak
void HAL_MDIOS_MspInit(MDIOS_HandleTypeDef *hmdios)
261 __weak
void HAL_MDIOS_MspDeInit(MDIOS_HandleTypeDef *hmdios)
314 HAL_StatusTypeDef HAL_MDIOS_WriteReg(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum, uint16_t Data)
325 tmpreg = MDIOS_DOUT_BASE_ADDR + (4 * RegNum);
328 *((uint32_t *)tmpreg) = Data;
343 HAL_StatusTypeDef HAL_MDIOS_ReadReg(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum, uint16_t *pData)
354 tmpreg = MDIOS_DIN_BASE_ADDR + (4 * RegNum);
357 *pData = (uint16_t)(*((uint32_t *)tmpreg));
370 uint32_t HAL_MDIOS_GetWrittenRegAddress(MDIOS_HandleTypeDef *hmdios)
372 return hmdios->Instance->WRFR;
380 uint32_t HAL_MDIOS_GetReadRegAddress(MDIOS_HandleTypeDef *hmdios)
382 return hmdios->Instance->RDFR;
391 HAL_StatusTypeDef HAL_MDIOS_ClearWriteRegAddress(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum)
400 hmdios->Instance->CWRFR |= (RegNum);
414 HAL_StatusTypeDef HAL_MDIOS_ClearReadRegAddress(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum)
423 hmdios->Instance->CRDFR |= (RegNum);
442 __HAL_MDIOS_ENABLE_IT(hmdios, (MDIOS_IT_WRITE | MDIOS_IT_READ | MDIOS_IT_ERROR));
455 void HAL_MDIOS_IRQHandler(MDIOS_HandleTypeDef *hmdios)
458 if(__HAL_MDIOS_GET_IT_SOURCE(hmdios, MDIOS_IT_WRITE) !=
RESET)
461 if(HAL_MDIOS_GetWrittenRegAddress(hmdios) !=
RESET)
464 HAL_MDIOS_WriteCpltCallback(hmdios);
467 HAL_MDIOS_ClearWriteRegAddress(hmdios, MDIOS_ALL_REG_FLAG);
472 if(__HAL_MDIOS_GET_IT_SOURCE(hmdios, MDIOS_IT_READ) !=
RESET)
475 if(HAL_MDIOS_GetReadRegAddress(hmdios) !=
RESET)
478 HAL_MDIOS_ReadCpltCallback(hmdios);
481 HAL_MDIOS_ClearReadRegAddress(hmdios, MDIOS_ALL_REG_FLAG);
486 if(__HAL_MDIOS_GET_IT_SOURCE(hmdios, MDIOS_IT_ERROR) !=
RESET)
489 if(__HAL_MDIOS_GET_ERROR_FLAG(hmdios, MDIOS_ALL_ERRORS_FLAG) !=
RESET)
492 HAL_MDIOS_ErrorCallback(hmdios);
495 __HAL_MDIOS_CLEAR_ERROR_FLAG(hmdios, MDIOS_ALL_ERRORS_FLAG);
500 if(__HAL_MDIOS_WAKEUP_EXTI_GET_FLAG() !=
RESET)
503 HAL_MDIOS_WakeUpCallback(hmdios);
506 __HAL_MDIOS_WAKEUP_EXTI_CLEAR_FLAG();
515 __weak
void HAL_MDIOS_WriteCpltCallback(MDIOS_HandleTypeDef *hmdios)
530 __weak
void HAL_MDIOS_ReadCpltCallback(MDIOS_HandleTypeDef *hmdios)
545 __weak
void HAL_MDIOS_ErrorCallback(MDIOS_HandleTypeDef *hmdios)
560 __weak
void HAL_MDIOS_WakeUpCallback(MDIOS_HandleTypeDef *hmdios)
595 uint32_t HAL_MDIOS_GetError(MDIOS_HandleTypeDef *hmdios)
598 return hmdios->Instance->SR;
606 HAL_MDIOS_StateTypeDef HAL_MDIOS_GetState(MDIOS_HandleTypeDef *hmdios)
609 return hmdios->State;
#define assert_param(expr)
Include module's header file.
#define IS_MDIOS_ALL_INSTANCE(__INSTANCE__)
#define MDIOS_CR_PORT_ADDRESS
#define __HAL_UNLOCK(__HANDLE__)
#define __HAL_LOCK(__HANDLE__)
This file contains all the functions prototypes for the HAL module driver.
HAL_StatusTypeDef
HAL Status structures definition.