diff options
author | Vipin Kumar <vipin.kumar@st.com> | 2012-05-07 13:06:44 +0530 |
---|---|---|
committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2012-07-07 14:07:40 +0200 |
commit | 9afc1af01f2d4b033e0da5df105b399949976a12 (patch) | |
tree | f0df7ec6f543b2c6f2d0baad645cec5f96c2c289 /board/spear/spear320 | |
parent | 8eb0ee6a649d09a41155bf6c9dbd4d531ed41f9e (diff) | |
download | u-boot-imx-9afc1af01f2d4b033e0da5df105b399949976a12.zip u-boot-imx-9afc1af01f2d4b033e0da5df105b399949976a12.tar.gz u-boot-imx-9afc1af01f2d4b033e0da5df105b399949976a12.tar.bz2 |
SPEAr: Add interface information in initialization
Few Designware peripheral registers need to be modified based on the
ethernet interface selected by the board. This patch supports interface
information in ethernet driver
Signed-off-by: Vipin Kumar <vipin.kumar@st.com>
Signed-off-by: Amit Virdi <amit.virdi@st.com>
Signed-off-by: Stefan Roese <sr@denx.de>
Diffstat (limited to 'board/spear/spear320')
-rw-r--r-- | board/spear/spear320/spear320.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/board/spear/spear320/spear320.c b/board/spear/spear320/spear320.c index e101888..54a2e10 100644 --- a/board/spear/spear320/spear320.c +++ b/board/spear/spear320/spear320.c @@ -23,6 +23,7 @@ */ #include <common.h> +#include <miiphy.h> #include <netdev.h> #include <nand.h> #include <asm/io.h> @@ -31,10 +32,20 @@ #include <asm/arch/spr_defs.h> #include <asm/arch/spr_misc.h> +#define PLGPIO_SEL_36 0xb3000028 +#define PLGPIO_IO_36 0xb3000038 + static struct nand_chip nand_chip[CONFIG_SYS_MAX_NAND_DEVICE]; +static void spear_phy_reset(void) +{ + writel(0x10, PLGPIO_IO_36); + writel(0x10, PLGPIO_SEL_36); +} + int board_init(void) { + spear_phy_reset(); return spear_board_init(MACH_TYPE_SPEAR320); } @@ -67,14 +78,17 @@ void board_nand_init() int board_eth_init(bd_t *bis) { int ret = 0; + #if defined(CONFIG_DESIGNWARE_ETH) - if (designware_initialize(0, CONFIG_SPEAR_ETHBASE, CONFIG_DW0_PHY) < 0) - ret += -1; + u32 interface = PHY_INTERFACE_MODE_MII; + if (designware_initialize(0, CONFIG_SPEAR_ETHBASE, CONFIG_DW0_PHY, + interface) >= 0) + ret++; #endif #if defined(CONFIG_MACB) if (macb_eth_initialize(0, (void *)CONFIG_SYS_MACB0_BASE, - CONFIG_MACB0_PHY) < 0) - ret += -1; + CONFIG_MACB0_PHY) >= 0) + ret++; #endif return ret; } |