phylib.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /*
  3. * phylib header
  4. */
  5. #ifndef __PHYLIB_H
  6. #define __PHYLIB_H
  7. struct device_node;
  8. struct phy_device;
  9. struct mii_bus;
  10. struct device_node *phy_package_get_node(struct phy_device *phydev);
  11. void *phy_package_get_priv(struct phy_device *phydev);
  12. int __phy_package_read(struct phy_device *phydev, unsigned int addr_offset,
  13. u32 regnum);
  14. int __phy_package_write(struct phy_device *phydev, unsigned int addr_offset,
  15. u32 regnum, u16 val);
  16. int __phy_package_read_mmd(struct phy_device *phydev,
  17. unsigned int addr_offset, int devad,
  18. u32 regnum);
  19. int __phy_package_write_mmd(struct phy_device *phydev,
  20. unsigned int addr_offset, int devad,
  21. u32 regnum, u16 val);
  22. bool phy_package_init_once(struct phy_device *phydev);
  23. bool phy_package_probe_once(struct phy_device *phydev);
  24. int phy_package_join(struct phy_device *phydev, int base_addr, size_t priv_size);
  25. int of_phy_package_join(struct phy_device *phydev, size_t priv_size);
  26. void phy_package_leave(struct phy_device *phydev);
  27. int devm_phy_package_join(struct device *dev, struct phy_device *phydev,
  28. int base_addr, size_t priv_size);
  29. int devm_of_phy_package_join(struct device *dev, struct phy_device *phydev,
  30. size_t priv_size);
  31. int mmd_phy_read(struct mii_bus *bus, int phy_addr, bool is_c45,
  32. int devad, u32 regnum);
  33. int mmd_phy_write(struct mii_bus *bus, int phy_addr, bool is_c45,
  34. int devad, u32 regnum, u16 val);
  35. #endif /* __PHYLIB_H */