net: phy: marvell: Add functions to read PHY's extended registers
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> Reviewed-by: York Sun <york.sun@nxp.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
This commit is contained in:
parent
765a159cf5
commit
ce27eb9b40
@ -104,6 +104,31 @@
|
|||||||
#define MIIM_88E151x_MODE_SGMII 1
|
#define MIIM_88E151x_MODE_SGMII 1
|
||||||
#define MIIM_88E151x_RESET_OFFS 15
|
#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 */
|
/* Marvell 88E1011S */
|
||||||
static int m88e1011s_config(struct phy_device *phydev)
|
static int m88e1011s_config(struct phy_device *phydev)
|
||||||
{
|
{
|
||||||
@ -669,6 +694,8 @@ static struct phy_driver M88E1510_driver = {
|
|||||||
.config = &m88e1510_config,
|
.config = &m88e1510_config,
|
||||||
.startup = &m88e1011s_startup,
|
.startup = &m88e1011s_startup,
|
||||||
.shutdown = &genphy_shutdown,
|
.shutdown = &genphy_shutdown,
|
||||||
|
.readext = &m88e1xxx_phy_extread,
|
||||||
|
.writeext = &m88e1xxx_phy_extwrite,
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -684,6 +711,8 @@ static struct phy_driver M88E1518_driver = {
|
|||||||
.config = &m88e1518_config,
|
.config = &m88e1518_config,
|
||||||
.startup = &m88e1011s_startup,
|
.startup = &m88e1011s_startup,
|
||||||
.shutdown = &genphy_shutdown,
|
.shutdown = &genphy_shutdown,
|
||||||
|
.readext = &m88e1xxx_phy_extread,
|
||||||
|
.writeext = &m88e1xxx_phy_extwrite,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct phy_driver M88E1310_driver = {
|
static struct phy_driver M88E1310_driver = {
|
||||||
|
Loading…
Reference in New Issue
Block a user