diff options
author | Andy Fleming <afleming@freescale.com> | 2011-04-08 02:10:54 -0500 |
---|---|---|
committer | Andy Fleming <afleming@freescale.com> | 2011-04-20 15:09:34 -0500 |
commit | 063c12633d5ad74d52152d9c358e715475e17629 (patch) | |
tree | 872f1bfe0cd0eb14eb38bdb51e1351c064d98dc4 /board/freescale/mpc8544ds | |
parent | 9082eeac5de1335d663016668c9b89c290f5c79b (diff) | |
download | u-boot-imx-063c12633d5ad74d52152d9c358e715475e17629.zip u-boot-imx-063c12633d5ad74d52152d9c358e715475e17629.tar.gz u-boot-imx-063c12633d5ad74d52152d9c358e715475e17629.tar.bz2 |
tsec: Convert tsec to use PHY Lib
This converts tsec to use the new PHY Lib. All of the old PHY support
is ripped out. The old MDIO driver is split off, and placed in
fsl_mdio.c. The initialization is modified to initialize the MDIO
driver as well. The powerpc config file is modified to configure PHYLIB
if TSEC_ENET is configured.
Signed-off-by: Mingkai Hu <Mingkai.hu@freescale.com>
Signed-off-by: Andy Fleming <afleming@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: Detlev Zundel <dzu@denx.de>
Diffstat (limited to 'board/freescale/mpc8544ds')
-rw-r--r-- | board/freescale/mpc8544ds/mpc8544ds.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/board/freescale/mpc8544ds/mpc8544ds.c b/board/freescale/mpc8544ds/mpc8544ds.c index a48c815..6fe8d39 100644 --- a/board/freescale/mpc8544ds/mpc8544ds.c +++ b/board/freescale/mpc8544ds/mpc8544ds.c @@ -33,6 +33,7 @@ #include <miiphy.h> #include <libfdt.h> #include <fdt_support.h> +#include <fsl_mdio.h> #include <tsec.h> #include <netdev.h> @@ -248,9 +249,35 @@ get_board_sys_clk(ulong dummy) return val; } + +#define MIIM_CIS8204_SLED_CON 0x1b +#define MIIM_CIS8204_SLEDCON_INIT 0x1115 +/* + * Hack to write all 4 PHYs with the LED values + */ +int board_phy_config(struct phy_device *phydev) +{ + static int do_once; + uint phyid; + struct mii_dev *bus = phydev->bus; + + if (do_once) + return 0; + + for (phyid = 0; phyid < 4; phyid++) + bus->write(bus, phyid, MDIO_DEVAD_NONE, MIIM_CIS8204_SLED_CON, + MIIM_CIS8204_SLEDCON_INIT); + + do_once = 1; + + return 0; +} + + int board_eth_init(bd_t *bis) { #ifdef CONFIG_TSEC_ENET + struct fsl_pq_mdio_info mdio_info; struct tsec_info_struct tsec_info[2]; int num = 0; @@ -282,6 +309,9 @@ int board_eth_init(bd_t *bis) fsl_sgmii_riser_init(tsec_info, num); } + mdio_info.regs = (struct tsec_mii_mng *)CONFIG_SYS_MDIO_BASE_ADDR; + mdio_info.name = DEFAULT_MII_NAME; + fsl_pq_mdio_init(bis, &mdio_info); tsec_eth_init(bis, tsec_info, num); #endif |