1 /*
2  * Copyright (c) 2006-2024 RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2024-09-25     zhujiale    the first version
9  */
10 #ifndef __NET_OFW_H__
11 #define __NET_OFW_H__
12 #include <rtthread.h>
13 #include <drivers/ofw.h>
14 typedef enum
15 {
16     RT_PHY_INTERFACE_MODE_NA,
17     RT_PHY_INTERFACE_MODE_INTERNAL,
18     RT_PHY_INTERFACE_MODE_MII,
19     RT_PHY_INTERFACE_MODE_GMII,
20     RT_PHY_INTERFACE_MODE_SGMII,
21     RT_PHY_INTERFACE_MODE_TBI,
22     RT_PHY_INTERFACE_MODE_REVMII,
23     RT_PHY_INTERFACE_MODE_RMII,
24     RT_PHY_INTERFACE_MODE_REVRMII,
25     RT_PHY_INTERFACE_MODE_RGMII,
26     RT_PHY_INTERFACE_MODE_RGMII_ID,
27     RT_PHY_INTERFACE_MODE_RGMII_RXID,
28     RT_PHY_INTERFACE_MODE_RGMII_TXID,
29     RT_PHY_INTERFACE_MODE_RTBI,
30     RT_PHY_INTERFACE_MODE_SMII,
31     RT_PHY_INTERFACE_MODE_XGMII,
32     RT_PHY_INTERFACE_MODE_XLGMII,
33     RT_PHY_INTERFACE_MODE_MOCA,
34     RT_PHY_INTERFACE_MODE_PSGMII,
35     RT_PHY_INTERFACE_MODE_QSGMII,
36     RT_PHY_INTERFACE_MODE_TRGMII,
37     RT_PHY_INTERFACE_MODE_100BASEX,
38     RT_PHY_INTERFACE_MODE_1000BASEX,
39     RT_PHY_INTERFACE_MODE_2500BASEX,
40     RT_PHY_INTERFACE_MODE_5GBASER,
41     RT_PHY_INTERFACE_MODE_RXAUI,
42     RT_PHY_INTERFACE_MODE_XAUI,
43     /* 10GBASE-R, XFI, SFI - single lane 10G Serdes */
44     RT_PHY_INTERFACE_MODE_10GBASER,
45     RT_PHY_INTERFACE_MODE_25GBASER,
46     RT_PHY_INTERFACE_MODE_USXGMII,
47     /* 10GBASE-KR - with Clause 73 AN */
48     RT_PHY_INTERFACE_MODE_10GKR,
49     RT_PHY_INTERFACE_MODE_QUSGMII,
50     RT_PHY_INTERFACE_MODE_1000BASEKX,
51     RT_PHY_INTERFACE_MODE_MAX,
52 } rt_phy_interface;
53 
54 rt_err_t rt_ofw_get_mac_addr(struct rt_ofw_node *np, rt_uint8_t *addr);
55 rt_err_t rt_ofw_get_mac_addr_by_name(struct rt_ofw_node *np, const char *name, rt_uint8_t *addr);
56 rt_err_t rt_ofw_get_interface(struct rt_ofw_node *np, rt_phy_interface *interface);
57 
58 #endif
59