• Vladimir Oltean's avatar
    net: dsa: sja1105: enable internal pull-down for RX_DV/CRS_DV/RX_CTL and RX_ER · 135e3018
    Vladimir Oltean authored
    Some boards do not have the RX_ER MII signal connected. Normally in such
    situation, those pins would be grounded, but then again, some boards
    left it electrically floating.
    
    When sending traffic to those switch ports, one can see that the
    N_SOFERR statistics counter is incrementing once per each packet. The
    user manual states for this counter that it may count the number of
    frames "that have the MII error input being asserted prior to or
    up to the SOF delimiter byte". So the switch MAC is sampling an
    electrically floating signal, and preventing proper traffic reception
    because of that.
    
    As a workaround, enable the internal weak pull-downs on the input pads
    for the MII control signals. This way, a floating signal would be
    internally tied to ground.
    
    The logic levels of signals which _are_ externally driven should not be
    bothered by this 40-50 KOhm internal resistor. So it is not an issue to
    enable the internal pull-down unconditionally, irrespective of PHY
    interface type (MII, RMII, RGMII, SGMII) and of board layout.
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    135e3018
sja1105_clocking.c 20.9 KB