aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorAndy Fleming <afleming@freescale.com>2005-08-24 19:46:21 -0400
committerJeff Garzik <jgarzik@pobox.com>2005-08-28 20:28:25 -0400
commite13934563db047043ccead26412f552375cea90c (patch)
tree4013ca99f718559447315370c9d5e220e71d99d5 /include/linux
parent86f0cd505781e42000763821ec6f70127a6abaae (diff)
[PATCH] PHY Layer fixup
This patch adds back the code that was taken out, thus re-enabling: * The PHY Layer to initialize without crashing * Drivers to actually connect to PHYs * The entire PHY Control Layer This patch is used by the gianfar driver, and other drivers which are in development. Signed-off-by: Andy Fleming <afleming@freescale.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/phy.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/include/linux/phy.h b/include/linux/phy.h
index 4f2b5effc16b..72cb67b66e0c 100644
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -334,11 +334,26 @@ int phy_write(struct phy_device *phydev, u16 regnum, u16 val);
334struct phy_device* get_phy_device(struct mii_bus *bus, int addr); 334struct phy_device* get_phy_device(struct mii_bus *bus, int addr);
335int phy_clear_interrupt(struct phy_device *phydev); 335int phy_clear_interrupt(struct phy_device *phydev);
336int phy_config_interrupt(struct phy_device *phydev, u32 interrupts); 336int phy_config_interrupt(struct phy_device *phydev, u32 interrupts);
337struct phy_device * phy_attach(struct net_device *dev,
338 const char *phy_id, u32 flags);
339struct phy_device * phy_connect(struct net_device *dev, const char *phy_id,
340 void (*handler)(struct net_device *), u32 flags);
341void phy_disconnect(struct phy_device *phydev);
342void phy_detach(struct phy_device *phydev);
343void phy_start(struct phy_device *phydev);
344void phy_stop(struct phy_device *phydev);
345int phy_start_aneg(struct phy_device *phydev);
346
347int mdiobus_register(struct mii_bus *bus);
348void mdiobus_unregister(struct mii_bus *bus);
349void phy_sanitize_settings(struct phy_device *phydev);
350int phy_stop_interrupts(struct phy_device *phydev);
337 351
338static inline int phy_read_status(struct phy_device *phydev) { 352static inline int phy_read_status(struct phy_device *phydev) {
339 return phydev->drv->read_status(phydev); 353 return phydev->drv->read_status(phydev);
340} 354}
341 355
356int genphy_config_advert(struct phy_device *phydev);
342int genphy_setup_forced(struct phy_device *phydev); 357int genphy_setup_forced(struct phy_device *phydev);
343int genphy_restart_aneg(struct phy_device *phydev); 358int genphy_restart_aneg(struct phy_device *phydev);
344int genphy_config_aneg(struct phy_device *phydev); 359int genphy_config_aneg(struct phy_device *phydev);
@@ -355,6 +370,8 @@ int phy_ethtool_sset(struct phy_device *phydev, struct ethtool_cmd *cmd);
355int phy_ethtool_gset(struct phy_device *phydev, struct ethtool_cmd *cmd); 370int phy_ethtool_gset(struct phy_device *phydev, struct ethtool_cmd *cmd);
356int phy_mii_ioctl(struct phy_device *phydev, 371int phy_mii_ioctl(struct phy_device *phydev,
357 struct mii_ioctl_data *mii_data, int cmd); 372 struct mii_ioctl_data *mii_data, int cmd);
373int phy_start_interrupts(struct phy_device *phydev);
374void phy_print_status(struct phy_device *phydev);
358 375
359extern struct bus_type mdio_bus_type; 376extern struct bus_type mdio_bus_type;
360#endif /* __PHY_H */ 377#endif /* __PHY_H */