mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-18 21:21:37 +00:00
net/macb: Add arch specific routine to get mdio control
SPEAr310 and SPEAr320 Ethernet interfaces share same MDIO lines to control their respective phys. Currently there is a fixed configuration in which only a particular MAC can use the MDIO lines. Call an arch specific function to take control of specific mdio lines at runtime. Signed-off-by: Shiraz Hashim <shiraz.hashim@st.com> Signed-off-by: Vipin Kumar <vipin.kumar@st.com> Acked-by: Stefan Roese <sr@denx.de>
This commit is contained in:
parent
7091915ad7
commit
416ce623fb
1 changed files with 8 additions and 0 deletions
|
@ -163,6 +163,11 @@ static u16 macb_mdio_read(struct macb_device *macb, u8 reg)
|
|||
return MACB_BFEXT(DATA, frame);
|
||||
}
|
||||
|
||||
static void __weak arch_get_mdio_control(const char *name)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_CMD_MII)
|
||||
|
||||
int macb_miiphy_read(const char *devname, u8 phy_adr, u8 reg, u16 *value)
|
||||
|
@ -173,6 +178,7 @@ int macb_miiphy_read(const char *devname, u8 phy_adr, u8 reg, u16 *value)
|
|||
if ( macb->phy_addr != phy_adr )
|
||||
return -1;
|
||||
|
||||
arch_get_mdio_control(devname);
|
||||
*value = macb_mdio_read(macb, reg);
|
||||
|
||||
return 0;
|
||||
|
@ -186,6 +192,7 @@ int macb_miiphy_write(const char *devname, u8 phy_adr, u8 reg, u16 value)
|
|||
if ( macb->phy_addr != phy_adr )
|
||||
return -1;
|
||||
|
||||
arch_get_mdio_control(devname);
|
||||
macb_mdio_write(macb, reg, value);
|
||||
|
||||
return 0;
|
||||
|
@ -377,6 +384,7 @@ static int macb_phy_init(struct macb_device *macb)
|
|||
int media, speed, duplex;
|
||||
int i;
|
||||
|
||||
arch_get_mdio_control(netdev->name);
|
||||
#ifdef CONFIG_MACB_SEARCH_PHY
|
||||
/* Auto-detect phy_addr */
|
||||
if (!macb_phy_find(macb)) {
|
||||
|
|
Loading…
Add table
Reference in a new issue