From 1b41493defcf8940bce91859de16d7a956ebc569 Mon Sep 17 00:00:00 2001
From: Heiko Schocher <hs@denx.de>
Date: Sun, 3 Apr 2011 20:10:20 +0000
Subject: [PATCH] mpc52xx, digsy_mtc: change phy addr for rev5 boards.

- rev5 board has phy addr 1 -> adapt CONFIG_PHY_ADDR define
  in board config file.
- also fixup the phy addr entry in dts, before booting
  Linux.

Signed-off-by: Heiko Schocher <hs@denx.de>
Acked-by: Detlev Zundel <dzu@denx.de>
---
 board/digsy_mtc/digsy_mtc.c | 5 +++++
 include/configs/digsy_mtc.h | 4 ++++
 2 files changed, 9 insertions(+)

diff --git a/board/digsy_mtc/digsy_mtc.c b/board/digsy_mtc/digsy_mtc.c
index cbfdc9edff..79cb3f1343 100644
--- a/board/digsy_mtc/digsy_mtc.c
+++ b/board/digsy_mtc/digsy_mtc.c
@@ -405,6 +405,9 @@ int update_flash_size (int flash_size)
 
 void ft_board_setup(void *blob, bd_t *bd)
 {
+	int phy_addr = CONFIG_PHY_ADDR;
+	char eth_path[] = "/soc5200@f0000000/mdio@3000/ethernet-phy@0";
+
 	ft_cpu_setup(blob, bd);
 	/*
 	 * There are 2 RTC nodes in the DTS, so remove
@@ -422,5 +425,7 @@ void ft_board_setup(void *blob, bd_t *bd)
 #endif
 	ft_adapt_flash_base(blob);
 #endif
+	/* fix up the phy address */
+	do_fixup_by_path(blob, eth_path, "reg", &phy_addr, sizeof(int), 0);
 }
 #endif /* defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) */
diff --git a/include/configs/digsy_mtc.h b/include/configs/digsy_mtc.h
index f1613c7ac7..c738b3ab44 100644
--- a/include/configs/digsy_mtc.h
+++ b/include/configs/digsy_mtc.h
@@ -345,7 +345,11 @@
  */
 #define CONFIG_MPC5xxx_FEC	1
 #define CONFIG_MPC5xxx_FEC_MII100
+#if defined(CONFIG_DIGSY_REV5)
+#define CONFIG_PHY_ADDR		0x01
+#else
 #define CONFIG_PHY_ADDR		0x00
+#endif
 #define CONFIG_PHY_RESET_DELAY	1000
 
 #define CONFIG_NETCONSOLE		/* include NetConsole support	*/
-- 
2.39.5