Anbody out there?
More data:
I have found that the driver is loaded and initialized properly. The driver itself turns off the clock:
/* Carrier starts down, phylib will bring it up */
netif_carrier_off(ndev);
clk_disable(fep->clk);
It appears that the phy will reenable the clock. Don't know how. As mentioned the PHY is a KSZ9031. I have the following code within my kernel build:
static int mx6q_sbc35_c398_fec_phy_init(struct phy_device *phydev)
{
unsigned short val;
/* To enable AR8031 ouput a 125MHz clk from CLK_25M */
phy_write(phydev, 0xd, 0x7);
phy_write(phydev, 0xe, 0x8016);
phy_write(phydev, 0xd, 0x4007);
val = phy_read(phydev, 0xe);
val &= 0xffe3;
val |= 0x18;
phy_write(phydev, 0xe, val);
/* Introduce tx clock delay */
phy_write(phydev, 0x1d, 0x5);
val = phy_read(phydev, 0x1e);
val |= 0x0100;
phy_write(phydev, 0x1e, val);
/*check phy power*/
val = phy_read(phydev, 0x0);
if (val & BMCR_PDOWN)
phy_write(phydev, 0x0, (val & ~BMCR_PDOWN));
return 0;
}
static struct fec_platform_data fec_data __initdata = {
.init = mx6q_sbc35_c398_fec_phy_init,
.phy = PHY_INTERFACE_MODE_RGMII,
};
Need to determine if the PHY is being intialized properly.