diff options
author | Quentin Schulz <quentin.schulz@bootlin.com> | 2018-10-04 14:22:08 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-10-05 14:36:44 -0700 |
commit | 71e32a20cfbf0e53f43117337d355ea505f8f081 (patch) | |
tree | 5ff8e5ac17b1b40fc1f36aa10b6f1939f8ca2033 /drivers/net/ethernet/mscc/ocelot.h | |
parent | phy: add driver for Microsemi Ocelot SerDes muxing (diff) | |
download | linux-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.h | 6 |
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); |