linux/include/linux/phy_fixed.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef __PHY_FIXED_H
   3#define __PHY_FIXED_H
   4
   5struct fixed_phy_status {
   6        int link;
   7        int speed;
   8        int duplex;
   9        int pause;
  10        int asym_pause;
  11};
  12
  13struct device_node;
  14struct gpio_desc;
  15
  16#if IS_ENABLED(CONFIG_FIXED_PHY)
  17extern int fixed_phy_change_carrier(struct net_device *dev, bool new_carrier);
  18extern int fixed_phy_add(unsigned int irq, int phy_id,
  19                         struct fixed_phy_status *status);
  20extern struct phy_device *fixed_phy_register(unsigned int irq,
  21                                             struct fixed_phy_status *status,
  22                                             struct device_node *np);
  23
  24extern struct phy_device *
  25fixed_phy_register_with_gpiod(unsigned int irq,
  26                              struct fixed_phy_status *status,
  27                              struct gpio_desc *gpiod);
  28
  29extern void fixed_phy_unregister(struct phy_device *phydev);
  30extern int fixed_phy_set_link_update(struct phy_device *phydev,
  31                        int (*link_update)(struct net_device *,
  32                                           struct fixed_phy_status *));
  33#else
  34static inline int fixed_phy_add(unsigned int irq, int phy_id,
  35                                struct fixed_phy_status *status)
  36{
  37        return -ENODEV;
  38}
  39static inline struct phy_device *fixed_phy_register(unsigned int irq,
  40                                                struct fixed_phy_status *status,
  41                                                struct device_node *np)
  42{
  43        return ERR_PTR(-ENODEV);
  44}
  45
  46static inline struct phy_device *
  47fixed_phy_register_with_gpiod(unsigned int irq,
  48                              struct fixed_phy_status *status,
  49                              struct gpio_desc *gpiod)
  50{
  51        return ERR_PTR(-ENODEV);
  52}
  53
  54static inline void fixed_phy_unregister(struct phy_device *phydev)
  55{
  56}
  57static inline int fixed_phy_set_link_update(struct phy_device *phydev,
  58                        int (*link_update)(struct net_device *,
  59                                           struct fixed_phy_status *))
  60{
  61        return -ENODEV;
  62}
  63static inline int fixed_phy_change_carrier(struct net_device *dev, bool new_carrier)
  64{
  65        return -EINVAL;
  66}
  67#endif /* CONFIG_FIXED_PHY */
  68
  69#endif /* __PHY_FIXED_H */
  70