net: phy: broadcom: Enable 125 MHz clock on LED4 pin for BCM54612E by default.
BCM54612E have 4 multi-functional LED pins that can be configured through register setting; the LED4 pin can be configured to a 125MHz reference clock output by setting the spare register. Since the dedicated CLK125 reference clock pin is not brought out on the 48-Pin MLP, the LED4 pin is the only pin to provide such function in this package, and therefore it is beneficial to just enable the reference clock by default. Signed-off-by: Kun Yi <kunyi@google.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -54,6 +54,8 @@ static int bcm54210e_config_init(struct phy_device *phydev)
|
||||
|
||||
static int bcm54612e_config_init(struct phy_device *phydev)
|
||||
{
|
||||
int reg;
|
||||
|
||||
/* Clear TX internal delay unless requested. */
|
||||
if ((phydev->interface != PHY_INTERFACE_MODE_RGMII_ID) &&
|
||||
(phydev->interface != PHY_INTERFACE_MODE_RGMII_TXID)) {
|
||||
@@ -65,8 +67,6 @@ static int bcm54612e_config_init(struct phy_device *phydev)
|
||||
/* Clear RX internal delay unless requested. */
|
||||
if ((phydev->interface != PHY_INTERFACE_MODE_RGMII_ID) &&
|
||||
(phydev->interface != PHY_INTERFACE_MODE_RGMII_RXID)) {
|
||||
u16 reg;
|
||||
|
||||
reg = bcm54xx_auxctl_read(phydev,
|
||||
MII_BCM54XX_AUXCTL_SHDWSEL_MISC);
|
||||
/* Disable RXD to RXC delay (default set) */
|
||||
@@ -77,6 +77,18 @@ static int bcm54612e_config_init(struct phy_device *phydev)
|
||||
MII_BCM54XX_AUXCTL_MISC_WREN | reg);
|
||||
}
|
||||
|
||||
/* Enable CLK125 MUX on LED4 if ref clock is enabled. */
|
||||
if (!(phydev->dev_flags & PHY_BRCM_RX_REFCLK_UNUSED)) {
|
||||
int err;
|
||||
|
||||
reg = bcm_phy_read_exp(phydev, BCM54612E_EXP_SPARE0);
|
||||
err = bcm_phy_write_exp(phydev, BCM54612E_EXP_SPARE0,
|
||||
BCM54612E_LED4_CLK125OUT_EN | reg);
|
||||
|
||||
if (err < 0)
|
||||
return err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user