* [PATCH v1 net-next] net: dsa: mv88e6xxx: 88E6141/6341 SERDES support
@ 2018-05-03 13:06 Marek Behún
2018-05-03 13:15 ` Andrew Lunn
0 siblings, 1 reply; 3+ messages in thread
From: Marek Behún @ 2018-05-03 13:06 UTC (permalink / raw)
To: netdev
Cc: Andrew Lunn, Greg Kroah-Hartman, Vivien Didelot,
Arkadi Sharshevsky, David S . Miller, Marek Behún
The 88E6141/6341 switches (also known as Topaz) have 1 SGMII lane,
which can be configured the same way as the SERDES lane on 88E6390.
Signed-off-by: Marek Behun <marek.behun@nic.cz>
---
drivers/net/dsa/mv88e6xxx/chip.c | 2 ++
drivers/net/dsa/mv88e6xxx/serdes.c | 20 ++++++++++++++++++++
drivers/net/dsa/mv88e6xxx/serdes.h | 1 +
3 files changed, 23 insertions(+)
diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index eebda5ec9676..e9600a82dc83 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -2426,6 +2426,7 @@ static const struct mv88e6xxx_ops mv88e6141_ops = {
.reset = mv88e6352_g1_reset,
.vtu_getnext = mv88e6352_g1_vtu_getnext,
.vtu_loadpurge = mv88e6352_g1_vtu_loadpurge,
+ .serdes_power = mv88e6341_serdes_power,
};
static const struct mv88e6xxx_ops mv88e6161_ops = {
@@ -2924,6 +2925,7 @@ static const struct mv88e6xxx_ops mv88e6341_ops = {
.reset = mv88e6352_g1_reset,
.vtu_getnext = mv88e6352_g1_vtu_getnext,
.vtu_loadpurge = mv88e6352_g1_vtu_loadpurge,
+ .serdes_power = mv88e6341_serdes_power,
};
static const struct mv88e6xxx_ops mv88e6350_ops = {
diff --git a/drivers/net/dsa/mv88e6xxx/serdes.c b/drivers/net/dsa/mv88e6xxx/serdes.c
index f3c01119b3d1..cd03a62946e3 100644
--- a/drivers/net/dsa/mv88e6xxx/serdes.c
+++ b/drivers/net/dsa/mv88e6xxx/serdes.c
@@ -227,3 +227,23 @@ int mv88e6390_serdes_power(struct mv88e6xxx_chip *chip, int port, bool on)
return 0;
}
+
+int mv88e6341_serdes_power(struct mv88e6xxx_chip *chip, int port, bool on)
+{
+ int err;
+ u8 cmode;
+
+ if (port != 5)
+ return 0;
+
+ err = mv88e6xxx_port_get_cmode(chip, port, &cmode);
+ if (err)
+ return err;
+
+ if ((cmode == MV88E6XXX_PORT_STS_CMODE_1000BASE_X) ||
+ (cmode == MV88E6XXX_PORT_STS_CMODE_SGMII) ||
+ (cmode == MV88E6XXX_PORT_STS_CMODE_2500BASEX))
+ return mv88e6390_serdes_sgmii(chip, 0x15, on);
+
+ return 0;
+}
diff --git a/drivers/net/dsa/mv88e6xxx/serdes.h b/drivers/net/dsa/mv88e6xxx/serdes.h
index 5c1cd6d8e9a5..d7dc6decf69b 100644
--- a/drivers/net/dsa/mv88e6xxx/serdes.h
+++ b/drivers/net/dsa/mv88e6xxx/serdes.h
@@ -42,6 +42,7 @@
#define MV88E6390_SGMII_CONTROL_LOOPBACK BIT(14)
#define MV88E6390_SGMII_CONTROL_PDOWN BIT(11)
+int mv88e6341_serdes_power(struct mv88e6xxx_chip *chip, int port, bool on);
int mv88e6352_serdes_power(struct mv88e6xxx_chip *chip, int port, bool on);
int mv88e6390_serdes_power(struct mv88e6xxx_chip *chip, int port, bool on);
--
2.16.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v1 net-next] net: dsa: mv88e6xxx: 88E6141/6341 SERDES support
2018-05-03 13:06 [PATCH v1 net-next] net: dsa: mv88e6xxx: 88E6141/6341 SERDES support Marek Behún
@ 2018-05-03 13:15 ` Andrew Lunn
2018-05-03 14:31 ` Marek Behún
0 siblings, 1 reply; 3+ messages in thread
From: Andrew Lunn @ 2018-05-03 13:15 UTC (permalink / raw)
To: Marek Behún
Cc: netdev, Greg Kroah-Hartman, Vivien Didelot, Arkadi Sharshevsky,
David S . Miller
On Thu, May 03, 2018 at 03:06:48PM +0200, Marek Behún wrote:
> The 88E6141/6341 switches (also known as Topaz) have 1 SGMII lane,
> which can be configured the same way as the SERDES lane on 88E6390.
>
> Signed-off-by: Marek Behun <marek.behun@nic.cz>
> +int mv88e6341_serdes_power(struct mv88e6xxx_chip *chip, int port, bool on)
> +{
> + int err;
> + u8 cmode;
> +
> + if (port != 5)
> + return 0;
> +
> + err = mv88e6xxx_port_get_cmode(chip, port, &cmode);
> + if (err)
> + return err;
> +
> + if ((cmode == MV88E6XXX_PORT_STS_CMODE_1000BASE_X) ||
> + (cmode == MV88E6XXX_PORT_STS_CMODE_SGMII) ||
> + (cmode == MV88E6XXX_PORT_STS_CMODE_2500BASEX))
> + return mv88e6390_serdes_sgmii(chip, 0x15, on);
Hi Marek
Please add a #define for this 0x15.
Otherwise, this looks good.
Andrew
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v1 net-next] net: dsa: mv88e6xxx: 88E6141/6341 SERDES support
2018-05-03 13:15 ` Andrew Lunn
@ 2018-05-03 14:31 ` Marek Behún
0 siblings, 0 replies; 3+ messages in thread
From: Marek Behún @ 2018-05-03 14:31 UTC (permalink / raw)
To: Andrew Lunn
Cc: netdev, Greg Kroah-Hartman, Vivien Didelot, Arkadi Sharshevsky,
David S . Miller
Sent v2
On Thu, 3 May 2018 15:15:15 +0200
Andrew Lunn <andrew@lunn.ch> wrote:
> On Thu, May 03, 2018 at 03:06:48PM +0200, Marek Behún wrote:
> > The 88E6141/6341 switches (also known as Topaz) have 1 SGMII lane,
> > which can be configured the same way as the SERDES lane on 88E6390.
> >
> > Signed-off-by: Marek Behun <marek.behun@nic.cz>
>
> > +int mv88e6341_serdes_power(struct mv88e6xxx_chip *chip, int port,
> > bool on) +{
> > + int err;
> > + u8 cmode;
> > +
> > + if (port != 5)
> > + return 0;
> > +
> > + err = mv88e6xxx_port_get_cmode(chip, port, &cmode);
> > + if (err)
> > + return err;
> > +
> > + if ((cmode == MV88E6XXX_PORT_STS_CMODE_1000BASE_X) ||
> > + (cmode == MV88E6XXX_PORT_STS_CMODE_SGMII) ||
> > + (cmode == MV88E6XXX_PORT_STS_CMODE_2500BASEX))
> > + return mv88e6390_serdes_sgmii(chip, 0x15, on);
>
> Hi Marek
>
> Please add a #define for this 0x15.
>
> Otherwise, this looks good.
>
> Andrew
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-05-03 14:31 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-03 13:06 [PATCH v1 net-next] net: dsa: mv88e6xxx: 88E6141/6341 SERDES support Marek Behún
2018-05-03 13:15 ` Andrew Lunn
2018-05-03 14:31 ` Marek Behún
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.