diff options
author | Tom Rini <trini@ti.com> | 2014-12-16 09:41:00 -0500 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2014-12-16 09:41:00 -0500 |
commit | 3bfbf32b6fe5e2d4605bc7ee99d1844b572662c2 (patch) | |
tree | 6d13141b70a8961bc6ff67cec8a9c6e167d96bfb /board | |
parent | b9206e61f3d87535ac4f4b0b858e674fd1edfeaf (diff) | |
parent | 065496d1b5304a6a67b366b613c3504aab2e2dbd (diff) | |
download | u-boot-3bfbf32b6fe5e2d4605bc7ee99d1844b572662c2.tar.gz |
Merge branch 'master' of git://git.denx.de/u-boot-socfpga
Diffstat (limited to 'board')
-rw-r--r-- | board/altera/socfpga/MAINTAINERS | 5 | ||||
-rw-r--r-- | board/altera/socfpga/socfpga_cyclone5.c | 38 |
2 files changed, 43 insertions, 0 deletions
diff --git a/board/altera/socfpga/MAINTAINERS b/board/altera/socfpga/MAINTAINERS index 626c0f7a8d..0482581921 100644 --- a/board/altera/socfpga/MAINTAINERS +++ b/board/altera/socfpga/MAINTAINERS @@ -5,3 +5,8 @@ S: Maintained F: board/altera/socfpga/ F: include/configs/socfpga_cyclone5.h F: configs/socfpga_cyclone5_defconfig + +SOCRATES BOARD +M: Stefan Roese <sr@denx.de> +S: Maintained +F: configs/socfpga_socrates_defconfig diff --git a/board/altera/socfpga/socfpga_cyclone5.c b/board/altera/socfpga/socfpga_cyclone5.c index ce625e54d0..459d82f351 100644 --- a/board/altera/socfpga/socfpga_cyclone5.c +++ b/board/altera/socfpga/socfpga_cyclone5.c @@ -12,7 +12,9 @@ #include <usb/s3c_udc.h> #include <usb_mass_storage.h> +#include <micrel.h> #include <netdev.h> +#include <phy.h> DECLARE_GLOBAL_DATA_PTR; @@ -44,6 +46,42 @@ int board_init(void) return 0; } +/* + * PHY configuration + */ +#ifdef CONFIG_PHY_MICREL_KSZ9021 +int board_phy_config(struct phy_device *phydev) +{ + int ret; + /* + * These skew settings for the KSZ9021 ethernet phy is required for ethernet + * to work reliably on most flavors of cyclone5 boards. + */ + ret = ksz9021_phy_extended_write(phydev, + MII_KSZ9021_EXT_RGMII_RX_DATA_SKEW, + 0x0); + if (ret) + return ret; + + ret = ksz9021_phy_extended_write(phydev, + MII_KSZ9021_EXT_RGMII_TX_DATA_SKEW, + 0x0); + if (ret) + return ret; + + ret = ksz9021_phy_extended_write(phydev, + MII_KSZ9021_EXT_RGMII_CLOCK_SKEW, + 0xf0f0); + if (ret) + return ret; + + if (phydev->drv->config) + return phydev->drv->config(phydev); + + return 0; +} +#endif + #ifdef CONFIG_USB_GADGET struct s3c_plat_otg_data socfpga_otg_data = { .regs_otg = CONFIG_USB_DWC2_REG_ADDR, |