aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/fs_enet/fs_enet.h
diff options
context:
space:
mode:
authorMaxime Chevallier <maxime.chevallier@bootlin.com>2024-09-04 19:18:21 +0200
committerDavid S. Miller <davem@davemloft.net>2024-09-09 10:29:04 +0100
commit41f5fbffd177785e9432e7b2d30bc83b06e6e65d (patch)
treeb0d73babc46f616d5fdd98aa2463a0dd5122a7e1 /drivers/net/ethernet/freescale/fs_enet/fs_enet.h
parentc614acf6e8e175694db7ea21f3ddca6e075680fd (diff)
downloadlinux-41f5fbffd177785e9432e7b2d30bc83b06e6e65d.tar.gz
linux-41f5fbffd177785e9432e7b2d30bc83b06e6e65d.tar.bz2
linux-41f5fbffd177785e9432e7b2d30bc83b06e6e65d.zip
net: ethernet: fs_enet: phylink conversion
fs_enet is a quite old but still used Ethernet driver found on some NXP devices. It has support for 10/100 Mbps ethernet, with half and full duplex. Some variants of it can use RMII, while other integrations are MII-only. Add phylink support, thus removing custom fixed-link hanldling. This also allows removing some internal flags such as the use_rmii flag. Acked-by: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/freescale/fs_enet/fs_enet.h')
-rw-r--r--drivers/net/ethernet/freescale/fs_enet/fs_enet.h12
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/net/ethernet/freescale/fs_enet/fs_enet.h b/drivers/net/ethernet/freescale/fs_enet/fs_enet.h
index 6ebb1b4404c7..36e4fcc29e36 100644
--- a/drivers/net/ethernet/freescale/fs_enet/fs_enet.h
+++ b/drivers/net/ethernet/freescale/fs_enet/fs_enet.h
@@ -7,6 +7,7 @@
#include <linux/types.h>
#include <linux/list.h>
#include <linux/phy.h>
+#include <linux/phylink.h>
#include <linux/dma-mapping.h>
#ifdef CONFIG_CPM1
@@ -76,7 +77,8 @@ struct fs_ops {
void (*free_bd)(struct net_device *dev);
void (*cleanup_data)(struct net_device *dev);
void (*set_multicast_list)(struct net_device *dev);
- void (*restart)(struct net_device *dev);
+ void (*restart)(struct net_device *dev, phy_interface_t interface,
+ int speed, int duplex);
void (*stop)(struct net_device *dev);
void (*napi_clear_event)(struct net_device *dev);
void (*napi_enable)(struct net_device *dev);
@@ -112,13 +114,9 @@ struct fs_platform_info {
u32 dpram_offset;
- struct device_node *phy_node;
-
int rx_ring, tx_ring; /* number of buffers on rx */
int rx_copybreak; /* limit we copy small frames */
int napi_weight; /* NAPI weight */
-
- int use_rmii; /* use RMII mode */
};
struct fs_enet_private {
@@ -143,10 +141,10 @@ struct fs_enet_private {
cbd_t __iomem *cur_tx;
int tx_free;
u32 msg_enable;
+ struct phylink *phylink;
+ struct phylink_config phylink_config;
int interrupt;
- int oldduplex, oldspeed, oldlink; /* current settings */
-
/* event masks */
u32 ev_napi; /* mask of NAPI events */
u32 ev; /* event mask */