1 /*
2  * Copyright 2025 NXP
3  * SPDX-License-Identifier: Apache-2.0
4  */
5 
6 #ifndef __NXP_IMX_NETC_H__
7 #define __NXP_IMX_NETC_H__
8 
9 #define NETC_BD_ALIGN 128
10 
11 /* Get phy mode from dts. Default RMII for i.MXRT1180 ENETC which hasn't added the property. */
12 #define NETC_PHY_MODE(node_id)                                                                     \
13 	(DT_ENUM_HAS_VALUE(node_id, phy_connection_type, mii)                                      \
14 		 ? kNETC_MiiMode                                                                   \
15 		 : (DT_ENUM_HAS_VALUE(node_id, phy_connection_type, rmii)                          \
16 			    ? kNETC_RmiiMode                                                       \
17 			    : (DT_ENUM_HAS_VALUE(node_id, phy_connection_type, rgmii)              \
18 				       ? kNETC_RgmiiMode                                           \
19 				       : (DT_ENUM_HAS_VALUE(node_id, phy_connection_type, gmii)    \
20 						  ? kNETC_GmiiMode                                 \
21 						  : kNETC_RmiiMode))))
22 
23 /* Helper macros to convert from Zephyr PHY speed to NETC speed/duplex types */
24 #define PHY_TO_NETC_SPEED(x)                                                                       \
25 	(PHY_LINK_IS_SPEED_1000M(x)                                                                \
26 		 ? kNETC_MiiSpeed1000M                                                             \
27 		 : (PHY_LINK_IS_SPEED_100M(x) ? kNETC_MiiSpeed100M : kNETC_MiiSpeed10M))
28 
29 #define PHY_TO_NETC_DUPLEX_MODE(x)                                                                 \
30 	(PHY_LINK_IS_FULL_DUPLEX(x) ? kNETC_MiiFullDuplex : kNETC_MiiHalfDuplex)
31 
32 #endif
33