diff options
author | Maxime Chevallier <maxime.chevallier@bootlin.com> | 2024-09-04 19:18:21 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2024-09-09 10:29:04 +0100 |
commit | 41f5fbffd177785e9432e7b2d30bc83b06e6e65d (patch) | |
tree | b0d73babc46f616d5fdd98aa2463a0dd5122a7e1 /drivers/net/ethernet/freescale/fs_enet/fs_enet.h | |
parent | c614acf6e8e175694db7ea21f3ddca6e075680fd (diff) | |
download | linux-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.h | 12 |
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 */ |