summaryrefslogtreecommitdiff
path: root/board/cds/mpc8548cds
diff options
context:
space:
mode:
authorJon Loeliger <jdl@freescale.com>2006-09-19 10:02:20 -0500
committerJon Loeliger <jdl@freescale.com>2006-09-19 10:02:20 -0500
commit504b5cd0e2e7b58c6265fb684a850a158c85e1b2 (patch)
tree2125bf738ec1ea6ea87c807ee045832fecf27fe6 /board/cds/mpc8548cds
parentafbdc649f8751e4f4f1a6f527edfe139773f2c15 (diff)
parent8272dc2f58f2473d8995fcc9b916440cfba080f0 (diff)
Merge branch 'mpc85xx'
Conflicts: drivers/tsec.c
Diffstat (limited to 'board/cds/mpc8548cds')
-rw-r--r--board/cds/mpc8548cds/mpc8548cds.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/board/cds/mpc8548cds/mpc8548cds.c b/board/cds/mpc8548cds/mpc8548cds.c
index 6eedb4a2095..66219e395b1 100644
--- a/board/cds/mpc8548cds/mpc8548cds.c
+++ b/board/cds/mpc8548cds/mpc8548cds.c
@@ -27,6 +27,7 @@
#include <asm/processor.h>
#include <asm/immap_85xx.h>
#include <spd.h>
+#include <miiphy.h>
#include "../common/cadmus.h"
#include "../common/eeprom.h"
@@ -327,3 +328,34 @@ pci_init_board(void)
pci_mpc85xx_init(&hose);
#endif
}
+
+int last_stage_init(void)
+{
+ unsigned int temp;
+
+ /* Change the resistors for the PHY */
+ /* This is needed to get the RGMII working for the 1.3+
+ * CDS cards */
+ if (get_board_version() == 0x13) {
+ miiphy_write(CONFIG_MPC85XX_TSEC1_NAME,
+ TSEC1_PHY_ADDR, 29, 18);
+
+ miiphy_read(CONFIG_MPC85XX_TSEC1_NAME,
+ TSEC1_PHY_ADDR, 30, &temp);
+
+ temp = (temp & 0xf03f);
+ temp |= 2 << 9; /* 36 ohm */
+ temp |= 2 << 6; /* 39 ohm */
+
+ miiphy_write(CONFIG_MPC85XX_TSEC1_NAME,
+ TSEC1_PHY_ADDR, 30, temp);
+
+ miiphy_write(CONFIG_MPC85XX_TSEC1_NAME,
+ TSEC1_PHY_ADDR, 29, 3);
+
+ miiphy_write(CONFIG_MPC85XX_TSEC1_NAME,
+ TSEC1_PHY_ADDR, 30, 0x8000);
+ }
+
+ return 0;
+}