Skip to content

Commit

Permalink
phy/micrel: move flag handling to function for common use
Browse files Browse the repository at this point in the history
The flag MICREL_PHY_50MHZ_CLK is not of exclusive use of KSZ8051
model. At least KSZ8021 and KSZ8031 models also use it.
This patch moves the handling of this and future flags to a
separate function so that the different PHY models can call it on
their init function, if needed.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Hector Palacios authored and David S. Miller committed Mar 12, 2013
1 parent b818d1a commit b6bb4df
Showing 1 changed file with 18 additions and 9 deletions.
27 changes: 18 additions & 9 deletions drivers/net/phy/micrel.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,18 @@
#define KS8737_CTRL_INT_ACTIVE_HIGH (1 << 14)
#define KSZ8051_RMII_50MHZ_CLK (1 << 7)

static int ksz_config_flags(struct phy_device *phydev)
{
int regval;

if (phydev->dev_flags & MICREL_PHY_50MHZ_CLK) {
regval = phy_read(phydev, MII_KSZPHY_CTRL);
regval |= KSZ8051_RMII_50MHZ_CLK;
return phy_write(phydev, MII_KSZPHY_CTRL, regval);
}
return 0;
}

static int kszphy_ack_interrupt(struct phy_device *phydev)
{
/* bit[7..0] int status, which is a read and clear register. */
Expand Down Expand Up @@ -114,22 +126,19 @@ static int kszphy_config_init(struct phy_device *phydev)

static int ksz8021_config_init(struct phy_device *phydev)
{
int rc;
const u16 val = KSZPHY_OMSO_B_CAST_OFF | KSZPHY_OMSO_RMII_OVERRIDE;
phy_write(phydev, MII_KSZPHY_OMSO, val);
return 0;
rc = ksz_config_flags(phydev);
return rc < 0 ? rc : 0;
}

static int ks8051_config_init(struct phy_device *phydev)
{
int regval;

if (phydev->dev_flags & MICREL_PHY_50MHZ_CLK) {
regval = phy_read(phydev, MII_KSZPHY_CTRL);
regval |= KSZ8051_RMII_50MHZ_CLK;
phy_write(phydev, MII_KSZPHY_CTRL, regval);
}
int rc;

return 0;
rc = ksz_config_flags(phydev);
return rc < 0 ? rc : 0;
}

#define KSZ8873MLL_GLOBAL_CONTROL_4 0x06
Expand Down

0 comments on commit b6bb4df

Please sign in to comment.