aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mdio.h
diff options
context:
space:
mode:
authorAndrew Lunn <andrew@lunn.ch>2016-01-06 20:11:18 +0100
committerDavid S. Miller <davem@davemloft.net>2016-01-07 14:31:26 -0500
commit7f854420fbfe9d49afe2ffb1df052cfe8e215541 (patch)
tree1f3c8d932976b597cdb6db3e53b06b4a95c5d303 /include/linux/mdio.h
parentof: phy: Only register a phy device for phys (diff)
downloadlinux-dev-7f854420fbfe9d49afe2ffb1df052cfe8e215541.tar.xz
linux-dev-7f854420fbfe9d49afe2ffb1df052cfe8e215541.zip
phy: Add API for {un}registering an mdio device to a bus.
Rather than have drivers directly manipulate the mii_bus structure, provide and API for registering and unregistering devices on an MDIO bus, and performing lookups. Signed-off-by: Andrew Lunn <andrew@lunn.ch> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/mdio.h')
-rw-r--r--include/linux/mdio.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/linux/mdio.h b/include/linux/mdio.h
index 94f9f1491cde..8cd9579e18ea 100644
--- a/include/linux/mdio.h
+++ b/include/linux/mdio.h
@@ -19,9 +19,12 @@ struct mdio_device {
struct mii_bus *bus;
/* Bus address of the MDIO device (0-31) */
int addr;
+ int flags;
};
#define to_mdio_device(d) container_of(d, struct mdio_device, dev)
+#define MDIO_DEVICE_FLAG_PHY 1
+
static inline bool mdio_phy_id_is_c45(int phy_id)
{
return (phy_id & MDIO_PHY_ID_C45) && !(phy_id & ~MDIO_PHY_ID_C45_MASK);
@@ -188,4 +191,9 @@ int mdiobus_read_nested(struct mii_bus *bus, int addr, u32 regnum);
int mdiobus_write(struct mii_bus *bus, int addr, u32 regnum, u16 val);
int mdiobus_write_nested(struct mii_bus *bus, int addr, u32 regnum, u16 val);
+int mdiobus_register_device(struct mdio_device *mdiodev);
+int mdiobus_unregister_device(struct mdio_device *mdiodev);
+bool mdiobus_is_registered_device(struct mii_bus *bus, int addr);
+struct phy_device *mdiobus_get_phy(struct mii_bus *bus, int addr);
+
#endif /* __LINUX_MDIO_H__ */