summaryrefslogtreecommitdiff
path: root/board/spear/spear320
diff options
context:
space:
mode:
authorVipin Kumar <vipin.kumar@st.com>2012-05-07 13:06:44 +0530
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>2012-07-07 14:07:40 +0200
commit9afc1af01f2d4b033e0da5df105b399949976a12 (patch)
treef0df7ec6f543b2c6f2d0baad645cec5f96c2c289 /board/spear/spear320
parent8eb0ee6a649d09a41155bf6c9dbd4d531ed41f9e (diff)
downloadu-boot-9afc1af01f2d4b033e0da5df105b399949976a12.tar.gz
u-boot-9afc1af01f2d4b033e0da5df105b399949976a12.tar.bz2
u-boot-9afc1af01f2d4b033e0da5df105b399949976a12.zip
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.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/board/spear/spear320/spear320.c b/board/spear/spear320/spear320.c
index e101888e04..54a2e1003c 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;
}