diff options
| -rw-r--r-- | board/motionpro/motionpro.c | 18 | ||||
| -rw-r--r-- | cpu/mpc5xxx/fec.c | 4 | ||||
| -rw-r--r-- | include/configs/motionpro.h | 2 | 
3 files changed, 18 insertions, 6 deletions
| diff --git a/board/motionpro/motionpro.c b/board/motionpro/motionpro.c index 1729ae741..b05e2ab1c 100644 --- a/board/motionpro/motionpro.c +++ b/board/motionpro/motionpro.c @@ -28,7 +28,7 @@  #include <common.h>  #include <mpc5xxx.h> - +#include <miiphy.h>  #if defined(CONFIG_OF_FLAT_TREE)  #include <ft_build.h>  #endif @@ -82,6 +82,22 @@ int board_early_init_r(void)  } +/* + * Additional PHY intialization. After being reset in mpc5xxx_fec_init_phy(), + * PHY goes into FX mode.  To take it out of the FX mode and switch into + * desired TX operation, one needs to clear the FX_SEL bit of Mode Control + * Register. + */ +void reset_phy(void) +{ +	unsigned short mode_control; + +	miiphy_read("FEC ETHERNET", CONFIG_PHY_ADDR, 0x15, &mode_control); +	miiphy_write("FEC ETHERNET", CONFIG_PHY_ADDR, 0x15, +			mode_control & 0xfffe); +	return; +} +  #ifndef CFG_RAMBOOT  /*   * Helper function to initialize SDRAM controller. diff --git a/cpu/mpc5xxx/fec.c b/cpu/mpc5xxx/fec.c index 0b8f24d18..62b5f4efd 100644 --- a/cpu/mpc5xxx/fec.c +++ b/cpu/mpc5xxx/fec.c @@ -395,9 +395,7 @@ static int mpc5xxx_fec_init(struct eth_device *dev, bd_t * bis)  static int mpc5xxx_fec_init_phy(struct eth_device *dev, bd_t * bis)  {  	mpc5xxx_fec_priv *fec = (mpc5xxx_fec_priv *)dev->priv; -#ifndef CONFIG_MOTIONPRO  	const uint8 phyAddr = CONFIG_PHY_ADDR;	/* Only one PHY */ -#endif /* !CONFIG_MOTIONPRO */  #if (DEBUG & 0x1)  	printf ("mpc5xxx_fec_init_phy... Begin\n"); @@ -437,7 +435,6 @@ static int mpc5xxx_fec_init_phy(struct eth_device *dev, bd_t * bis)   * PHY initialization for the Motion-PRO board, until a proper fix is found.   */ -#ifndef CONFIG_MOTIONPRO  	if (fec->xcv_type != SEVENWIRE) {  		/*  		 * Set MII_SPEED = (1/(mii_speed * 2)) * System Clock @@ -560,7 +557,6 @@ static int mpc5xxx_fec_init_phy(struct eth_device *dev, bd_t * bis)  		}  	} -#endif /* !CONFIG_MOTIONPRO */  #if (DEBUG & 0x2)  	if (fec->xcv_type != SEVENWIRE) diff --git a/include/configs/motionpro.h b/include/configs/motionpro.h index a4df64a75..a7021b071 100644 --- a/include/configs/motionpro.h +++ b/include/configs/motionpro.h @@ -76,7 +76,7 @@  #define CONFIG_MPC5xxx_FEC	1  #define CONFIG_PHY_ADDR		0x2  #define CONFIG_PHY_TYPE		0x79c874 - +#define CONFIG_RESET_PHY_R	1  /*   * Autobooting |