1/* SPDX-License-Identifier: GPL-2.0-or-later */
2/*
3 * phylib-internal header
4 */
5
6#ifndef __PHYLIB_INTERNAL_H
7#define __PHYLIB_INTERNAL_H
8
9struct phy_device;
10struct mii_bus;
11
12/*
13 * phy_supported_speeds - return all speeds currently supported by a PHY device
14 */
15unsigned int phy_supported_speeds(struct phy_device *phy,
16 unsigned int *speeds,
17 unsigned int size);
18void of_set_phy_supported(struct phy_device *phydev);
19void of_set_phy_eee_broken(struct phy_device *phydev);
20void of_set_phy_timing_role(struct phy_device *phydev);
21int phy_speed_down_core(struct phy_device *phydev);
22void phy_check_downshift(struct phy_device *phydev);
23
24int mmd_phy_read(struct mii_bus *bus, int phy_addr, bool is_c45,
25 int devad, u32 regnum);
26int mmd_phy_write(struct mii_bus *bus, int phy_addr, bool is_c45,
27 int devad, u32 regnum, u16 val);
28
29int genphy_c45_read_eee_adv(struct phy_device *phydev, unsigned long *adv);
30
31#endif /* __PHYLIB_INTERNAL_H */
32