STM32F769IDiscovery  1.00
uDANTE Audio Networking with STM32F7 DISCO board
stm32f7xx_hal_mdios.h
Go to the documentation of this file.
1 
38 /* Define to prevent recursive inclusion -------------------------------------*/
39 #ifndef __STM32F7xx_HAL_MDIOS_H
40 #define __STM32F7xx_HAL_MDIOS_H
41 
42 #ifdef __cplusplus
43  extern "C" {
44 #endif
45 
46 #if defined (MDIOS)
47 
48 /* Includes ------------------------------------------------------------------*/
49 #include "stm32f7xx_hal_def.h"
50 
59 /* Exported types ------------------------------------------------------------*/
68 typedef enum
69 {
70  HAL_MDIOS_STATE_RESET = 0x00U,
71  HAL_MDIOS_STATE_READY = 0x01U,
72  HAL_MDIOS_STATE_BUSY = 0x02U,
73  HAL_MDIOS_STATE_ERROR = 0x04U
74 }HAL_MDIOS_StateTypeDef;
75 
84 typedef struct
85 {
86  uint32_t PortAddress;
88  uint32_t PreambleCheck;
90 }MDIOS_InitTypeDef;
91 
100 typedef struct
101 {
104  MDIOS_InitTypeDef Init;
106  __IO HAL_MDIOS_StateTypeDef State;
109 }MDIOS_HandleTypeDef;
110 
119 /* Exported constants --------------------------------------------------------*/
127 #define MDIOS_PREAMBLE_CHECK_ENABLE ((uint32_t)0x00000000U)
128 #define MDIOS_PREAMBLE_CHECK_DISABLE MDIOS_CR_DPC
129 
136 #define MDIOS_REG0 ((uint32_t)0x00000000U)
137 #define MDIOS_REG1 ((uint32_t)0x00000001U)
138 #define MDIOS_REG2 ((uint32_t)0x00000002U)
139 #define MDIOS_REG3 ((uint32_t)0x00000003U)
140 #define MDIOS_REG4 ((uint32_t)0x00000004U)
141 #define MDIOS_REG5 ((uint32_t)0x00000005U)
142 #define MDIOS_REG6 ((uint32_t)0x00000006U)
143 #define MDIOS_REG7 ((uint32_t)0x00000007U)
144 #define MDIOS_REG8 ((uint32_t)0x00000008U)
145 #define MDIOS_REG9 ((uint32_t)0x00000009U)
146 #define MDIOS_REG10 ((uint32_t)0x0000000AU)
147 #define MDIOS_REG11 ((uint32_t)0x0000000BU)
148 #define MDIOS_REG12 ((uint32_t)0x0000000CU)
149 #define MDIOS_REG13 ((uint32_t)0x0000000DU)
150 #define MDIOS_REG14 ((uint32_t)0x0000000EU)
151 #define MDIOS_REG15 ((uint32_t)0x0000000FU)
152 #define MDIOS_REG16 ((uint32_t)0x00000010U)
153 #define MDIOS_REG17 ((uint32_t)0x00000011U)
154 #define MDIOS_REG18 ((uint32_t)0x00000012U)
155 #define MDIOS_REG19 ((uint32_t)0x00000013U)
156 #define MDIOS_REG20 ((uint32_t)0x00000014U)
157 #define MDIOS_REG21 ((uint32_t)0x00000015U)
158 #define MDIOS_REG22 ((uint32_t)0x00000016U)
159 #define MDIOS_REG23 ((uint32_t)0x00000017U)
160 #define MDIOS_REG24 ((uint32_t)0x00000018U)
161 #define MDIOS_REG25 ((uint32_t)0x00000019U)
162 #define MDIOS_REG26 ((uint32_t)0x0000001AU)
163 #define MDIOS_REG27 ((uint32_t)0x0000001BU)
164 #define MDIOS_REG28 ((uint32_t)0x0000001CU)
165 #define MDIOS_REG29 ((uint32_t)0x0000001DU)
166 #define MDIOS_REG30 ((uint32_t)0x0000001EU)
167 #define MDIOS_REG31 ((uint32_t)0x0000001FU)
168 
175 #define MDIOS_REG0_FLAG ((uint32_t)0x00000001U)
176 #define MDIOS_REG1_FLAG ((uint32_t)0x00000002U)
177 #define MDIOS_REG2_FLAG ((uint32_t)0x00000004U)
178 #define MDIOS_REG3_FLAG ((uint32_t)0x00000008U)
179 #define MDIOS_REG4_FLAG ((uint32_t)0x00000010U)
180 #define MDIOS_REG5_FLAG ((uint32_t)0x00000020U)
181 #define MDIOS_REG6_FLAG ((uint32_t)0x00000040U)
182 #define MDIOS_REG7_FLAG ((uint32_t)0x00000080U)
183 #define MDIOS_REG8_FLAG ((uint32_t)0x00000100U)
184 #define MDIOS_REG9_FLAG ((uint32_t)0x00000200U)
185 #define MDIOS_REG10_FLAG ((uint32_t)0x00000400U)
186 #define MDIOS_REG11_FLAG ((uint32_t)0x00000800U)
187 #define MDIOS_REG12_FLAG ((uint32_t)0x00001000U)
188 #define MDIOS_REG13_FLAG ((uint32_t)0x00002000U)
189 #define MDIOS_REG14_FLAG ((uint32_t)0x00004000U)
190 #define MDIOS_REG15_FLAG ((uint32_t)0x00008000U)
191 #define MDIOS_REG16_FLAG ((uint32_t)0x00010000U)
192 #define MDIOS_REG17_FLAG ((uint32_t)0x00020000U)
193 #define MDIOS_REG18_FLAG ((uint32_t)0x00040000U)
194 #define MDIOS_REG19_FLAG ((uint32_t)0x00080000U)
195 #define MDIOS_REG20_FLAG ((uint32_t)0x00100000U)
196 #define MDIOS_REG21_FLAG ((uint32_t)0x00200000U)
197 #define MDIOS_REG22_FLAG ((uint32_t)0x00400000U)
198 #define MDIOS_REG23_FLAG ((uint32_t)0x00800000U)
199 #define MDIOS_REG24_FLAG ((uint32_t)0x01000000U)
200 #define MDIOS_REG25_FLAG ((uint32_t)0x02000000U)
201 #define MDIOS_REG26_FLAG ((uint32_t)0x04000000U)
202 #define MDIOS_REG27_FLAG ((uint32_t)0x08000000U)
203 #define MDIOS_REG28_FLAG ((uint32_t)0x10000000U)
204 #define MDIOS_REG29_FLAG ((uint32_t)0x20000000U)
205 #define MDIOS_REG30_FLAG ((uint32_t)0x40000000U)
206 #define MDIOS_REG31_FLAG ((uint32_t)0x80000000U)
207 #define MDIOS_ALLREG_FLAG ((uint32_t)0xFFFFFFFFU)
208 
215 #define MDIOS_IT_WRITE MDIOS_CR_WRIE
216 #define MDIOS_IT_READ MDIOS_CR_RDIE
217 #define MDIOS_IT_ERROR MDIOS_CR_EIE
218 
225 #define MDIOS_TURNAROUND_ERROR_FLAG MDIOS_SR_TERF
226 #define MDIOS_START_ERROR_FLAG MDIOS_SR_SERF
227 #define MDIOS_PREAMBLE_ERROR_FLAG MDIOS_SR_PERF
228 
235 #define MDIOS_WAKEUP_EXTI_LINE ((uint32_t)0x01000000) /* !< EXTI Line 24 */
236 
243 /* Exported macros -----------------------------------------------------------*/
252 #define __HAL_MDIOS_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_MDIOS_STATE_RESET)
253 
259 #define __HAL_MDIOS_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= MDIOS_CR_EN)
260 #define __HAL_MDIOS_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~MDIOS_CR_EN)
261 
262 
273 #define __HAL_MDIOS_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__))
274 
285 #define __HAL_MDIOS_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))
286 
292 #define __HAL_MDIOS_GET_WRITE_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->WRFR & (__FLAG__))
293 
299 #define __HAL_MDIOS_GET_READ_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->RDFR & (__FLAG__))
300 
310 #define __HAL_MDIOS_GET_ERROR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->SR & (__FLAG__))
311 
321 #define __HAL_MDIOS_CLEAR_ERROR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->CLRFR) |= (__FLAG__)
322 
333 #define __HAL_MDIOS_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR & (__INTERRUPT__))
334 
339 #define __HAL_MDIOS_WAKEUP_EXTI_ENABLE_IT() (EXTI->IMR |= (MDIOS_WAKEUP_EXTI_LINE))
340 
345 #define __HAL_MDIOS_WAKEUP_EXTI_DISABLE_IT() (EXTI->IMR &= ~(MDIOS_WAKEUP_EXTI_LINE))
346 
351 #define __HAL_MDIOS_WAKEUP_EXTI_ENABLE_EVENT() (EXTI->EMR |= (MDIOS_WAKEUP_EXTI_LINE))
352 
357 #define __HAL_MDIOS_WAKEUP_EXTI_DISABLE_EVENT() (EXTI->EMR &= ~(MDIOS_WAKEUP_EXTI_LINE))
358 
363 #define __HAL_MDIOS_WAKEUP_EXTI_GET_FLAG() (EXTI->PR & (MDIOS_WAKEUP_EXTI_LINE))
364 
369 #define __HAL_MDIOS_WAKEUP_EXTI_CLEAR_FLAG() (EXTI->PR = (MDIOS_WAKEUP_EXTI_LINE))
370 
375 #define __HAL_MDIOS_WAKEUP_EXTI_ENABLE_RISING_EDGE_TRIGGER() EXTI->RTSR |= MDIOS_WAKEUP_EXTI_LINE
376 
381 #define __HAL_MDIOS_WAKEUP_EXTI_DISABLE_RISING_EDGE_TRIGGER() EXTI->RTSR &= ~(MDIOS_WAKEUP_EXTI_LINE)
382 
387 #define __HAL_MDIOS_WAKEUP_EXTI_ENABLE_FALLING_EDGE_TRIGGER() EXTI->FTSR |= (MDIOS_WAKEUP_EXTI_LINE)
388 
393 #define __HAL_MDIOS_WAKEUP_EXTI_DISABLE_FALLING_EDGE_TRIGGER() EXTI->FTSR &= ~(MDIOS_WAKEUP_EXTI_LINE)
394 
399 #define __HAL_MDIOS_WAKEUP_EXTI_ENABLE_FALLINGRISING_TRIGGER() EXTI->RTSR |= MDIOS_WAKEUP_EXTI_LINE;\
400  EXTI->FTSR |= MDIOS_WAKEUP_EXTI_LINE
401 
406 #define __HAL_MDIOS_WAKEUP_EXTI_DISABLE_FALLINGRISING_TRIGGER() EXTI->RTSR &= ~(MDIOS_WAKEUP_EXTI_LINE);\
407  EXTI->FTSR &= ~(MDIOS_WAKEUP_EXTI_LINE)
408 
412 #define __HAL_MDIOS_WAKEUP_EXTI_GENERATE_SWIT() (EXTI->SWIER |= (MDIOS_WAKEUP_EXTI_LINE))
413 
418 /* Exported functions --------------------------------------------------------*/
426 HAL_StatusTypeDef HAL_MDIOS_Init(MDIOS_HandleTypeDef *hmdios);
427 HAL_StatusTypeDef HAL_MDIOS_DeInit(MDIOS_HandleTypeDef *hmdios);
428 void HAL_MDIOS_MspInit(MDIOS_HandleTypeDef *hmdios);
429 void HAL_MDIOS_MspDeInit(MDIOS_HandleTypeDef *hmdios);
437 HAL_StatusTypeDef HAL_MDIOS_WriteReg(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum, uint16_t Data);
438 HAL_StatusTypeDef HAL_MDIOS_ReadReg(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum, uint16_t *pData);
439 
440 uint32_t HAL_MDIOS_GetWrittenRegAddress(MDIOS_HandleTypeDef *hmdios);
441 uint32_t HAL_MDIOS_GetReadRegAddress(MDIOS_HandleTypeDef *hmdios);
442 HAL_StatusTypeDef HAL_MDIOS_ClearWriteRegAddress(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum);
443 HAL_StatusTypeDef HAL_MDIOS_ClearReadRegAddress(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum);
444 
445 HAL_StatusTypeDef HAL_MDIOS_EnableEvents(MDIOS_HandleTypeDef *hmdios);
446 void HAL_MDIOS_IRQHandler(MDIOS_HandleTypeDef *hmdios);
447 void HAL_MDIOS_WriteCpltCallback(MDIOS_HandleTypeDef *hmdios);
448 void HAL_MDIOS_ReadCpltCallback(MDIOS_HandleTypeDef *hmdios);
449 void HAL_MDIOS_ErrorCallback(MDIOS_HandleTypeDef *hmdios);
450 void HAL_MDIOS_WakeUpCallback(MDIOS_HandleTypeDef *hmdios);
458 uint32_t HAL_MDIOS_GetError(MDIOS_HandleTypeDef *hmdios);
459 HAL_MDIOS_StateTypeDef HAL_MDIOS_GetState(MDIOS_HandleTypeDef *hmdios);
468 /* Private types -------------------------------------------------------------*/
477 /* Private variables ---------------------------------------------------------*/
486 /* Private constants ---------------------------------------------------------*/
495 /* Private macros ------------------------------------------------------------*/
500 #define IS_MDIOS_PORTADDRESS(__ADDR__) ((__ADDR__) < 32)
501 
502 #define IS_MDIOS_REGISTER(__REGISTER__) ((__REGISTER__) < 32)
503 
504 #define IS_MDIOS_PREAMBLECHECK(__PREAMBLECHECK__) (((__PREAMBLECHECK__) == MDIOS_PREAMBLE_CHECK_ENABLE) || \
505  ((__PREAMBLECHECK__) == MDIOS_PREAMBLE_CHECK_DISABLE))
506 
511 /* Private functions ---------------------------------------------------------*/
529 #endif /* MDIOS */
530 
531 #ifdef __cplusplus
532 }
533 #endif
534 
535 #endif /* __STM32F7xx_HAL_MDIOS_H */
536 
537 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
HAL_LockTypeDef
HAL Lock structures definition.
#define __IO
Definition: core_cm0.h:213
HAL_LockTypeDef Lock
This file contains HAL common defines, enumeration, macros and structures definitions.
__IO HAL_I2C_StateTypeDef State
HAL_StatusTypeDef
HAL Status structures definition.
I2C_InitTypeDef Init