summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorYe Li <ye.li@nxp.com>2019-12-17 00:51:44 -0800
committerYe Li <ye.li@nxp.com>2020-04-26 23:24:21 -0700
commitfee5f250695a9c64c96f90f9003b36b7528fe30c (patch)
tree7bc8125bb688cfc47833a2a10150dec6f445df1a /net
parent8dd9b7b5665f24acbbcd0239fea8b441884ce361 (diff)
MLK-23574-28 net: Add eth phy generic driver for shared MDIO
For dual ethernet controllers, the HW design may connect ETH phys to one MDIO ports. So two different ethernet drivers have to share MDIO bus. Since two ethernet drivers are independent, we can't ensure their probe order. To resolve this problem, introduce an eth phy generic driver and uclass. After eth-uclass binds, we search the mdio node and binds the phy node with the eth-phy-generic driver. When one eth driver get its phy device, the parent of phy device will probe prior than phy device. So this ensure the eth driver ownes the MDIO bus will be probed before using its MDIO. Signed-off-by: Ye Li <ye.li@nxp.com>
Diffstat (limited to 'net')
-rw-r--r--net/eth-uclass.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/eth-uclass.c b/net/eth-uclass.c
index cbc78eb3ca..f49107ad3c 100644
--- a/net/eth-uclass.c
+++ b/net/eth-uclass.c
@@ -15,6 +15,7 @@
#include <dm/uclass-internal.h>
#include <net/pcap.h>
#include "eth_internal.h"
+#include <eth_phy.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -463,6 +464,10 @@ static int eth_post_bind(struct udevice *dev)
return -EINVAL;
}
+#ifdef CONFIG_DM_ETH_PHY
+ eth_phy_binds_nodes(dev);
+#endif
+
return 0;
}