
On Thu, 26 Oct 2017 15:05:18 +0000 York Sun york.sun@nxp.com wrote:
On 09/29/2017 07:48 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 lukma@denx.de
drivers/net/phy/marvell.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+)
diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c index b7f300e..a167c34 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) { @@ -669,6 +694,8 @@ static struct phy_driver M88E1510_driver = { .config = &m88e1510_config, .startup = &m88e1011s_startup, .shutdown = &genphy_shutdown,
- .readext = &m88e1xxx_phy_extread,
- .writeext = &m88e1xxx_phy_extwrite,
};
/*
I guess this feature is usable. You only enable it for M88E1510. Can the same be applied to other Marvell PHYs?
It should work...
However, in this patch I've only enabled one - which I could test.....
I can enable more if you can help me with debugging.
York
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de