diff options
Diffstat (limited to 'include/linux/phy_fixed.h')
| -rw-r--r-- | include/linux/phy_fixed.h | 49 |
1 files changed, 32 insertions, 17 deletions
diff --git a/include/linux/phy_fixed.h b/include/linux/phy_fixed.h index 509d8f5f984e..436bff20f324 100644 --- a/include/linux/phy_fixed.h +++ b/include/linux/phy_fixed.h @@ -1,31 +1,46 @@ +/* SPDX-License-Identifier: GPL-2.0 */ #ifndef __PHY_FIXED_H #define __PHY_FIXED_H +#include <linux/types.h> + struct fixed_phy_status { - int link; int speed; int duplex; - int pause; - int asym_pause; + bool link:1; + bool pause:1; + bool asym_pause:1; }; -#ifdef CONFIG_FIXED_PHY -extern int fixed_phy_add(unsigned int irq, int phy_id, - struct fixed_phy_status *status); -#else -static inline int fixed_phy_add(unsigned int irq, int phy_id, - struct fixed_phy_status *status) -{ - return -ENODEV; -} -#endif /* CONFIG_FIXED_PHY */ +struct device_node; +struct net_device; + +#if IS_ENABLED(CONFIG_FIXED_PHY) +extern int fixed_phy_change_carrier(struct net_device *dev, bool new_carrier); +struct phy_device *fixed_phy_register(const struct fixed_phy_status *status, + struct device_node *np); +struct phy_device *fixed_phy_register_100fd(void); -/* - * This function issued only by fixed_phy-aware drivers, no need - * protect it with #ifdef - */ +extern void fixed_phy_unregister(struct phy_device *phydev); extern int fixed_phy_set_link_update(struct phy_device *phydev, int (*link_update)(struct net_device *, struct fixed_phy_status *)); +#else +static inline struct phy_device * +fixed_phy_register(const struct fixed_phy_status *status, + struct device_node *np) +{ + return ERR_PTR(-ENODEV); +} + +static inline struct phy_device *fixed_phy_register_100fd(void) +{ + return ERR_PTR(-ENODEV); +} + +static inline void fixed_phy_unregister(struct phy_device *phydev) +{ +} +#endif /* CONFIG_FIXED_PHY */ #endif /* __PHY_FIXED_H */ |
