1 /* SPDX-License-Identifier: GPL-2.0 */ 1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef __PHY_FIXED_H 2 #ifndef __PHY_FIXED_H 3 #define __PHY_FIXED_H 3 #define __PHY_FIXED_H 4 4 5 #include <linux/types.h> 5 #include <linux/types.h> 6 6 7 struct fixed_phy_status { 7 struct fixed_phy_status { 8 int link; 8 int link; 9 int speed; 9 int speed; 10 int duplex; 10 int duplex; 11 int pause; 11 int pause; 12 int asym_pause; 12 int asym_pause; 13 }; 13 }; 14 14 15 struct device_node; 15 struct device_node; 16 struct gpio_desc; 16 struct gpio_desc; 17 struct net_device; 17 struct net_device; 18 18 19 #if IS_ENABLED(CONFIG_FIXED_PHY) 19 #if IS_ENABLED(CONFIG_FIXED_PHY) 20 extern int fixed_phy_change_carrier(struct net 20 extern int fixed_phy_change_carrier(struct net_device *dev, bool new_carrier); 21 extern int fixed_phy_add(unsigned int irq, int 21 extern int fixed_phy_add(unsigned int irq, int phy_id, 22 struct fixed_phy_stat 22 struct fixed_phy_status *status); 23 extern struct phy_device *fixed_phy_register(u 23 extern struct phy_device *fixed_phy_register(unsigned int irq, 24 s 24 struct fixed_phy_status *status, 25 s 25 struct device_node *np); 26 26 27 extern struct phy_device * 27 extern struct phy_device * 28 fixed_phy_register_with_gpiod(unsigned int irq 28 fixed_phy_register_with_gpiod(unsigned int irq, 29 struct fixed_phy 29 struct fixed_phy_status *status, 30 struct gpio_desc 30 struct gpio_desc *gpiod); 31 31 32 extern void fixed_phy_unregister(struct phy_de 32 extern void fixed_phy_unregister(struct phy_device *phydev); 33 extern int fixed_phy_set_link_update(struct ph 33 extern int fixed_phy_set_link_update(struct phy_device *phydev, 34 int (*link_update)(str 34 int (*link_update)(struct net_device *, 35 str 35 struct fixed_phy_status *)); 36 #else 36 #else 37 static inline int fixed_phy_add(unsigned int i 37 static inline int fixed_phy_add(unsigned int irq, int phy_id, 38 struct fixed_p 38 struct fixed_phy_status *status) 39 { 39 { 40 return -ENODEV; 40 return -ENODEV; 41 } 41 } 42 static inline struct phy_device *fixed_phy_reg 42 static inline struct phy_device *fixed_phy_register(unsigned int irq, 43 43 struct fixed_phy_status *status, 44 44 struct device_node *np) 45 { 45 { 46 return ERR_PTR(-ENODEV); 46 return ERR_PTR(-ENODEV); 47 } 47 } 48 48 49 static inline struct phy_device * 49 static inline struct phy_device * 50 fixed_phy_register_with_gpiod(unsigned int irq 50 fixed_phy_register_with_gpiod(unsigned int irq, 51 struct fixed_phy 51 struct fixed_phy_status *status, 52 struct gpio_desc 52 struct gpio_desc *gpiod) 53 { 53 { 54 return ERR_PTR(-ENODEV); 54 return ERR_PTR(-ENODEV); 55 } 55 } 56 56 57 static inline void fixed_phy_unregister(struct 57 static inline void fixed_phy_unregister(struct phy_device *phydev) 58 { 58 { 59 } 59 } 60 static inline int fixed_phy_set_link_update(st 60 static inline int fixed_phy_set_link_update(struct phy_device *phydev, 61 int (*link_update)(str 61 int (*link_update)(struct net_device *, 62 str 62 struct fixed_phy_status *)) 63 { 63 { 64 return -ENODEV; 64 return -ENODEV; 65 } 65 } 66 static inline int fixed_phy_change_carrier(str 66 static inline int fixed_phy_change_carrier(struct net_device *dev, bool new_carrier) 67 { 67 { 68 return -EINVAL; 68 return -EINVAL; 69 } 69 } 70 #endif /* CONFIG_FIXED_PHY */ 70 #endif /* CONFIG_FIXED_PHY */ 71 71 72 #endif /* __PHY_FIXED_H */ 72 #endif /* __PHY_FIXED_H */ 73 73
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.