1#ifndef __PHY_FIXED_H
2#define __PHY_FIXED_H
3
4struct fixed_phy_status {
5	int link;
6	int speed;
7	int duplex;
8	int pause;
9	int asym_pause;
10};
11
12struct device_node;
13
14#if IS_ENABLED(CONFIG_FIXED_PHY)
15extern int fixed_phy_add(unsigned int irq, int phy_id,
16			 struct fixed_phy_status *status);
17extern struct phy_device *fixed_phy_register(unsigned int irq,
18					     struct fixed_phy_status *status,
19					     struct device_node *np);
20extern void fixed_phy_del(int phy_addr);
21extern int fixed_phy_set_link_update(struct phy_device *phydev,
22			int (*link_update)(struct net_device *,
23					   struct fixed_phy_status *));
24extern int fixed_phy_update_state(struct phy_device *phydev,
25			   const struct fixed_phy_status *status,
26			   const struct fixed_phy_status *changed);
27#else
28static inline int fixed_phy_add(unsigned int irq, int phy_id,
29				struct fixed_phy_status *status)
30{
31	return -ENODEV;
32}
33static inline struct phy_device *fixed_phy_register(unsigned int irq,
34						struct fixed_phy_status *status,
35						struct device_node *np)
36{
37	return ERR_PTR(-ENODEV);
38}
39static inline int fixed_phy_del(int phy_addr)
40{
41	return -ENODEV;
42}
43static inline int fixed_phy_set_link_update(struct phy_device *phydev,
44			int (*link_update)(struct net_device *,
45					   struct fixed_phy_status *))
46{
47	return -ENODEV;
48}
49static inline int fixed_phy_update_state(struct phy_device *phydev,
50			   const struct fixed_phy_status *status,
51			   const struct fixed_phy_status *changed)
52{
53	return -ENODEV;
54}
55#endif /* CONFIG_FIXED_PHY */
56
57#endif /* __PHY_FIXED_H */
58