summaryrefslogtreecommitdiff
path: root/include/linux/phy_fixed.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/phy_fixed.h')
-rw-r--r--include/linux/phy_fixed.h49
1 files changed, 32 insertions, 17 deletions
diff --git a/include/linux/phy_fixed.h b/include/linux/phy_fixed.h
index 509d8f5f984e..436bff20f324 100644
--- a/include/linux/phy_fixed.h
+++ b/include/linux/phy_fixed.h
@@ -1,31 +1,46 @@
+/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __PHY_FIXED_H
#define __PHY_FIXED_H
+#include <linux/types.h>
+
struct fixed_phy_status {
- int link;
int speed;
int duplex;
- int pause;
- int asym_pause;
+ bool link:1;
+ bool pause:1;
+ bool asym_pause:1;
};
-#ifdef CONFIG_FIXED_PHY
-extern int fixed_phy_add(unsigned int irq, int phy_id,
- struct fixed_phy_status *status);
-#else
-static inline int fixed_phy_add(unsigned int irq, int phy_id,
- struct fixed_phy_status *status)
-{
- return -ENODEV;
-}
-#endif /* CONFIG_FIXED_PHY */
+struct device_node;
+struct net_device;
+
+#if IS_ENABLED(CONFIG_FIXED_PHY)
+extern int fixed_phy_change_carrier(struct net_device *dev, bool new_carrier);
+struct phy_device *fixed_phy_register(const struct fixed_phy_status *status,
+ struct device_node *np);
+struct phy_device *fixed_phy_register_100fd(void);
-/*
- * This function issued only by fixed_phy-aware drivers, no need
- * protect it with #ifdef
- */
+extern void fixed_phy_unregister(struct phy_device *phydev);
extern int fixed_phy_set_link_update(struct phy_device *phydev,
int (*link_update)(struct net_device *,
struct fixed_phy_status *));
+#else
+static inline struct phy_device *
+fixed_phy_register(const struct fixed_phy_status *status,
+ struct device_node *np)
+{
+ return ERR_PTR(-ENODEV);
+}
+
+static inline struct phy_device *fixed_phy_register_100fd(void)
+{
+ return ERR_PTR(-ENODEV);
+}
+
+static inline void fixed_phy_unregister(struct phy_device *phydev)
+{
+}
+#endif /* CONFIG_FIXED_PHY */
#endif /* __PHY_FIXED_H */