mirror of
https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
synced 2025-09-13 05:55:02 -04:00
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:
|
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:
|
* Fixes to the Lubbock (PXA 25x) support:
|
||||||
- Resolve the FIXME with respect to saving the u-boot environment.
|
- Resolve the FIXME with respect to saving the u-boot environment.
|
||||||
- Make the default load address land in real memory.
|
- 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);
|
*(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.
|
/* Wait for the chip get the command.
|
||||||
*/
|
*/
|
||||||
static int wait_for_eepro100 (struct eth_device *dev)
|
static int wait_for_eepro100 (struct eth_device *dev)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user