• Florian Fainelli's avatar
    net: dsa: bcm_sf2: do not use indirect reads and writes for 7445E0 · b8c6cd1d
    Florian Fainelli authored
    7445E0 contains an ECO which disconnected the internal SF2 pseudo-PHY which was
    known to conflict with the external pseudo-PHY of BCM53125 switches. This
    motivated the need to utilize the internal SF2 MDIO controller via indirect
    register reads/writes to control external Broadcom switches due to this address
    conflict (both responded at address 30d).
    
    For 7445E0, the internal pseudo-PHY of the SF2 switch got disconnected, and as
    a consequence this prevents the internal SF2 MDIO bus controller from reading
    data (reads back everything as 0) since the MDI line is tied low.
    
    Fix this by making the indirect register reads and writes conditional to
    7445D0, on 7445E0 we can utilize the SWITCH_MDIO controller (backed by
    mdio-unimac and not the DSA created slave MII bus).
    
    We utilize of_machine_is_compatible() here since this is the only way for use
    to differentiate between these two chips in a way that does not violate layers
    or becomes (too) vendor-specific.
    Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b8c6cd1d
bcm_sf2.c 28.2 KB