@ -167,6 +167,7 @@ struct zynq_gem_priv {
int phyaddr ;
u32 emio ;
int init ;
struct zynq_gem_regs * iobase ;
phy_interface_t interface ;
struct phy_device * phydev ;
struct mii_dev * bus ;
@ -191,11 +192,11 @@ static inline int mdio_wait(struct zynq_gem_regs *regs)
return 0 ;
}
static u32 phy_setup_op ( struct eth_device * de v, u32 phy_addr , u32 regnum ,
u32 op , u16 * data )
static u32 phy_setup_op ( struct zynq_gem_priv * pri v, u32 phy_addr , u32 regnum ,
u32 op , u16 * data )
{
u32 mgtcr ;
struct zynq_gem_regs * regs = ( struct zynq_gem_regs * ) de v- > iobase ;
struct zynq_gem_regs * regs = pri v- > iobase ;
if ( mdio_wait ( regs ) )
return 1 ;
@ -217,12 +218,13 @@ static u32 phy_setup_op(struct eth_device *dev, u32 phy_addr, u32 regnum,
return 0 ;
}
static u32 phyread ( struct eth_device * dev , u32 phy_addr , u32 regnum , u16 * val )
static u32 phyread ( struct zynq_gem_priv * priv , u32 phy_addr ,
u32 regnum , u16 * val )
{
u32 ret ;
ret = phy_setup_op ( de v, phy_addr , regnum ,
ZYNQ_GEM_PHYMNTNC_OP_R_MASK , val ) ;
ret = phy_setup_op ( pri v, phy_addr , regnum ,
ZYNQ_GEM_PHYMNTNC_OP_R_MASK , val ) ;
if ( ! ret )
debug ( " %s: phy_addr %d, regnum 0x%x, val 0x%x \n " , __func__ ,
@ -231,13 +233,14 @@ static u32 phyread(struct eth_device *dev, u32 phy_addr, u32 regnum, u16 *val)
return ret ;
}
static u32 phywrite ( struct eth_device * dev , u32 phy_addr , u32 regnum , u16 data )
static u32 phywrite ( struct zynq_gem_priv * priv , u32 phy_addr ,
u32 regnum , u16 data )
{
debug ( " %s: phy_addr %d, regnum 0x%x, data 0x%x \n " , __func__ , phy_addr ,
regnum , data ) ;
return phy_setup_op ( de v, phy_addr , regnum ,
ZYNQ_GEM_PHYMNTNC_OP_W_MASK , & data ) ;
return phy_setup_op ( pri v, phy_addr , regnum ,
ZYNQ_GEM_PHYMNTNC_OP_W_MASK , & data ) ;
}
static int phy_detection ( struct eth_device * dev )
@ -247,7 +250,7 @@ static int phy_detection(struct eth_device *dev)
struct zynq_gem_priv * priv = dev - > priv ;
if ( priv - > phyaddr ! = - 1 ) {
phyread ( de v, priv - > phyaddr , PHY_DETECT_REG , & phyreg ) ;
phyread ( pri v, priv - > phyaddr , PHY_DETECT_REG , & phyreg ) ;
if ( ( phyreg ! = 0xFFFF ) & &
( ( phyreg & PHY_DETECT_MASK ) = = PHY_DETECT_MASK ) ) {
/* Found a valid PHY address */
@ -265,7 +268,7 @@ static int phy_detection(struct eth_device *dev)
if ( priv - > phyaddr = = - 1 ) {
/* detect the PHY address */
for ( i = 31 ; i > = 0 ; i - - ) {
phyread ( de v, i , PHY_DETECT_REG , & phyreg ) ;
phyread ( pri v, i , PHY_DETECT_REG , & phyreg ) ;
if ( ( phyreg ! = 0xFFFF ) & &
( ( phyreg & PHY_DETECT_MASK ) = = PHY_DETECT_MASK ) ) {
/* Found a valid PHY address */
@ -561,9 +564,10 @@ static int zynq_gem_miiphyread(const char *devname, uchar addr,
uchar reg , ushort * val )
{
struct eth_device * dev = eth_get_dev ( ) ;
struct zynq_gem_priv * priv = dev - > priv ;
int ret ;
ret = phyread ( de v, addr , reg , val ) ;
ret = phyread ( pri v, addr , reg , val ) ;
debug ( " %s 0x%x, 0x%x, 0x%x \n " , __func__ , addr , reg , * val ) ;
return ret ;
}
@ -572,9 +576,10 @@ static int zynq_gem_miiphy_write(const char *devname, uchar addr,
uchar reg , ushort val )
{
struct eth_device * dev = eth_get_dev ( ) ;
struct zynq_gem_priv * priv = dev - > priv ;
debug ( " %s 0x%x, 0x%x, 0x%x \n " , __func__ , addr , reg , val ) ;
return phywrite ( de v, addr , reg , val ) ;
return phywrite ( pri v, addr , reg , val ) ;
}
int zynq_gem_initialize ( bd_t * bis , phys_addr_t base_addr ,
@ -620,6 +625,7 @@ int zynq_gem_initialize(bd_t *bis, phys_addr_t base_addr,
sprintf ( dev - > name , " Gem.%lx " , base_addr ) ;
dev - > iobase = base_addr ;
priv - > iobase = ( struct zynq_gem_regs * ) base_addr ;
dev - > init = zynq_gem_init ;
dev - > halt = zynq_gem_halt ;