From c925ff29540e234ff86448eb33bee38ae16d0bc1 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Thu, 17 Mar 2016 13:53:03 +0100 Subject: sunxi: Fix gmac not working due to cpu_eth_init no longer being called cpu_eth_init is no longer called for dm enabled eth drivers, this was causing the sunxi gmac eth controller to no longer work in u-boot. This commit fixes this by calling the clock, reset and pinmux setup function from s_init() and enabling the phy power pin (if any) from board_init(). The enabling of phy power cannot be done from s_init because it uses dm and dm is not ready yet at this point. Note that the mdelay is dropped as the phy gets enabled much earlier now, so it is no longer needed. Signed-off-by: Hans de Goede Acked-by: Ian Campbell Tested-by: Karsten Merker Tested-by: Michael Haas --- board/sunxi/board.c | 5 +++++ board/sunxi/gmac.c | 14 +------------- 2 files changed, 6 insertions(+), 13 deletions(-) (limited to 'board') diff --git a/board/sunxi/board.c b/board/sunxi/board.c index 80eae9cd48..e16718f308 100644 --- a/board/sunxi/board.c +++ b/board/sunxi/board.c @@ -90,6 +90,11 @@ int board_init(void) if (ret) return ret; +#ifdef CONFIG_MACPWR + gpio_request(CONFIG_MACPWR, "macpwr"); + gpio_direction_output(CONFIG_MACPWR, 1); +#endif + /* Uses dm gpio code so do this here and not in i2c_init_board() */ return soft_i2c_board_init(); } diff --git a/board/sunxi/gmac.c b/board/sunxi/gmac.c index 4e222d88c0..69eb8ff2d9 100644 --- a/board/sunxi/gmac.c +++ b/board/sunxi/gmac.c @@ -6,7 +6,7 @@ #include #include -int sunxi_gmac_initialize(bd_t *bis) +void eth_init_board(void) { int pin; struct sunxi_ccm_reg *const ccm = @@ -79,16 +79,4 @@ int sunxi_gmac_initialize(bd_t *bis) for (pin = SUNXI_GPA(26); pin <= SUNXI_GPA(27); pin++) sunxi_gpio_set_cfgpin(pin, SUN6I_GPA_GMAC); #endif - -#ifdef CONFIG_DM_ETH - return 0; -#else -# ifdef CONFIG_RGMII - return designware_initialize(SUNXI_GMAC_BASE, PHY_INTERFACE_MODE_RGMII); -# elif defined CONFIG_GMII - return designware_initialize(SUNXI_GMAC_BASE, PHY_INTERFACE_MODE_GMII); -# else - return designware_initialize(SUNXI_GMAC_BASE, PHY_INTERFACE_MODE_MII); -# endif -#endif } -- cgit v1.2.3