diff options
| author | Marian Balakowicz <m8@semihalf.com> | 2005-10-28 22:30:33 +0200 | 
|---|---|---|
| committer | Marian Balakowicz <m8@semihalf.com> | 2005-10-28 22:30:33 +0200 | 
| commit | 63ff004c4fcad9f690bf44dbd15d568bb47aac2d (patch) | |
| tree | 7b64074a85da8118b6c862f14de1171b36ade0f7 /drivers/tsec.c | |
| parent | fe93483a0ab9dcbf7794ffbf0b029ba138380e81 (diff) | |
| download | olio-uboot-2014.01-63ff004c4fcad9f690bf44dbd15d568bb47aac2d.tar.xz olio-uboot-2014.01-63ff004c4fcad9f690bf44dbd15d568bb47aac2d.zip | |
Add support for multiple PHYs.
Diffstat (limited to 'drivers/tsec.c')
| -rw-r--r-- | drivers/tsec.c | 24 | 
1 files changed, 19 insertions, 5 deletions
| diff --git a/drivers/tsec.c b/drivers/tsec.c index 069a42fe3..f860dae8b 100644 --- a/drivers/tsec.c +++ b/drivers/tsec.c @@ -21,8 +21,9 @@  #if defined(CONFIG_TSEC_ENET)  #include "tsec.h" +#include "miiphy.h" -#define TX_BUF_CNT 2 +#define TX_BUF_CNT		2  static uint rxIdx;	/* index of the current RX buffer */  static uint txIdx;	/* index of the current TX buffer */ @@ -120,6 +121,10 @@ struct phy_info * get_phy_info(struct eth_device *dev);  void phy_run_commands(struct tsec_private *priv, struct phy_cmd *cmd);  static void adjust_link(struct eth_device *dev);  static void relocate_cmds(void); +static int tsec_miiphy_write(char *devname, unsigned char addr, +		unsigned char reg, unsigned short value); +static int tsec_miiphy_read(char *devname, unsigned char addr, +		unsigned char reg, unsigned short *value);  /* Initialize device structure. Returns success if PHY   * initialization succeeded (i.e. if it recognizes the PHY) @@ -169,6 +174,11 @@ int tsec_initialize(bd_t *bis, int index, char *devname)  	priv->regs->maccfg1 |= MACCFG1_SOFT_RESET;  	priv->regs->maccfg1 &= ~(MACCFG1_SOFT_RESET); +#if defined(CONFIG_MII) || (CONFIG_COMMANDS & CFG_CMD_MII) \ +	&& !defined(BITBANGMII) +	miiphy_register(dev->name, tsec_miiphy_read, tsec_miiphy_write); +#endif +  	/* Try to initialize PHY here, and return */  	return init_phy(dev);  } @@ -1058,7 +1068,8 @@ static void relocate_cmds(void)  } -#ifndef CONFIG_BITBANGMII +#if defined(CONFIG_MII) || (CONFIG_COMMANDS & CFG_CMD_MII) \ +	&& !defined(BITBANGMII)  struct tsec_private * get_priv_for_phy(unsigned char phyaddr)  { @@ -1078,7 +1089,8 @@ struct tsec_private * get_priv_for_phy(unsigned char phyaddr)   * Returns:   *  0 on success   */ -int miiphy_read(unsigned char addr, unsigned char reg, unsigned short *value) +static int tsec_miiphy_read(char *devname, unsigned char addr, +		unsigned char reg, unsigned short *value)  {  	unsigned short ret;  	struct tsec_private *priv = get_priv_for_phy(addr); @@ -1100,7 +1112,8 @@ int miiphy_read(unsigned char addr, unsigned char reg, unsigned short *value)   * Returns:   *  0 on success   */ -int miiphy_write(unsigned char addr, unsigned char reg, unsigned short value) +static int tsec_miiphy_write(char *devname, unsigned char addr, +		unsigned char reg, unsigned short value)  {  	struct tsec_private *priv = get_priv_for_phy(addr); @@ -1114,6 +1127,7 @@ int miiphy_write(unsigned char addr, unsigned char reg, unsigned short value)  	return 0;  } -#endif /* CONFIG_BITBANGMII */ +#endif /* defined(CONFIG_MII) || (CONFIG_COMMANDS & CFG_CMD_MII) +		&& !defined(BITBANGMII) */  #endif /* CONFIG_TSEC_ENET */ |