linux/drivers/net/dsa/mv88e6xxx
Rasmus Villemoes ce91c45321 net: dsa: mv88e6xxx: implement port_link_state for mv88e6250
The mv88e6250 has a rather different way of reporting the link, speed
and duplex status. A simple difference is that the link bit is bit 12
rather than bit 11 of the port status register.

It gets more complicated for speed and duplex, which do not have
separate fields. Instead, there's a four-bit PortMode field, and
decoding that depends on whether it's a phy or mii port. For the phy
ports, only four of the 16 values have defined meaning; the rest are
called "reserved", so returning {SPEED,DUPLEX}_UNKNOWN seems
reasonable.

For the mii ports, most possible values are documented (0x3 and 0x5
are reserved), but I'm unable to make sense of them all. Since the
bits simply reflect the Px_MODE[3:0] configuration pins, just support
the subset that I'm certain about. Support for other setups can be
added later.

Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-06-04 20:07:57 -07:00
..
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile net: dsa: mv88e6xxx: refine SMI support 2019-05-05 21:50:22 -07:00
chip.c net: dsa: mv88e6xxx: fix handling of upper half of STATS_TYPE_PORT 2019-05-30 12:28:06 -07:00
chip.h net: dsa: mv88e6xxx: introduce support for two chips using direct smi addressing 2019-06-04 20:07:56 -07:00
global1.c net: dsa: mv88e6xxx: add mv88e6250_g1_ieee_pri_map 2019-06-04 20:07:56 -07:00
global1.h net: dsa: mv88e6xxx: implement vtu_getnext and vtu_loadpurge for mv88e6250 2019-06-04 20:07:57 -07:00
global1_atu.c net: dsa: mv88e6xxx: prepare mv88e6xxx_g1_atu_op() for the mv88e6250 2019-06-04 20:07:57 -07:00
global1_vtu.c net: dsa: mv88e6xxx: implement vtu_getnext and vtu_loadpurge for mv88e6250 2019-06-04 20:07:57 -07:00
global2.c net: dsa: mv88e6xxx: implement watchdog_ops for mv88e6250 2019-06-04 20:07:57 -07:00
global2.h net: dsa: mv88e6xxx: implement watchdog_ops for mv88e6250 2019-06-04 20:07:57 -07:00
global2_avb.c net: dsa: mv88e6xxx: Add MV88E6165 AVB register access 2018-07-18 15:05:38 -07:00
global2_scratch.c net: dsa: mv88e6xxx: scratch registers and external MDIO pins 2018-02-22 14:46:32 -05:00
hwtstamp.c net: dsa: mv88e6xxx: Longer timeout for PTP TX timestamp 2018-07-18 15:05:38 -07:00
hwtstamp.h net: dsa: mv88e6xxx: Add hwtimestamp support for the 6165 2018-07-18 15:05:38 -07:00
phy.c net: dsa: mv88e6xxx: Fix writing to a PHY page. 2018-09-02 16:16:23 -07:00
phy.h net: dsa: mv88e6xxx: remove EEE support 2017-08-01 20:09:10 -07:00
port.c net: dsa: mv88e6xxx: implement port_link_state for mv88e6250 2019-06-04 20:07:57 -07:00
port.h net: dsa: mv88e6xxx: implement port_link_state for mv88e6250 2019-06-04 20:07:57 -07:00
ptp.c net: dsa: mv88e6xxx: Fix -Wformat-security warnings 2019-02-23 13:44:57 -08:00
ptp.h net: dsa: mv88e6xxx: Set PTP Ethertype 2018-07-18 15:05:38 -07:00
serdes.c net: dsa: mv88e6xxx: support in-band signalling on SGMII ports with external PHYs 2019-03-04 10:52:39 -08:00
serdes.h net: dsa: mv88e6xxx: support in-band signalling on SGMII ports with external PHYs 2019-03-04 10:52:39 -08:00
smi.c net: dsa: mv88e6xxx: introduce support for two chips using direct smi addressing 2019-06-04 20:07:56 -07:00
smi.h net: dsa: mv88e6xxx: refine SMI support 2019-05-05 21:50:22 -07:00