On Thu, 28 May 2020 02:41:13 +0300 Vladimir Oltean wrote: > From: Maxim Kochetkov <fido_...@inbox.ru> > > This is a 10-port (8 external, 2 internal) switch from > Vitesse/Microsemi/Microchip that is integrated into the Freescale/NXP > T1040 PowerPC SoC. The situation is very similar to Felix from NXP > LS1028A, except that this is a platform device and Felix is a PCI > device. > > Extending the Felix driver to probe a PCI as well as a platform device > would have introduced unnecessary complexity. The 'meat' of both drivers > is in drivers/net/ethernet/mscc/ocelot*.c anyway, so let's just > duplicate the Felix driver, s/Felix/Seville/, and define the low-level > bits in seville_vsc9953.c. > > Like Felix, this driver configures its own PCS on the internal MDIO bus > using a phy_device abstraction for it (yes, it will be refactored to use > a raw mdio_device, like other phylink drivers do, but let's keep it like > that for now). But unlike Felix, the MDIO bus and the PCS are not from > the same vendor. The PCS is the same QorIQ/Layerscape PCS as found in > Felix/ENETC/DPAA*, but the internal MDIO bus that is used to access it > is actually an instantiation of drivers/net/phy/mdio-mscc-miim.c. But it > would be difficult to reuse that driver (it doesn't even use regmap, and > it's less than 200 lines of code), so we hand-roll here some internal > MDIO bus accessors within seville_vsc9953.c, which serves the purpose of > driving the PCS absolutely fine. > > Also, same as Felix, the PCS doesn't support dynamic reconfiguration of > SerDes protocol, so we need to do pre-validation of PHY mode from device > tree and not let phylink change it. > > Signed-off-by: Maxim Kochetkov <fido_...@inbox.ru> > Signed-off-by: Vladimir Oltean <vladimir.olt...@nxp.com>
drivers/net/dsa/ocelot/seville_vsc9953.c:636:19: warning: symbol 'vsc9953_vcap_is2_keys' was not declared. Should it be static? drivers/net/dsa/ocelot/seville_vsc9953.c:706:19: warning: symbol 'vsc9953_vcap_is2_actions' was not declared. Should it be static?