File indexing completed on 2025-05-11 08:23:35
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #ifndef STM32H7xx_HAL_MDIOS_H
0021 #define STM32H7xx_HAL_MDIOS_H
0022
0023 #ifdef __cplusplus
0024 extern "C" {
0025 #endif
0026
0027
0028
0029 #include "stm32h7xx_hal_def.h"
0030
0031 #if defined (MDIOS)
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052 typedef enum
0053 {
0054 HAL_MDIOS_STATE_RESET = 0x00U,
0055 HAL_MDIOS_STATE_READY = 0x01U,
0056 HAL_MDIOS_STATE_BUSY = 0x02U,
0057 HAL_MDIOS_STATE_ERROR = 0x04U
0058 }HAL_MDIOS_StateTypeDef;
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069 typedef struct
0070 {
0071 uint32_t PortAddress;
0072
0073 uint32_t PreambleCheck;
0074
0075 }MDIOS_InitTypeDef;
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086 #if (USE_HAL_MDIOS_REGISTER_CALLBACKS == 1)
0087 typedef struct __MDIOS_HandleTypeDef
0088 #else
0089 typedef struct
0090 #endif
0091 {
0092 MDIOS_TypeDef *Instance;
0093
0094 MDIOS_InitTypeDef Init;
0095
0096 __IO HAL_MDIOS_StateTypeDef State;
0097
0098
0099 __IO uint32_t ErrorCode;
0100
0101
0102 HAL_LockTypeDef Lock;
0103
0104 #if (USE_HAL_MDIOS_REGISTER_CALLBACKS == 1)
0105
0106 void (* WriteCpltCallback) ( struct __MDIOS_HandleTypeDef * hmdios);
0107 void (* ReadCpltCallback) ( struct __MDIOS_HandleTypeDef * hmdios);
0108 void (* ErrorCallback) ( struct __MDIOS_HandleTypeDef * hmdios);
0109 void (* WakeUpCallback) ( struct __MDIOS_HandleTypeDef * hmdios);
0110
0111 void (* MspInitCallback) ( struct __MDIOS_HandleTypeDef * hmdios);
0112 void (* MspDeInitCallback) ( struct __MDIOS_HandleTypeDef * hmdios);
0113
0114 #endif
0115 }MDIOS_HandleTypeDef;
0116
0117
0118
0119
0120
0121 #if (USE_HAL_MDIOS_REGISTER_CALLBACKS == 1)
0122
0123
0124
0125 typedef enum
0126 {
0127 HAL_MDIOS_MSPINIT_CB_ID = 0x00U,
0128 HAL_MDIOS_MSPDEINIT_CB_ID = 0x01U,
0129
0130 HAL_MDIOS_WRITE_COMPLETE_CB_ID = 0x02U,
0131 HAL_MDIOS_READ_COMPLETE_CB_ID = 0x03U,
0132 HAL_MDIOS_ERROR_CB_ID = 0x04U,
0133 HAL_MDIOS_WAKEUP_CB_ID = 0x05U
0134 }HAL_MDIOS_CallbackIDTypeDef;
0135
0136
0137
0138
0139 typedef void (*pMDIOS_CallbackTypeDef)(MDIOS_HandleTypeDef * hmdios);
0140
0141 #endif
0142
0143
0144
0145
0146
0147
0148
0149
0150
0151
0152
0153
0154
0155
0156
0157 #define MDIOS_PREAMBLE_CHECK_ENABLE ((uint32_t)0x00000000U)
0158 #define MDIOS_PREAMBLE_CHECK_DISABLE MDIOS_CR_DPC
0159
0160
0161
0162
0163
0164
0165
0166
0167 #define MDIOS_REG0 ((uint32_t)0x00000000U)
0168 #define MDIOS_REG1 ((uint32_t)0x00000001U)
0169 #define MDIOS_REG2 ((uint32_t)0x00000002U)
0170 #define MDIOS_REG3 ((uint32_t)0x00000003U)
0171 #define MDIOS_REG4 ((uint32_t)0x00000004U)
0172 #define MDIOS_REG5 ((uint32_t)0x00000005U)
0173 #define MDIOS_REG6 ((uint32_t)0x00000006U)
0174 #define MDIOS_REG7 ((uint32_t)0x00000007U)
0175 #define MDIOS_REG8 ((uint32_t)0x00000008U)
0176 #define MDIOS_REG9 ((uint32_t)0x00000009U)
0177 #define MDIOS_REG10 ((uint32_t)0x0000000AU)
0178 #define MDIOS_REG11 ((uint32_t)0x0000000BU)
0179 #define MDIOS_REG12 ((uint32_t)0x0000000CU)
0180 #define MDIOS_REG13 ((uint32_t)0x0000000DU)
0181 #define MDIOS_REG14 ((uint32_t)0x0000000EU)
0182 #define MDIOS_REG15 ((uint32_t)0x0000000FU)
0183 #define MDIOS_REG16 ((uint32_t)0x00000010U)
0184 #define MDIOS_REG17 ((uint32_t)0x00000011U)
0185 #define MDIOS_REG18 ((uint32_t)0x00000012U)
0186 #define MDIOS_REG19 ((uint32_t)0x00000013U)
0187 #define MDIOS_REG20 ((uint32_t)0x00000014U)
0188 #define MDIOS_REG21 ((uint32_t)0x00000015U)
0189 #define MDIOS_REG22 ((uint32_t)0x00000016U)
0190 #define MDIOS_REG23 ((uint32_t)0x00000017U)
0191 #define MDIOS_REG24 ((uint32_t)0x00000018U)
0192 #define MDIOS_REG25 ((uint32_t)0x00000019U)
0193 #define MDIOS_REG26 ((uint32_t)0x0000001AU)
0194 #define MDIOS_REG27 ((uint32_t)0x0000001BU)
0195 #define MDIOS_REG28 ((uint32_t)0x0000001CU)
0196 #define MDIOS_REG29 ((uint32_t)0x0000001DU)
0197 #define MDIOS_REG30 ((uint32_t)0x0000001EU)
0198 #define MDIOS_REG31 ((uint32_t)0x0000001FU)
0199
0200
0201
0202
0203
0204
0205
0206
0207 #define MDIOS_REG0_FLAG ((uint32_t)0x00000001U)
0208 #define MDIOS_REG1_FLAG ((uint32_t)0x00000002U)
0209 #define MDIOS_REG2_FLAG ((uint32_t)0x00000004U)
0210 #define MDIOS_REG3_FLAG ((uint32_t)0x00000008U)
0211 #define MDIOS_REG4_FLAG ((uint32_t)0x00000010U)
0212 #define MDIOS_REG5_FLAG ((uint32_t)0x00000020U)
0213 #define MDIOS_REG6_FLAG ((uint32_t)0x00000040U)
0214 #define MDIOS_REG7_FLAG ((uint32_t)0x00000080U)
0215 #define MDIOS_REG8_FLAG ((uint32_t)0x00000100U)
0216 #define MDIOS_REG9_FLAG ((uint32_t)0x00000200U)
0217 #define MDIOS_REG10_FLAG ((uint32_t)0x00000400U)
0218 #define MDIOS_REG11_FLAG ((uint32_t)0x00000800U)
0219 #define MDIOS_REG12_FLAG ((uint32_t)0x00001000U)
0220 #define MDIOS_REG13_FLAG ((uint32_t)0x00002000U)
0221 #define MDIOS_REG14_FLAG ((uint32_t)0x00004000U)
0222 #define MDIOS_REG15_FLAG ((uint32_t)0x00008000U)
0223 #define MDIOS_REG16_FLAG ((uint32_t)0x00010000U)
0224 #define MDIOS_REG17_FLAG ((uint32_t)0x00020000U)
0225 #define MDIOS_REG18_FLAG ((uint32_t)0x00040000U)
0226 #define MDIOS_REG19_FLAG ((uint32_t)0x00080000U)
0227 #define MDIOS_REG20_FLAG ((uint32_t)0x00100000U)
0228 #define MDIOS_REG21_FLAG ((uint32_t)0x00200000U)
0229 #define MDIOS_REG22_FLAG ((uint32_t)0x00400000U)
0230 #define MDIOS_REG23_FLAG ((uint32_t)0x00800000U)
0231 #define MDIOS_REG24_FLAG ((uint32_t)0x01000000U)
0232 #define MDIOS_REG25_FLAG ((uint32_t)0x02000000U)
0233 #define MDIOS_REG26_FLAG ((uint32_t)0x04000000U)
0234 #define MDIOS_REG27_FLAG ((uint32_t)0x08000000U)
0235 #define MDIOS_REG28_FLAG ((uint32_t)0x10000000U)
0236 #define MDIOS_REG29_FLAG ((uint32_t)0x20000000U)
0237 #define MDIOS_REG30_FLAG ((uint32_t)0x40000000U)
0238 #define MDIOS_REG31_FLAG ((uint32_t)0x80000000U)
0239 #define MDIOS_ALLREG_FLAG ((uint32_t)0xFFFFFFFFU)
0240
0241
0242
0243
0244
0245
0246
0247
0248 #define MDIOS_IT_WRITE MDIOS_CR_WRIE
0249 #define MDIOS_IT_READ MDIOS_CR_RDIE
0250 #define MDIOS_IT_ERROR MDIOS_CR_EIE
0251
0252
0253
0254
0255
0256
0257
0258
0259 #define MDIOS_TURNAROUND_ERROR_FLAG MDIOS_SR_TERF
0260 #define MDIOS_START_ERROR_FLAG MDIOS_SR_SERF
0261 #define MDIOS_PREAMBLE_ERROR_FLAG MDIOS_SR_PERF
0262
0263
0264
0265
0266
0267
0268
0269
0270 #define HAL_MDIOS_ERROR_NONE ((uint32_t)0x00000000U)
0271 #define HAL_MDIOS_ERROR_PARAM ((uint32_t)0x00000001U)
0272 #define HAL_MDIOS_ERROR_BUSY ((uint32_t)0x00000002U)
0273 #define HAL_MDIOS_ERROR_TIMEOUT ((uint32_t)0x00000004U)
0274 #define HAL_MDIOS_ERROR_DATA ((uint32_t)0x00000010U)
0275 #if (USE_HAL_MDIOS_REGISTER_CALLBACKS == 1)
0276 #define HAL_MDIOS_ERROR_INVALID_CALLBACK ((uint32_t)0x00000020U)
0277 #endif
0278
0279
0280
0281
0282
0283
0284
0285
0286 #define MDIOS_WAKEUP_EXTI_LINE ((uint32_t)0x00000400)
0287
0288
0289
0290
0291
0292
0293
0294
0295
0296
0297
0298
0299
0300
0301
0302
0303
0304 #if (USE_HAL_MDIOS_REGISTER_CALLBACKS == 1)
0305 #define __HAL_MDIOS_RESET_HANDLE_STATE(__HANDLE__) do{ \
0306 (__HANDLE__)->State = HAL_MDIOS_STATE_RESET; \
0307 (__HANDLE__)->MspInitCallback = NULL; \
0308 (__HANDLE__)->MspDeInitCallback = NULL; \
0309 } while(0)
0310 #else
0311 #define __HAL_MDIOS_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_MDIOS_STATE_RESET)
0312 #endif
0313
0314
0315
0316
0317
0318
0319 #define __HAL_MDIOS_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= MDIOS_CR_EN)
0320 #define __HAL_MDIOS_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~MDIOS_CR_EN)
0321
0322
0323
0324
0325
0326
0327
0328
0329
0330
0331
0332
0333 #define __HAL_MDIOS_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__))
0334
0335
0336
0337
0338
0339
0340
0341
0342
0343
0344
0345 #define __HAL_MDIOS_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))
0346
0347
0348
0349
0350
0351
0352 #define __HAL_MDIOS_GET_WRITE_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->WRFR & (__FLAG__))
0353
0354
0355
0356
0357
0358
0359 #define __HAL_MDIOS_GET_READ_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->RDFR & (__FLAG__))
0360
0361
0362
0363
0364
0365
0366
0367
0368
0369
0370 #define __HAL_MDIOS_GET_ERROR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->SR & (__FLAG__))
0371
0372
0373
0374
0375
0376
0377
0378
0379
0380
0381 #define __HAL_MDIOS_CLEAR_ERROR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->CLRFR) |= (__FLAG__)
0382
0383
0384
0385
0386
0387
0388
0389
0390
0391
0392
0393 #define __HAL_MDIOS_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR & (__INTERRUPT__))
0394
0395
0396
0397
0398
0399
0400
0401
0402 #define __HAL_MDIOS_WAKEUP_EXTI_ENABLE_IT(__EXTI_LINE__) (EXTI->IMR2 |= (__EXTI_LINE__))
0403
0404 #if defined(DUAL_CORE)
0405
0406
0407
0408
0409
0410
0411
0412 #define __HAL_MDIOS_WAKEUP_EXTID2_ENABLE_IT(__EXTI_LINE__) (EXTI->C2IMR2 |= (__EXTI_LINE__))
0413
0414 #endif
0415
0416
0417
0418
0419
0420
0421
0422 #define __HAL_MDIOS_WAKEUP_EXTI_GET_FLAG(__EXTI_LINE__) (EXTI->PR2 & (__EXTI_LINE__))
0423
0424 #if defined(DUAL_CORE)
0425
0426
0427
0428
0429
0430
0431
0432 #define __HAL_MDIOS_WAKEUP_EXTID2_GET_FLAG(__EXTI_LINE__) (EXTI->C2PR2 & (__EXTI_LINE__))
0433 #endif
0434
0435
0436
0437
0438
0439
0440
0441 #define __HAL_MDIOS_WAKEUP_EXTI_CLEAR_FLAG(__EXTI_LINE__) (EXTI->PR2 = (__EXTI_LINE__))
0442
0443 #if defined(DUAL_CORE)
0444
0445
0446
0447
0448
0449
0450
0451 #define __HAL_MDIOS_WAKEUP_EXTID2_CLEAR_FLAG(__EXTI_LINE__) (EXTI->C2PR2 = (__EXTI_LINE__))
0452
0453 #endif
0454
0455
0456
0457
0458
0459
0460
0461 #define __HAL_MDIOS_WAKEUP_EXTI_ENABLE_RISING_EDGE(__EXTI_LINE__) (EXTI->FTSR2 &= ~(__EXTI_LINE__)); \
0462 (EXTI->RTSR2 |= (__EXTI_LINE__))
0463
0464
0465
0466
0467
0468
0469
0470
0471 #define __HAL_MDIOS_WAKEUP_EXTI_ENABLE_FALLING_EDGE(__EXTI_LINE__) (EXTI->RTSR2 &= ~(__EXTI_LINE__));\
0472 (EXTI->FTSR2 |= (__EXTI_LINE__))
0473
0474
0475
0476
0477
0478
0479
0480
0481 #define __HAL_MDIOS_WAKEUP_EXTI_ENABLE_RISING_FALLING_EDGE(__EXTI_LINE__) (EXTI->RTSR2 |= (__EXTI_LINE__));\
0482 (EXTI->FTSR2 |= (__EXTI_LINE__))
0483
0484
0485
0486
0487
0488
0489
0490
0491 #define __HAL_MDIOS_WAKEUP_EXTI_GENERATE_SWIT(__EXTI_LINE__) (EXTI->SWIER2 |= (__EXTI_LINE__))
0492
0493
0494
0495
0496
0497
0498
0499
0500
0501
0502
0503
0504
0505
0506 HAL_StatusTypeDef HAL_MDIOS_Init(MDIOS_HandleTypeDef *hmdios);
0507 HAL_StatusTypeDef HAL_MDIOS_DeInit(MDIOS_HandleTypeDef *hmdios);
0508 void HAL_MDIOS_MspInit(MDIOS_HandleTypeDef *hmdios);
0509 void HAL_MDIOS_MspDeInit(MDIOS_HandleTypeDef *hmdios);
0510
0511
0512 #if (USE_HAL_MDIOS_REGISTER_CALLBACKS == 1)
0513 HAL_StatusTypeDef HAL_MDIOS_RegisterCallback(MDIOS_HandleTypeDef *hmdios, HAL_MDIOS_CallbackIDTypeDef CallbackID, pMDIOS_CallbackTypeDef pCallback);
0514 HAL_StatusTypeDef HAL_MDIOS_UnRegisterCallback(MDIOS_HandleTypeDef *hmdios, HAL_MDIOS_CallbackIDTypeDef CallbackID);
0515 #endif
0516
0517
0518
0519
0520
0521
0522
0523 HAL_StatusTypeDef HAL_MDIOS_WriteReg(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum, uint16_t Data);
0524 HAL_StatusTypeDef HAL_MDIOS_ReadReg(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum, uint16_t *pData);
0525
0526 uint32_t HAL_MDIOS_GetWrittenRegAddress(MDIOS_HandleTypeDef *hmdios);
0527 uint32_t HAL_MDIOS_GetReadRegAddress(MDIOS_HandleTypeDef *hmdios);
0528 HAL_StatusTypeDef HAL_MDIOS_ClearWriteRegAddress(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum);
0529 HAL_StatusTypeDef HAL_MDIOS_ClearReadRegAddress(MDIOS_HandleTypeDef *hmdios, uint32_t RegNum);
0530
0531 HAL_StatusTypeDef HAL_MDIOS_EnableEvents(MDIOS_HandleTypeDef *hmdios);
0532 void HAL_MDIOS_IRQHandler(MDIOS_HandleTypeDef *hmdios);
0533 void HAL_MDIOS_WriteCpltCallback(MDIOS_HandleTypeDef *hmdios);
0534 void HAL_MDIOS_ReadCpltCallback(MDIOS_HandleTypeDef *hmdios);
0535 void HAL_MDIOS_ErrorCallback(MDIOS_HandleTypeDef *hmdios);
0536 void HAL_MDIOS_WakeUpCallback(MDIOS_HandleTypeDef *hmdios);
0537
0538
0539
0540
0541
0542
0543
0544 uint32_t HAL_MDIOS_GetError(MDIOS_HandleTypeDef *hmdios);
0545 HAL_MDIOS_StateTypeDef HAL_MDIOS_GetState(MDIOS_HandleTypeDef *hmdios);
0546
0547
0548
0549
0550
0551
0552
0553
0554
0555
0556
0557
0558
0559
0560
0561
0562
0563
0564
0565
0566
0567
0568
0569
0570
0571
0572
0573
0574
0575
0576
0577
0578
0579
0580
0581
0582
0583
0584
0585
0586
0587
0588
0589
0590 #define IS_MDIOS_PORTADDRESS(__ADDR__) ((__ADDR__) < 32U)
0591
0592 #define IS_MDIOS_REGISTER(__REGISTER__) ((__REGISTER__) < 32U)
0593
0594 #define IS_MDIOS_PREAMBLECHECK(__PREAMBLECHECK__) (((__PREAMBLECHECK__) == MDIOS_PREAMBLE_CHECK_ENABLE) || \
0595 ((__PREAMBLECHECK__) == MDIOS_PREAMBLE_CHECK_DISABLE))
0596
0597
0598
0599
0600
0601
0602
0603
0604
0605
0606
0607
0608
0609
0610
0611
0612
0613
0614
0615
0616
0617
0618
0619
0620 #endif
0621
0622 #ifdef __cplusplus
0623 }
0624 #endif
0625
0626 #endif
0627