
-----Original Message----- From: Ajay Bhargav [mailto:ajay.bhargav@einfochips.com] Sent: Monday, July 18, 2011 3:12 PM To: Prafulla Wadaskar Cc: u-boot@lists.denx.de; Ajay Bhargav Subject: [PATCH 3/4] Armada100: Enable 88E3015 PHY support for GplugD
This patch adds support for 88E3015 PHY for Marvell GplugD board.
Signed-off-by: Ajay Bhargav ajay.bhargav@einfochips.com
board/Marvell/gplugd/gplugd.c | 35 +++++++++++++++++++++++++++++++++++ include/configs/gplugd.h | 14 ++++++++++++++ 2 files changed, 49 insertions(+), 0 deletions(-)
diff --git a/board/Marvell/gplugd/gplugd.c b/board/Marvell/gplugd/gplugd.c index dc7d89d..347a689 100644 --- a/board/Marvell/gplugd/gplugd.c +++ b/board/Marvell/gplugd/gplugd.c @@ -32,6 +32,8 @@ #include <mvmfp.h> #include <asm/arch/mfp.h> #include <asm/arch/armada100.h> +#include <asm/gpio.h> +#include <miiphy.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -49,6 +51,7 @@ int board_early_init_f(void) }; /* configure MFP's */ mfp_config(mfp_cfg);
Remove this unwanted commit line
return 0; }
@@ -58,5 +61,37 @@ int board_init(void) gd->bd->bi_arch_number = MACH_TYPE_SHEEVAD; /* adress of boot parameters */ gd->bd->bi_boot_params = armd1_sdram_base(0) + 0x100;
- /* Assert PHY_RST# */
- gpio_direction_output(CONFIG_SYS_GPIO_PHY_RST, GPIO_CLR);
- udelay(10);
- /* Deassert PHY_RST# */
- gpio_set_value(CONFIG_SYS_GPIO_PHY_RST, GPIO_SET);
May you please comment why do you need to set this GPIO?
return 0; }
+#ifdef CONFIG_RESET_PHY_R +/* Configure and initialize PHY chip 88E3015 */ +void reset_phy(void) +{
- u16 phy_adr;
- const char *name = "armd-fec0";
- if (miiphy_set_current_dev(name))
return;
- /* command to read PHY dev address */
- if (miiphy_read(name, 0xff, 0xff, (u16 *) &phy_adr)) {
printf("Err..%s could not read PHY dev address\n",
__func__);
return;
- }
- /* Set Ethernet LED in TX blink mode */
- miiphy_write(name, phy_adr, PHY_LED_MAN_REG, 0x00);
- miiphy_write(name, phy_adr, PHY_LED_PAR_SEL_REG, PHY_LED_VAL);
- /* reset the phy */
- miiphy_reset(name, phy_adr);
- printf("88E3015 Initialized on %s\n", name);
+} +#endif /* CONFIG_RESET_PHY_R */ diff --git a/include/configs/gplugd.h b/include/configs/gplugd.h index cc14f49..412c959 100644 --- a/include/configs/gplugd.h +++ b/include/configs/gplugd.h @@ -65,6 +65,20 @@ #undef CONFIG_CMD_NET #undef CONFIG_CMD_NFS
+/* GPIO Support */ +#define CONFIG_ARMADA100_GPIO
+/* PHY configuration */
This below configuration should be within #ifdef CONFIG_CMD_NET Or more it to asm/arch/config.h (recommended)
+#define CONFIG_MII +#define CONFIG_CMD_MII +#define CONFIG_RESET_PHY_R +/* 88E3015 register definition */ +#define PHY_LED_PAR_SEL_REG 22 +#define PHY_LED_MAN_REG 25 +#define PHY_LED_VAL 0x5b /* LINK LED1, ACT LED2 */ +/* GPIO Configuration for PHY */ +#define CONFIG_SYS_GPIO_PHY_RST 104 /* GPIO104 */
/*
- mv-common.h should be defined after CMD configs since it used them
- to enable certain macros
Regards.. Prafulla . .
-- 1.7.0.4