• Marek Vasut's avatar
    net: phy: micrel: Discern KSZ8051 and KSZ8795 PHYs · 8b95599c
    Marek Vasut authored
    The KSZ8051 PHY and the KSZ8794/KSZ8795/KSZ8765 switch share exactly the
    same PHY ID. Since KSZ8051 is higher in the ksphy_driver[] list of PHYs
    in the micrel PHY driver, it is used even with the KSZ87xx switch. This
    is wrong, since the KSZ8051 configures registers of the PHY which are
    not present on the simplified KSZ87xx switch PHYs and misconfigures
    other registers of the KSZ87xx switch PHYs.
    
    Fortunatelly, it is possible to tell apart the KSZ8051 PHY from the
    KSZ87xx switch by checking the Basic Status register Bit 0, which is
    read-only and indicates presence of the Extended Capability Registers.
    The KSZ8051 PHY has those registers while the KSZ87xx switch does not.
    
    This patch implements simple check for the presence of this bit for
    both the KSZ8051 PHY and KSZ87xx switch, to let both use the correct
    PHY driver instance.
    
    Fixes: 9d162ed6 ("net: phy: micrel: add support for KSZ8795")
    Signed-off-by: default avatarMarek Vasut <marex@denx.de>
    Cc: Andrew Lunn <andrew@lunn.ch>
    Cc: David S. Miller <davem@davemloft.net>
    Cc: Florian Fainelli <f.fainelli@gmail.com>
    Cc: George McCollister <george.mccollister@gmail.com>
    Cc: Heiner Kallweit <hkallweit1@gmail.com>
    Cc: Sean Nyekjaer <sean.nyekjaer@prevas.dk>
    Cc: Tristram Ha <Tristram.Ha@microchip.com>
    Cc: Woojung Huh <woojung.huh@microchip.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    8b95599c
micrel.c 30.6 KB