Add support for MII in eepro100 driver.

Patch by Gleb Natapov, 21 Mar 2005
This commit is contained in:
Wolfgang Denk 2005-09-26 00:39:59 +02:00
parent f2af3eb55e
commit a912733e9b
2 changed files with 44 additions and 0 deletions

View File

@ -2,6 +2,9 @@
Changes for U-Boot 1.1.4:
======================================================================
* Add support for MII in eepro100 driver.
Patch by Gleb Natapov, 21 Mar 2005
* Fixes to the Lubbock (PXA 25x) support:
- Resolve the FIXME with respect to saving the u-boot environment.
- Make the default load address land in real memory.

View File

@ -271,6 +271,47 @@ static inline void OUTL (struct eth_device *dev, int command, u_long addr)
*(volatile u32 *) ((addr + dev->iobase)) = cpu_to_le32 (command);
}
#if defined (CONFIG_MII) || (CONFIG_COMMANDS & CFG_CMD_MII)
static inline int INL (struct eth_device *dev, u_long addr)
{
return le32_to_cpu (*(volatile u32 *) (addr + dev->iobase));
}
int miiphy_read (unsigned char addr,
unsigned char reg,
unsigned short *value)
{
int cmd = (2 << 26) | ((addr & 0x1f) << 21) | ((reg & 0x1f) << 16);
struct eth_device *dev = eth_get_dev ();
OUTL (dev, cmd, SCBCtrlMDI);
do {
cmd = INL (dev, SCBCtrlMDI);
} while (!(cmd & (1 << 28)));
*value = (unsigned short) (cmd & 0xffff);
return 0;
}
int miiphy_write (unsigned char addr,
unsigned char reg,
unsigned short value)
{
int cmd = (1 << 26) | ((addr & 0x1f) << 21) | ((reg & 0x1f) << 16);
struct eth_device *dev = eth_get_dev ();
OUTL (dev, cmd | value, SCBCtrlMDI);
while (!(INL (dev, SCBCtrlMDI) & (1 << 28)));
return 0;
}
#endif /* (CONFIG_MII) || (CONFIG_COMMANDS & CFG_CMD_MII) */
/* Wait for the chip get the command.
*/
static int wait_for_eepro100 (struct eth_device *dev)