• Rasmus Villemoes's avatar
    net: dsa: mv88e6xxx: implement port_link_state for mv88e6250 · ce91c453
    Rasmus Villemoes authored
    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: default avatarAndrew Lunn <andrew@lunn.ch>
    Signed-off-by: default avatarRasmus Villemoes <rasmus.villemoes@prevas.dk>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    ce91c453
port.c 29.1 KB