[U-Boot] [PATCH] tbs2910: Make Ethernet functional again

Configure the PHY to output a 125MHz clk from CLK_25M and set tx clock delay. This patch is similar to commit 4b6035da482cccda06aeb419634f99937c9fc783 ("mx6sabresd: Make Ethernet functional again").
Signed-off-by: Soeren Moch smoch@web.de --- Cc: Stefano Babic sbabic@denx.de Cc: Fabio Estevam fabio.estevam@nxp.com Cc: u-boot@lists.denx.de --- board/tbs/tbs2910/tbs2910.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+)
diff --git a/board/tbs/tbs2910/tbs2910.c b/board/tbs/tbs2910/tbs2910.c index 0d9d17a..db0c58f 100644 --- a/board/tbs/tbs2910/tbs2910.c +++ b/board/tbs/tbs2910/tbs2910.c @@ -359,6 +359,39 @@ static void setup_display(void) } #endif /* CONFIG_VIDEO_IPUV3 */
+static int ar8035_phy_fixup(struct phy_device *phydev) +{ + unsigned short val; + + /* To enable AR8035 ouput a 125MHz clk from CLK_25M */ + phy_write(phydev, MDIO_DEVAD_NONE, 0xd, 0x7); + phy_write(phydev, MDIO_DEVAD_NONE, 0xe, 0x8016); + phy_write(phydev, MDIO_DEVAD_NONE, 0xd, 0x4007); + + val = phy_read(phydev, MDIO_DEVAD_NONE, 0xe); + val &= 0xffe3; + val |= 0x18; + phy_write(phydev, MDIO_DEVAD_NONE, 0xe, val); + + /* introduce tx clock delay */ + phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x5); + val = phy_read(phydev, MDIO_DEVAD_NONE, 0x1e); + val |= 0x0100; + phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, val); + + return 0; +} + +int board_phy_config(struct phy_device *phydev) +{ + ar8035_phy_fixup(phydev); + + if (phydev->drv->config) + phydev->drv->config(phydev); + + return 0; +} + int board_eth_init(bd_t *bis) { setup_iomux_enet();

On 27/11/2016 16:02, Soeren Moch wrote:
Configure the PHY to output a 125MHz clk from CLK_25M and set tx clock delay. This patch is similar to commit 4b6035da482cccda06aeb419634f99937c9fc783 ("mx6sabresd: Make Ethernet functional again").
Signed-off-by: Soeren Moch smoch@web.de
Applied to u-boot-imx, thanks !
Best regards, Stefano Babic
participants (2)
-
Soeren Moch
-
Stefano Babic