diff options
Diffstat (limited to 'include/linux/phy.h')
| -rw-r--r-- | include/linux/phy.h | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/include/linux/phy.h b/include/linux/phy.h index 779cbcd65f62..02df20f085fe 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h | |||
| @@ -379,6 +379,18 @@ struct phy_driver { | |||
| 379 | }; | 379 | }; |
| 380 | #define to_phy_driver(d) container_of(d, struct phy_driver, driver) | 380 | #define to_phy_driver(d) container_of(d, struct phy_driver, driver) |
| 381 | 381 | ||
| 382 | #define PHY_ANY_ID "MATCH ANY PHY" | ||
| 383 | #define PHY_ANY_UID 0xffffffff | ||
| 384 | |||
| 385 | /* A Structure for boards to register fixups with the PHY Lib */ | ||
| 386 | struct phy_fixup { | ||
| 387 | struct list_head list; | ||
| 388 | char bus_id[BUS_ID_SIZE]; | ||
| 389 | u32 phy_uid; | ||
| 390 | u32 phy_uid_mask; | ||
| 391 | int (*run)(struct phy_device *phydev); | ||
| 392 | }; | ||
| 393 | |||
| 382 | int phy_read(struct phy_device *phydev, u16 regnum); | 394 | int phy_read(struct phy_device *phydev, u16 regnum); |
| 383 | int phy_write(struct phy_device *phydev, u16 regnum, u16 val); | 395 | int phy_write(struct phy_device *phydev, u16 regnum, u16 val); |
| 384 | int get_phy_id(struct mii_bus *bus, int addr, u32 *phy_id); | 396 | int get_phy_id(struct mii_bus *bus, int addr, u32 *phy_id); |
| @@ -386,8 +398,8 @@ struct phy_device* get_phy_device(struct mii_bus *bus, int addr); | |||
| 386 | int phy_clear_interrupt(struct phy_device *phydev); | 398 | int phy_clear_interrupt(struct phy_device *phydev); |
| 387 | int phy_config_interrupt(struct phy_device *phydev, u32 interrupts); | 399 | int phy_config_interrupt(struct phy_device *phydev, u32 interrupts); |
| 388 | struct phy_device * phy_attach(struct net_device *dev, | 400 | struct phy_device * phy_attach(struct net_device *dev, |
| 389 | const char *phy_id, u32 flags, phy_interface_t interface); | 401 | const char *bus_id, u32 flags, phy_interface_t interface); |
| 390 | struct phy_device * phy_connect(struct net_device *dev, const char *phy_id, | 402 | struct phy_device * phy_connect(struct net_device *dev, const char *bus_id, |
| 391 | void (*handler)(struct net_device *), u32 flags, | 403 | void (*handler)(struct net_device *), u32 flags, |
| 392 | phy_interface_t interface); | 404 | phy_interface_t interface); |
| 393 | void phy_disconnect(struct phy_device *phydev); | 405 | void phy_disconnect(struct phy_device *phydev); |
| @@ -427,5 +439,13 @@ void phy_print_status(struct phy_device *phydev); | |||
| 427 | struct phy_device* phy_device_create(struct mii_bus *bus, int addr, int phy_id); | 439 | struct phy_device* phy_device_create(struct mii_bus *bus, int addr, int phy_id); |
| 428 | void phy_device_free(struct phy_device *phydev); | 440 | void phy_device_free(struct phy_device *phydev); |
| 429 | 441 | ||
| 442 | int phy_register_fixup(const char *bus_id, u32 phy_uid, u32 phy_uid_mask, | ||
| 443 | int (*run)(struct phy_device *)); | ||
| 444 | int phy_register_fixup_for_id(const char *bus_id, | ||
| 445 | int (*run)(struct phy_device *)); | ||
| 446 | int phy_register_fixup_for_uid(u32 phy_uid, u32 phy_uid_mask, | ||
| 447 | int (*run)(struct phy_device *)); | ||
| 448 | int phy_scan_fixups(struct phy_device *phydev); | ||
| 449 | |||
| 430 | extern struct bus_type mdio_bus_type; | 450 | extern struct bus_type mdio_bus_type; |
| 431 | #endif /* __PHY_H */ | 451 | #endif /* __PHY_H */ |
