aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/mscc/ocelot.h
diff options
context:
space:
mode:
authorQuentin Schulz <quentin.schulz@bootlin.com>2018-10-04 14:22:08 +0200
committerDavid S. Miller <davem@davemloft.net>2018-10-05 14:36:44 -0700
commit71e32a20cfbf0e53f43117337d355ea505f8f081 (patch)
tree5ff8e5ac17b1b40fc1f36aa10b6f1939f8ca2033 /drivers/net/ethernet/mscc/ocelot.h
parentphy: add driver for Microsemi Ocelot SerDes muxing (diff)
downloadlinux-dev-71e32a20cfbf0e53f43117337d355ea505f8f081.tar.xz
linux-dev-71e32a20cfbf0e53f43117337d355ea505f8f081.zip
net: mscc: ocelot: make use of SerDes PHYs for handling their configuration
Previously, the SerDes muxing was hardcoded to a given mode in the MAC controller driver. Now, the SerDes muxing is configured within the Device Tree and is enforced in the MAC controller driver so we can have a lot of different SerDes configurations. Make use of the SerDes PHYs in the MAC controller to set up the SerDes according to the SerDes<->switch port mapping and the communication mode with the Ethernet PHY. Signed-off-by: Quentin Schulz <quentin.schulz@bootlin.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mscc/ocelot.h')
-rw-r--r--drivers/net/ethernet/mscc/ocelot.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/ethernet/mscc/ocelot.h b/drivers/net/ethernet/mscc/ocelot.h
index ff0e3a5d7487..62c7c8eb00d9 100644
--- a/drivers/net/ethernet/mscc/ocelot.h
+++ b/drivers/net/ethernet/mscc/ocelot.h
@@ -11,9 +11,10 @@
#include <linux/bitops.h>
#include <linux/etherdevice.h>
#include <linux/if_vlan.h>
+#include <linux/phy.h>
+#include <linux/phy/phy.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
-#include <soc/mscc/ocelot_hsio.h>
#include "ocelot_ana.h"
#include "ocelot_dev.h"
@@ -454,6 +455,9 @@ struct ocelot_port {
u8 vlan_aware;
u64 *stats;
+
+ phy_interface_t phy_mode;
+ struct phy *serdes;
};
u32 __ocelot_read_ix(struct ocelot *ocelot, u32 reg, u32 offset);