Currently there is no API to uninitialize mdio. Add two APIs for this.
Signed-off-by: Bin Meng <[email protected]>
Acked-by: Joe Hershberger <[email protected]>
---
Changes in v2: None
common/miiphyutil.c | 19 +++++++++++++++++++
include/miiphy.h | 2 ++
2 files changed, 21 insertions(+)
diff --git a/common/miiphyutil.c b/common/miiphyutil.c
index c88c28a..e499b58 100644
--- a/common/miiphyutil.c
+++ b/common/miiphyutil.c
@@ -152,6 +152,11 @@ struct mii_dev *mdio_alloc(void)
return bus;
}
+void mdio_free(struct mii_dev *bus)
+{
+ free(bus);
+}
+
int mdio_register(struct mii_dev *bus)
{
if (!bus || !bus->name || !bus->read || !bus->write)
@@ -173,6 +178,20 @@ int mdio_register(struct mii_dev *bus)
return 0;
}
+int mdio_unregister(struct mii_dev *bus)
+{
+ if (!bus)
+ return 0;
+
+ /* delete it from the list */
+ list_del(&bus->link);
+
+ if (current_mii == bus)
+ current_mii = NULL;
+
+ return 0;
+}
+
void mdio_list_devices(void)
{
struct list_head *entry;
diff --git a/include/miiphy.h b/include/miiphy.h
index 088797e..af12274 100644
--- a/include/miiphy.h
+++ b/include/miiphy.h
@@ -59,7 +59,9 @@ struct phy_device *mdio_phydev_for_ethname(const char
*devname);
void miiphy_listdev(void);
struct mii_dev *mdio_alloc(void);
+void mdio_free(struct mii_dev *bus);
int mdio_register(struct mii_dev *bus);
+int mdio_unregister(struct mii_dev *bus);
void mdio_list_devices(void);
#ifdef CONFIG_BITBANGMII
--
1.8.2.1
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot