On 10/27/2017 02:12 AM, Lukasz Majewski wrote: > This commit allows extended Marvell registers to be read with: > > foo > mdio rx FEC 3.10 > Reading from bus FEC > PHY at address 0: > 3.16 - 0x1063 > foo > mdio wx FEC 3.10 0x1011 > > The above code changes the way ETH connector LEDs blink. > > Signed-off-by: Lukasz Majewski <lu...@denx.de> > > --- > > Changes in v2: > - Provide the readext and writeext callbacks to other marvell ETH PHY > devices > > drivers/net/phy/marvell.c | 47 > +++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 47 insertions(+) > > diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c > index b7f300e..19f451d 100644 > --- a/drivers/net/phy/marvell.c > +++ b/drivers/net/phy/marvell.c > @@ -104,6 +104,31 @@ > #define MIIM_88E151x_MODE_SGMII 1 > #define MIIM_88E151x_RESET_OFFS 15 > > +static int m88e1xxx_phy_extread(struct phy_device *phydev, int addr, > + int devaddr, int regnum) > +{ > + int oldpage = phy_read(phydev, MDIO_DEVAD_NONE, MII_MARVELL_PHY_PAGE); > + int val; > + > + phy_write(phydev, MDIO_DEVAD_NONE, MII_MARVELL_PHY_PAGE, devaddr); > + val = phy_read(phydev, MDIO_DEVAD_NONE, regnum); > + phy_write(phydev, MDIO_DEVAD_NONE, MII_MARVELL_PHY_PAGE, oldpage); > + > + return val; > +} > + > +static int m88e1xxx_phy_extwrite(struct phy_device *phydev, int addr, > + int devaddr, int regnum, u16 val) > +{ > + int oldpage = phy_read(phydev, MDIO_DEVAD_NONE, MII_MARVELL_PHY_PAGE); > + > + phy_write(phydev, MDIO_DEVAD_NONE, MII_MARVELL_PHY_PAGE, devaddr); > + phy_write(phydev, MDIO_DEVAD_NONE, regnum, val); > + phy_write(phydev, MDIO_DEVAD_NONE, MII_MARVELL_PHY_PAGE, oldpage); > + > + return 0; > +} > + > /* Marvell 88E1011S */ > static int m88e1011s_config(struct phy_device *phydev) > { > @@ -599,6 +624,8 @@ static struct phy_driver M88E1011S_driver = { > .config = &m88e1011s_config, > .startup = &m88e1011s_startup, > .shutdown = &genphy_shutdown, > + .readext = &m88e1xxx_phy_extread, > + .writeext = &m88e1xxx_phy_extwrite, > }; >
Lukasz, This seems wrong. 88E1011S doesn't have the page register. I can only confirm 88E1111 and 88E1145 have pages. I don't have other part's datasheet to check. York _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot