1 /*
2  * Copyright 2023 NXP
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef _FSL_NETC_PHY_WRAPPER_H_
8 #define _FSL_NETC_PHY_WRAPPER_H_
9 
10 #include "fsl_common.h"
11 #include "fsl_netc_mdio.h"
12 
13 #define getPhyReg(reg) ((uint16_t)(((uint32_t)(reg) >> 1U) & 0xFFFFU))
14 #define getPhyDev(reg) ((uint8_t)(((uint32_t)(reg) >> 17U) & 0x1FU))
15 
16 /*!
17  * @brief ENET_PHY modes supported
18  */
19 typedef enum _phy_mode
20 {
21     kNETC_SGMII1G = 0U,
22     kNETC_SGMII2G5,
23 #if !(defined(FSL_FEATURE_NETC_HAS_NO_XGMII) && FSL_FEATURE_NETC_HAS_NO_XGMII)
24     kNETC_XGMII10GAuto,
25     kNETC_XGMII10G,
26 #endif
27     kNETC_XFI,
28 } phy_mode_t;
29 
30 /*!
31  * @brief ENET_PHY mode init
32  *
33  * @param handle  mdio handle.
34  * @param mode  phy mode.
35  * @return status_t
36  */
37 status_t NETC_PHYInit(netc_mdio_handle_t *handle, phy_mode_t mode);
38 
39 #endif /* _FSL_NETC_PHY_WRAPPER_H_ */
40