Add support for MII in eepro100 driver.
Patch by Gleb Natapov, 21 Mar 2005
This commit is contained in:
parent
f2af3eb55e
commit
a912733e9b
@ -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.
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user