• Martin Blumenstingl's avatar
    net: dsa: lantiq_gswip: Don't set GSWIP_MII_CFG_RMII_CLK · 71cffebf
    Martin Blumenstingl authored
    Commit 4b592324 ("net: dsa: lantiq_gswip: Configure all remaining
    GSWIP_MII_CFG bits") added all known bits in the GSWIP_MII_CFGp
    register. It helped bring this register into a well-defined state so the
    driver has to rely less on the bootloader to do things right.
    Unfortunately it also sets the GSWIP_MII_CFG_RMII_CLK bit without any
    possibility to configure it. Upon further testing it turns out that all
    boards which are supported by the GSWIP driver in OpenWrt which use an
    RMII PHY have a dedicated oscillator on the board which provides the
    50MHz RMII reference clock.
    
    Don't set the GSWIP_MII_CFG_RMII_CLK bit (but keep the code which always
    clears it) to fix support for the Fritz!Box 7362 SL in OpenWrt. This is
    a board with two Atheros AR8030 RMII PHYs. With the "RMII clock" bit set
    the MAC also generates the RMII reference clock whose signal then
    conflicts with the signal from the oscillator on the board. This results
    in a constant cycle of the PHY detecting link up/down (and as a result
    of that: the two ports using the AR8030 PHYs are not working).
    
    At the time of writing this patch there's no known board where the MAC
    (GSWIP) has to generate the RMII reference clock. If needed this can be
    implemented in future by providing a device-tree flag so the
    GSWIP_MII_CFG_RMII_CLK bit can be toggled per port.
    
    Fixes: 4b592324 ("net: dsa: lantiq_gswip: Configure all remaining GSWIP_MII_CFG bits")
    Tested-by: default avatarJan Hoffmann <jan@3e8.eu>
    Signed-off-by: default avatarMartin Blumenstingl <martin.blumenstingl@googlemail.com>
    Acked-by: default avatarHauke Mehrtens <hauke@hauke-m.de>
    Link: https://lore.kernel.org/r/20220425152027.2220750-1-martin.blumenstingl@googlemail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    71cffebf
lantiq_gswip.c 64.3 KB