summaryrefslogtreecommitdiff
path: root/board/tbs/tbs2910/tbs2910.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2016-11-30 09:57:52 -0500
committerTom Rini <trini@konsulko.com>2016-11-30 09:57:52 -0500
commit4d6647ab17ab9d33c60f7a9f07576c5fbdf6336f (patch)
treee3bde11276fcf8ce1c02d797a71fa23d974c66f3 /board/tbs/tbs2910/tbs2910.c
parent6b29a395b62965eef6b5065d3a526a8588a92038 (diff)
parent4db4d42ee290a8cad00b358b2e7ef6a00483893b (diff)
downloadu-boot-imx-4d6647ab17ab9d33c60f7a9f07576c5fbdf6336f.zip
u-boot-imx-4d6647ab17ab9d33c60f7a9f07576c5fbdf6336f.tar.gz
u-boot-imx-4d6647ab17ab9d33c60f7a9f07576c5fbdf6336f.tar.bz2
Merge branch 'master' of git://www.denx.de/git/u-boot-imx
Diffstat (limited to 'board/tbs/tbs2910/tbs2910.c')
-rw-r--r--board/tbs/tbs2910/tbs2910.c33
1 files changed, 33 insertions, 0 deletions
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();