Remove instances of phy_read/write

There were a few files which were already using phy_read and phy_write
for their PHY function names.  It's only a few places, and the name
seems most appropriate for the high-level abstraction, so let's
rename the other versions to something more specific.

Also, uec_phy.c had a marvell_init function which I renamed to not
conflict with the one in marvell.c

Lastly, uec_phy.c was putting a space between the phy writing
function names, and the open paren, so I fixed that

Signed-off-by: Andy Fleming <afleming@freescale.com>
Acked-by: Detlev Zundel <dzu@denx.de>
This commit is contained in:
Andy Fleming 2011-03-22 22:49:13 -05:00
parent 907519108c
commit 09c04c2096
5 changed files with 107 additions and 107 deletions

View File

@ -110,8 +110,8 @@ static board_info_t dm9000_info;
/* function declaration ------------------------------------- */ /* function declaration ------------------------------------- */
static int dm9000_probe(void); static int dm9000_probe(void);
static u16 phy_read(int); static u16 dm9000_phy_read(int);
static void phy_write(int, u16); static void dm9000_phy_write(int, u16);
static u8 DM9000_ior(int); static u8 DM9000_ior(int);
static void DM9000_iow(int reg, u8 value); static void DM9000_iow(int reg, u8 value);
@ -361,7 +361,7 @@ static int dm9000_init(struct eth_device *dev, bd_t *bd)
DM9000_iow(DM9000_IMR, IMR_PAR); DM9000_iow(DM9000_IMR, IMR_PAR);
i = 0; i = 0;
while (!(phy_read(1) & 0x20)) { /* autonegation complete bit */ while (!(dm9000_phy_read(1) & 0x20)) { /* autonegation complete bit */
udelay(1000); udelay(1000);
i++; i++;
if (i == 10000) { if (i == 10000) {
@ -371,7 +371,7 @@ static int dm9000_init(struct eth_device *dev, bd_t *bd)
} }
/* see what we've got */ /* see what we've got */
lnk = phy_read(17) >> 12; lnk = dm9000_phy_read(17) >> 12;
printf("operating at "); printf("operating at ");
switch (lnk) { switch (lnk) {
case 1: case 1:
@ -445,7 +445,7 @@ static void dm9000_halt(struct eth_device *netdev)
DM9000_DBG("%s\n", __func__); DM9000_DBG("%s\n", __func__);
/* RESET devie */ /* RESET devie */
phy_write(0, 0x8000); /* PHY RESET */ dm9000_phy_write(0, 0x8000); /* PHY RESET */
DM9000_iow(DM9000_GPR, 0x01); /* Power-Down PHY */ DM9000_iow(DM9000_GPR, 0x01); /* Power-Down PHY */
DM9000_iow(DM9000_IMR, 0x80); /* Disable all interrupt */ DM9000_iow(DM9000_IMR, 0x80); /* Disable all interrupt */
DM9000_iow(DM9000_RCR, 0x00); /* Disable RX */ DM9000_iow(DM9000_RCR, 0x00); /* Disable RX */
@ -581,7 +581,7 @@ DM9000_iow(int reg, u8 value)
Read a word from phyxcer Read a word from phyxcer
*/ */
static u16 static u16
phy_read(int reg) dm9000_phy_read(int reg)
{ {
u16 val; u16 val;
@ -593,7 +593,7 @@ phy_read(int reg)
val = (DM9000_ior(DM9000_EPDRH) << 8) | DM9000_ior(DM9000_EPDRL); val = (DM9000_ior(DM9000_EPDRH) << 8) | DM9000_ior(DM9000_EPDRL);
/* The read data keeps on REG_0D & REG_0E */ /* The read data keeps on REG_0D & REG_0E */
DM9000_DBG("phy_read(0x%x): 0x%x\n", reg, val); DM9000_DBG("dm9000_phy_read(0x%x): 0x%x\n", reg, val);
return val; return val;
} }
@ -601,7 +601,7 @@ phy_read(int reg)
Write a word to phyxcer Write a word to phyxcer
*/ */
static void static void
phy_write(int reg, u16 value) dm9000_phy_write(int reg, u16 value)
{ {
/* Fill the phyxcer register into REG_0C */ /* Fill the phyxcer register into REG_0C */
@ -613,7 +613,7 @@ phy_write(int reg, u16 value)
DM9000_iow(DM9000_EPCR, 0xa); /* Issue phyxcer write command */ DM9000_iow(DM9000_EPCR, 0xa); /* Issue phyxcer write command */
udelay(500); /* Wait write complete */ udelay(500); /* Wait write complete */
DM9000_iow(DM9000_EPCR, 0x0); /* Clear phyxcer write command */ DM9000_iow(DM9000_EPCR, 0x0); /* Clear phyxcer write command */
DM9000_DBG("phy_write(reg:0x%x, value:0x%x)\n", reg, value); DM9000_DBG("dm9000_phy_write(reg:0x%x, value:0x%x)\n", reg, value);
} }
int dm9000_initialize(bd_t *bis) int dm9000_initialize(bd_t *bis)

View File

@ -314,7 +314,7 @@ static void enc_release_bus(enc_dev_t *enc)
/* /*
* Read PHY register * Read PHY register
*/ */
static u16 phy_read(enc_dev_t *enc, const u8 addr) static u16 enc_phy_read(enc_dev_t *enc, const u8 addr)
{ {
uint64_t etime; uint64_t etime;
u8 status; u8 status;
@ -339,7 +339,7 @@ static u16 phy_read(enc_dev_t *enc, const u8 addr)
/* /*
* Write PHY register * Write PHY register
*/ */
static void phy_write(enc_dev_t *enc, const u8 addr, const u16 data) static void enc_phy_write(enc_dev_t *enc, const u8 addr, const u16 data)
{ {
uint64_t etime; uint64_t etime;
u8 status; u8 status;
@ -374,7 +374,7 @@ static int enc_phy_link_wait(enc_dev_t *enc)
#ifdef CONFIG_ENC_SILENTLINK #ifdef CONFIG_ENC_SILENTLINK
/* check if we have a link, then just return */ /* check if we have a link, then just return */
status = phy_read(enc, PHY_REG_PHSTAT1); status = enc_phy_read(enc, PHY_REG_PHSTAT1);
if (status & ENC_PHSTAT1_LLSTAT) if (status & ENC_PHSTAT1_LLSTAT)
return 0; return 0;
#endif #endif
@ -382,10 +382,10 @@ static int enc_phy_link_wait(enc_dev_t *enc)
/* wait for link with 1 second timeout */ /* wait for link with 1 second timeout */
etime = get_ticks() + get_tbclk(); etime = get_ticks() + get_tbclk();
while (get_ticks() <= etime) { while (get_ticks() <= etime) {
status = phy_read(enc, PHY_REG_PHSTAT1); status = enc_phy_read(enc, PHY_REG_PHSTAT1);
if (status & ENC_PHSTAT1_LLSTAT) { if (status & ENC_PHSTAT1_LLSTAT) {
/* now we have a link */ /* now we have a link */
status = phy_read(enc, PHY_REG_PHSTAT2); status = enc_phy_read(enc, PHY_REG_PHSTAT2);
duplex = (status & ENC_PHSTAT2_DPXSTAT) ? 1 : 0; duplex = (status & ENC_PHSTAT2_DPXSTAT) ? 1 : 0;
printf("%s: link up, 10Mbps %s-duplex\n", printf("%s: link up, 10Mbps %s-duplex\n",
enc->dev->name, duplex ? "full" : "half"); enc->dev->name, duplex ? "full" : "half");
@ -678,8 +678,8 @@ static int enc_setup(enc_dev_t *enc)
enc->bank = 0xff; /* invalidate current bank in enc28j60 */ enc->bank = 0xff; /* invalidate current bank in enc28j60 */
/* verify PHY identification */ /* verify PHY identification */
phid1 = phy_read(enc, PHY_REG_PHID1); phid1 = enc_phy_read(enc, PHY_REG_PHID1);
phid2 = phy_read(enc, PHY_REG_PHID2) & ENC_PHID2_MASK; phid2 = enc_phy_read(enc, PHY_REG_PHID2) & ENC_PHID2_MASK;
if (phid1 != ENC_PHID1_VALUE || phid2 != ENC_PHID2_VALUE) { if (phid1 != ENC_PHID1_VALUE || phid2 != ENC_PHID2_VALUE) {
printf("%s: failed to identify PHY. Found %04x:%04x\n", printf("%s: failed to identify PHY. Found %04x:%04x\n",
enc->dev->name, phid1, phid2); enc->dev->name, phid1, phid2);
@ -694,7 +694,7 @@ static int enc_setup(enc_dev_t *enc)
* Prevent automatic loopback of data beeing transmitted by setting * Prevent automatic loopback of data beeing transmitted by setting
* ENC_PHCON2_HDLDIS * ENC_PHCON2_HDLDIS
*/ */
phy_write(enc, PHY_REG_PHCON2, (1<<8)); enc_phy_write(enc, PHY_REG_PHCON2, (1<<8));
/* /*
* LEDs configuration * LEDs configuration
@ -702,10 +702,10 @@ static int enc_setup(enc_dev_t *enc)
* LEDB: LBCFG = 0111 -> display TX & RX activity * LEDB: LBCFG = 0111 -> display TX & RX activity
* STRCH = 1 -> LED pulses * STRCH = 1 -> LED pulses
*/ */
phy_write(enc, PHY_REG_PHLCON, 0x0472); enc_phy_write(enc, PHY_REG_PHLCON, 0x0472);
/* Reset PDPXMD-bit => half duplex */ /* Reset PDPXMD-bit => half duplex */
phy_write(enc, PHY_REG_PHCON1, 0); enc_phy_write(enc, PHY_REG_PHCON1, 0);
#ifdef CONFIG_USE_IRQ #ifdef CONFIG_USE_IRQ
/* enable interrupts */ /* enable interrupts */
@ -771,7 +771,7 @@ int enc_miiphy_read(const char *devname, u8 phy_adr, u8 reg, u16 *value)
enc_release_bus(enc); enc_release_bus(enc);
return -1; return -1;
} }
*value = phy_read(enc, reg); *value = enc_phy_read(enc, reg);
enc_release_bus(enc); enc_release_bus(enc);
return 0; return 0;
} }
@ -796,7 +796,7 @@ int enc_miiphy_write(const char *devname, u8 phy_adr, u8 reg, u16 value)
enc_release_bus(enc); enc_release_bus(enc);
return -1; return -1;
} }
phy_write(enc, reg, value); enc_phy_write(enc, reg, value);
enc_release_bus(enc); enc_release_bus(enc);
return 0; return 0;
} }

View File

@ -175,9 +175,9 @@ static u16 read_srom_word(long, int);
static void uli526x_descriptor_init(struct uli526x_board_info *, unsigned long); static void uli526x_descriptor_init(struct uli526x_board_info *, unsigned long);
static void allocate_rx_buffer(struct uli526x_board_info *); static void allocate_rx_buffer(struct uli526x_board_info *);
static void update_cr6(u32, unsigned long); static void update_cr6(u32, unsigned long);
static u16 phy_read(unsigned long, u8, u8, u32); static u16 uli_phy_read(unsigned long, u8, u8, u32);
static u16 phy_readby_cr10(unsigned long, u8, u8); static u16 phy_readby_cr10(unsigned long, u8, u8);
static void phy_write(unsigned long, u8, u8, u16, u32); static void uli_phy_write(unsigned long, u8, u8, u16, u32);
static void phy_writeby_cr10(unsigned long, u8, u8, u16); static void phy_writeby_cr10(unsigned long, u8, u8, u16);
static void phy_write_1bit(unsigned long, u32, u32); static void phy_write_1bit(unsigned long, u32, u32);
static u16 phy_read_1bit(unsigned long, u32); static u16 phy_read_1bit(unsigned long, u32);
@ -349,7 +349,7 @@ static void uli526x_disable(struct eth_device *dev)
/* Reset & stop ULI526X board */ /* Reset & stop ULI526X board */
outl(ULI526X_RESET, db->ioaddr + DCR0); outl(ULI526X_RESET, db->ioaddr + DCR0);
udelay(5); udelay(5);
phy_write(db->ioaddr, db->phy_addr, 0, 0x8000, db->chip_id); uli_phy_write(db->ioaddr, db->phy_addr, 0, 0x8000, db->chip_id);
/* reset the board */ /* reset the board */
db->cr6_data &= ~(CR6_RXSC | CR6_TXSC); /* Disable Tx/Rx */ db->cr6_data &= ~(CR6_RXSC | CR6_TXSC); /* Disable Tx/Rx */
@ -385,7 +385,7 @@ static void uli526x_init(struct eth_device *dev)
db->tx_packet_cnt = 0; db->tx_packet_cnt = 0;
for (phy_tmp = 0; phy_tmp < 32; phy_tmp++) { for (phy_tmp = 0; phy_tmp < 32; phy_tmp++) {
/* peer add */ /* peer add */
phy_value = phy_read(db->ioaddr, phy_tmp, 3, db->chip_id); phy_value = uli_phy_read(db->ioaddr, phy_tmp, 3, db->chip_id);
if (phy_value != 0xffff && phy_value != 0) { if (phy_value != 0xffff && phy_value != 0) {
db->phy_addr = phy_tmp; db->phy_addr = phy_tmp;
break; break;
@ -404,10 +404,10 @@ static void uli526x_init(struct eth_device *dev)
if (!(inl(db->ioaddr + DCR12) & 0x8)) { if (!(inl(db->ioaddr + DCR12) & 0x8)) {
/* Phyxcer capability setting */ /* Phyxcer capability setting */
phy_reg_reset = phy_read(db->ioaddr, phy_reg_reset = uli_phy_read(db->ioaddr,
db->phy_addr, 0, db->chip_id); db->phy_addr, 0, db->chip_id);
phy_reg_reset = (phy_reg_reset | 0x8000); phy_reg_reset = (phy_reg_reset | 0x8000);
phy_write(db->ioaddr, db->phy_addr, 0, uli_phy_write(db->ioaddr, db->phy_addr, 0,
phy_reg_reset, db->chip_id); phy_reg_reset, db->chip_id);
udelay(500); udelay(500);
@ -781,7 +781,8 @@ static void uli526x_set_phyxcer(struct uli526x_board_info *db)
u16 phy_reg; u16 phy_reg;
/* Phyxcer capability setting */ /* Phyxcer capability setting */
phy_reg = phy_read(db->ioaddr, db->phy_addr, 4, db->chip_id) & ~0x01e0; phy_reg = uli_phy_read(db->ioaddr,
db->phy_addr, 4, db->chip_id) & ~0x01e0;
if (db->media_mode & ULI526X_AUTO) { if (db->media_mode & ULI526X_AUTO) {
/* AUTO Mode */ /* AUTO Mode */
@ -802,10 +803,10 @@ static void uli526x_set_phyxcer(struct uli526x_board_info *db)
phy_reg |= db->PHY_reg4; phy_reg |= db->PHY_reg4;
db->media_mode |= ULI526X_AUTO; db->media_mode |= ULI526X_AUTO;
} }
phy_write(db->ioaddr, db->phy_addr, 4, phy_reg, db->chip_id); uli_phy_write(db->ioaddr, db->phy_addr, 4, phy_reg, db->chip_id);
/* Restart Auto-Negotiation */ /* Restart Auto-Negotiation */
phy_write(db->ioaddr, db->phy_addr, 0, 0x1200, db->chip_id); uli_phy_write(db->ioaddr, db->phy_addr, 0, 0x1200, db->chip_id);
udelay(50); udelay(50);
} }
@ -813,7 +814,7 @@ static void uli526x_set_phyxcer(struct uli526x_board_info *db)
* Write a word to Phy register * Write a word to Phy register
*/ */
static void phy_write(unsigned long iobase, u8 phy_addr, u8 offset, static void uli_phy_write(unsigned long iobase, u8 phy_addr, u8 offset,
u16 phy_data, u32 chip_id) u16 phy_data, u32 chip_id)
{ {
u16 i; u16 i;
@ -862,7 +863,8 @@ static void phy_write(unsigned long iobase, u8 phy_addr, u8 offset,
* Read a word data from phy register * Read a word data from phy register
*/ */
static u16 phy_read(unsigned long iobase, u8 phy_addr, u8 offset, u32 chip_id) static u16 uli_phy_read(unsigned long iobase, u8 phy_addr, u8 offset,
u32 chip_id)
{ {
int i; int i;
u16 phy_data; u16 phy_data;

View File

@ -67,9 +67,6 @@ static uec_info_t uec_info[] = {
static struct eth_device *devlist[MAXCONTROLLERS]; static struct eth_device *devlist[MAXCONTROLLERS];
u16 phy_read (struct uec_mii_info *mii_info, u16 regnum);
void phy_write (struct uec_mii_info *mii_info, u16 regnum, u16 val);
static int uec_mac_enable(uec_private_t *uec, comm_dir_e mode) static int uec_mac_enable(uec_private_t *uec, comm_dir_e mode)
{ {
uec_t *uec_regs; uec_t *uec_regs;

View File

@ -121,8 +121,8 @@ static int gbit_config_aneg (struct uec_mii_info *mii_info);
static int genmii_config_aneg (struct uec_mii_info *mii_info); static int genmii_config_aneg (struct uec_mii_info *mii_info);
static int genmii_update_link (struct uec_mii_info *mii_info); static int genmii_update_link (struct uec_mii_info *mii_info);
static int genmii_read_status (struct uec_mii_info *mii_info); static int genmii_read_status (struct uec_mii_info *mii_info);
u16 phy_read (struct uec_mii_info *mii_info, u16 regnum); u16 uec_phy_read(struct uec_mii_info *mii_info, u16 regnum);
void phy_write (struct uec_mii_info *mii_info, u16 regnum, u16 val); void uec_phy_write(struct uec_mii_info *mii_info, u16 regnum, u16 val);
/* Write value to the PHY for this device to the register at regnum, */ /* Write value to the PHY for this device to the register at regnum, */
/* waiting until the write is done before it returns. All PHY */ /* waiting until the write is done before it returns. All PHY */
@ -242,7 +242,7 @@ static void config_genmii_advert (struct uec_mii_info *mii_info)
advertise = mii_info->advertising; advertise = mii_info->advertising;
/* Setup standard advertisement */ /* Setup standard advertisement */
adv = phy_read (mii_info, MII_ADVERTISE); adv = uec_phy_read(mii_info, MII_ADVERTISE);
adv &= ~(ADVERTISE_ALL | ADVERTISE_100BASE4); adv &= ~(ADVERTISE_ALL | ADVERTISE_100BASE4);
if (advertise & ADVERTISED_10baseT_Half) if (advertise & ADVERTISED_10baseT_Half)
adv |= ADVERTISE_10HALF; adv |= ADVERTISE_10HALF;
@ -252,7 +252,7 @@ static void config_genmii_advert (struct uec_mii_info *mii_info)
adv |= ADVERTISE_100HALF; adv |= ADVERTISE_100HALF;
if (advertise & ADVERTISED_100baseT_Full) if (advertise & ADVERTISED_100baseT_Full)
adv |= ADVERTISE_100FULL; adv |= ADVERTISE_100FULL;
phy_write (mii_info, MII_ADVERTISE, adv); uec_phy_write(mii_info, MII_ADVERTISE, adv);
} }
static void genmii_setup_forced (struct uec_mii_info *mii_info) static void genmii_setup_forced (struct uec_mii_info *mii_info)
@ -260,7 +260,7 @@ static void genmii_setup_forced (struct uec_mii_info *mii_info)
u16 ctrl; u16 ctrl;
u32 features = mii_info->phyinfo->features; u32 features = mii_info->phyinfo->features;
ctrl = phy_read (mii_info, MII_BMCR); ctrl = uec_phy_read(mii_info, MII_BMCR);
ctrl &= ~(BMCR_FULLDPLX | BMCR_SPEED100 | ctrl &= ~(BMCR_FULLDPLX | BMCR_SPEED100 |
BMCR_SPEED1000 | BMCR_ANENABLE); BMCR_SPEED1000 | BMCR_ANENABLE);
@ -290,7 +290,7 @@ static void genmii_setup_forced (struct uec_mii_info *mii_info)
break; break;
} }
phy_write (mii_info, MII_BMCR, ctrl); uec_phy_write(mii_info, MII_BMCR, ctrl);
} }
/* Enable and Restart Autonegotiation */ /* Enable and Restart Autonegotiation */
@ -298,9 +298,9 @@ static void genmii_restart_aneg (struct uec_mii_info *mii_info)
{ {
u16 ctl; u16 ctl;
ctl = phy_read (mii_info, MII_BMCR); ctl = uec_phy_read(mii_info, MII_BMCR);
ctl |= (BMCR_ANENABLE | BMCR_ANRESTART); ctl |= (BMCR_ANENABLE | BMCR_ANRESTART);
phy_write (mii_info, MII_BMCR, ctl); uec_phy_write(mii_info, MII_BMCR, ctl);
} }
static int gbit_config_aneg (struct uec_mii_info *mii_info) static int gbit_config_aneg (struct uec_mii_info *mii_info)
@ -313,14 +313,14 @@ static int gbit_config_aneg (struct uec_mii_info *mii_info)
config_genmii_advert (mii_info); config_genmii_advert (mii_info);
advertise = mii_info->advertising; advertise = mii_info->advertising;
adv = phy_read (mii_info, MII_CTRL1000); adv = uec_phy_read(mii_info, MII_CTRL1000);
adv &= ~(ADVERTISE_1000FULL | adv &= ~(ADVERTISE_1000FULL |
ADVERTISE_1000HALF); ADVERTISE_1000HALF);
if (advertise & SUPPORTED_1000baseT_Half) if (advertise & SUPPORTED_1000baseT_Half)
adv |= ADVERTISE_1000HALF; adv |= ADVERTISE_1000HALF;
if (advertise & SUPPORTED_1000baseT_Full) if (advertise & SUPPORTED_1000baseT_Full)
adv |= ADVERTISE_1000FULL; adv |= ADVERTISE_1000FULL;
phy_write (mii_info, MII_CTRL1000, adv); uec_phy_write(mii_info, MII_CTRL1000, adv);
/* Start/Restart aneg */ /* Start/Restart aneg */
genmii_restart_aneg (mii_info); genmii_restart_aneg (mii_info);
@ -335,13 +335,13 @@ static int marvell_config_aneg (struct uec_mii_info *mii_info)
/* The Marvell PHY has an errata which requires /* The Marvell PHY has an errata which requires
* that certain registers get written in order * that certain registers get written in order
* to restart autonegotiation */ * to restart autonegotiation */
phy_write (mii_info, MII_BMCR, BMCR_RESET); uec_phy_write(mii_info, MII_BMCR, BMCR_RESET);
phy_write (mii_info, 0x1d, 0x1f); uec_phy_write(mii_info, 0x1d, 0x1f);
phy_write (mii_info, 0x1e, 0x200c); uec_phy_write(mii_info, 0x1e, 0x200c);
phy_write (mii_info, 0x1d, 0x5); uec_phy_write(mii_info, 0x1d, 0x5);
phy_write (mii_info, 0x1e, 0); uec_phy_write(mii_info, 0x1e, 0);
phy_write (mii_info, 0x1e, 0x100); uec_phy_write(mii_info, 0x1e, 0x100);
gbit_config_aneg (mii_info); gbit_config_aneg (mii_info);
@ -373,13 +373,13 @@ static int genmii_update_link (struct uec_mii_info *mii_info)
u16 status; u16 status;
/* Status is read once to clear old link state */ /* Status is read once to clear old link state */
phy_read (mii_info, MII_BMSR); uec_phy_read(mii_info, MII_BMSR);
/* /*
* Wait if the link is up, and autonegotiation is in progress * Wait if the link is up, and autonegotiation is in progress
* (ie - we're capable and it's not done) * (ie - we're capable and it's not done)
*/ */
status = phy_read(mii_info, MII_BMSR); status = uec_phy_read(mii_info, MII_BMSR);
if ((status & BMSR_LSTATUS) && (status & BMSR_ANEGCAPABLE) if ((status & BMSR_LSTATUS) && (status & BMSR_ANEGCAPABLE)
&& !(status & BMSR_ANEGCOMPLETE)) { && !(status & BMSR_ANEGCOMPLETE)) {
int i = 0; int i = 0;
@ -395,7 +395,7 @@ static int genmii_update_link (struct uec_mii_info *mii_info)
i++; i++;
udelay(1000); /* 1 ms */ udelay(1000); /* 1 ms */
status = phy_read(mii_info, MII_BMSR); status = uec_phy_read(mii_info, MII_BMSR);
} }
mii_info->link = 1; mii_info->link = 1;
} else { } else {
@ -420,7 +420,7 @@ static int genmii_read_status (struct uec_mii_info *mii_info)
return err; return err;
if (mii_info->autoneg) { if (mii_info->autoneg) {
status = phy_read(mii_info, MII_STAT1000); status = uec_phy_read(mii_info, MII_STAT1000);
if (status & (LPA_1000FULL | LPA_1000HALF)) { if (status & (LPA_1000FULL | LPA_1000HALF)) {
mii_info->speed = SPEED_1000; mii_info->speed = SPEED_1000;
@ -429,7 +429,7 @@ static int genmii_read_status (struct uec_mii_info *mii_info)
else else
mii_info->duplex = DUPLEX_HALF; mii_info->duplex = DUPLEX_HALF;
} else { } else {
status = phy_read(mii_info, MII_LPA); status = uec_phy_read(mii_info, MII_LPA);
if (status & (LPA_10FULL | LPA_100FULL)) if (status & (LPA_10FULL | LPA_100FULL))
mii_info->duplex = DUPLEX_FULL; mii_info->duplex = DUPLEX_FULL;
@ -463,25 +463,25 @@ static int bcm_init(struct uec_mii_info *mii_info)
/* Wait for aneg to complete. */ /* Wait for aneg to complete. */
do do
val = phy_read(mii_info, MII_BMSR); val = uec_phy_read(mii_info, MII_BMSR);
while (--cnt && !(val & BMSR_ANEGCOMPLETE)); while (--cnt && !(val & BMSR_ANEGCOMPLETE));
/* Set RDX clk delay. */ /* Set RDX clk delay. */
phy_write(mii_info, 0x18, 0x7 | (7 << 12)); uec_phy_write(mii_info, 0x18, 0x7 | (7 << 12));
val = phy_read(mii_info, 0x18); val = uec_phy_read(mii_info, 0x18);
/* Set RDX-RXC skew. */ /* Set RDX-RXC skew. */
val |= (1 << 8); val |= (1 << 8);
val |= (7 | (7 << 12)); val |= (7 | (7 << 12));
/* Write bits 14:0. */ /* Write bits 14:0. */
val |= (1 << 15); val |= (1 << 15);
phy_write(mii_info, 0x18, val); uec_phy_write(mii_info, 0x18, val);
} }
return 0; return 0;
} }
static int marvell_init(struct uec_mii_info *mii_info) static int uec_marvell_init(struct uec_mii_info *mii_info)
{ {
struct eth_device *edev = mii_info->dev; struct eth_device *edev = mii_info->dev;
uec_private_t *uec = edev->priv; uec_private_t *uec = edev->priv;
@ -494,7 +494,7 @@ static int marvell_init(struct uec_mii_info *mii_info)
iface == RGMII_TXID)) { iface == RGMII_TXID)) {
int temp; int temp;
temp = phy_read(mii_info, MII_M1111_PHY_EXT_CR); temp = uec_phy_read(mii_info, MII_M1111_PHY_EXT_CR);
if (iface == RGMII_ID) { if (iface == RGMII_ID) {
temp |= MII_M1111_RX_DELAY | MII_M1111_TX_DELAY; temp |= MII_M1111_RX_DELAY | MII_M1111_TX_DELAY;
} else if (iface == RGMII_RXID) { } else if (iface == RGMII_RXID) {
@ -504,14 +504,14 @@ static int marvell_init(struct uec_mii_info *mii_info)
temp &= ~MII_M1111_RX_DELAY; temp &= ~MII_M1111_RX_DELAY;
temp |= MII_M1111_TX_DELAY; temp |= MII_M1111_TX_DELAY;
} }
phy_write(mii_info, MII_M1111_PHY_EXT_CR, temp); uec_phy_write(mii_info, MII_M1111_PHY_EXT_CR, temp);
temp = phy_read(mii_info, MII_M1111_PHY_EXT_SR); temp = uec_phy_read(mii_info, MII_M1111_PHY_EXT_SR);
temp &= ~MII_M1111_HWCFG_MODE_MASK; temp &= ~MII_M1111_HWCFG_MODE_MASK;
temp |= MII_M1111_HWCFG_MODE_RGMII; temp |= MII_M1111_HWCFG_MODE_RGMII;
phy_write(mii_info, MII_M1111_PHY_EXT_SR, temp); uec_phy_write(mii_info, MII_M1111_PHY_EXT_SR, temp);
phy_write(mii_info, MII_BMCR, BMCR_RESET); uec_phy_write(mii_info, MII_BMCR, BMCR_RESET);
} }
return 0; return 0;
@ -534,7 +534,7 @@ static int marvell_read_status (struct uec_mii_info *mii_info)
if (mii_info->autoneg && mii_info->link) { if (mii_info->autoneg && mii_info->link) {
int speed; int speed;
status = phy_read (mii_info, MII_M1011_PHY_SPEC_STATUS); status = uec_phy_read(mii_info, MII_M1011_PHY_SPEC_STATUS);
/* Get the duplexity */ /* Get the duplexity */
if (status & MII_M1011_PHY_SPEC_STATUS_FULLDUPLEX) if (status & MII_M1011_PHY_SPEC_STATUS_FULLDUPLEX)
@ -564,7 +564,7 @@ static int marvell_read_status (struct uec_mii_info *mii_info)
static int marvell_ack_interrupt (struct uec_mii_info *mii_info) static int marvell_ack_interrupt (struct uec_mii_info *mii_info)
{ {
/* Clear the interrupts by reading the reg */ /* Clear the interrupts by reading the reg */
phy_read (mii_info, MII_M1011_IEVENT); uec_phy_read(mii_info, MII_M1011_IEVENT);
return 0; return 0;
} }
@ -572,9 +572,10 @@ static int marvell_ack_interrupt (struct uec_mii_info *mii_info)
static int marvell_config_intr (struct uec_mii_info *mii_info) static int marvell_config_intr (struct uec_mii_info *mii_info)
{ {
if (mii_info->interrupts == MII_INTERRUPT_ENABLED) if (mii_info->interrupts == MII_INTERRUPT_ENABLED)
phy_write (mii_info, MII_M1011_IMASK, MII_M1011_IMASK_INIT); uec_phy_write(mii_info, MII_M1011_IMASK, MII_M1011_IMASK_INIT);
else else
phy_write (mii_info, MII_M1011_IMASK, MII_M1011_IMASK_CLEAR); uec_phy_write(mii_info, MII_M1011_IMASK,
MII_M1011_IMASK_CLEAR);
return 0; return 0;
} }
@ -582,13 +583,13 @@ static int marvell_config_intr (struct uec_mii_info *mii_info)
static int dm9161_init (struct uec_mii_info *mii_info) static int dm9161_init (struct uec_mii_info *mii_info)
{ {
/* Reset the PHY */ /* Reset the PHY */
phy_write (mii_info, MII_BMCR, phy_read (mii_info, MII_BMCR) | uec_phy_write(mii_info, MII_BMCR, uec_phy_read(mii_info, MII_BMCR) |
BMCR_RESET); BMCR_RESET);
/* PHY and MAC connect */ /* PHY and MAC connect */
phy_write (mii_info, MII_BMCR, phy_read (mii_info, MII_BMCR) & uec_phy_write(mii_info, MII_BMCR, uec_phy_read(mii_info, MII_BMCR) &
~BMCR_ISOLATE); ~BMCR_ISOLATE);
phy_write (mii_info, MII_DM9161_SCR, MII_DM9161_SCR_INIT); uec_phy_write(mii_info, MII_DM9161_SCR, MII_DM9161_SCR_INIT);
config_genmii_advert (mii_info); config_genmii_advert (mii_info);
/* Start/restart aneg */ /* Start/restart aneg */
@ -614,7 +615,7 @@ static int dm9161_read_status (struct uec_mii_info *mii_info)
/* If the link is up, read the speed and duplex /* If the link is up, read the speed and duplex
If we aren't autonegotiating assume speeds are as set */ If we aren't autonegotiating assume speeds are as set */
if (mii_info->autoneg && mii_info->link) { if (mii_info->autoneg && mii_info->link) {
status = phy_read (mii_info, MII_DM9161_SCSR); status = uec_phy_read(mii_info, MII_DM9161_SCSR);
if (status & (MII_DM9161_SCSR_100F | MII_DM9161_SCSR_100H)) if (status & (MII_DM9161_SCSR_100F | MII_DM9161_SCSR_100H))
mii_info->speed = SPEED_100; mii_info->speed = SPEED_100;
else else
@ -632,7 +633,7 @@ static int dm9161_read_status (struct uec_mii_info *mii_info)
static int dm9161_ack_interrupt (struct uec_mii_info *mii_info) static int dm9161_ack_interrupt (struct uec_mii_info *mii_info)
{ {
/* Clear the interrupt by reading the reg */ /* Clear the interrupt by reading the reg */
phy_read (mii_info, MII_DM9161_INTR); uec_phy_read(mii_info, MII_DM9161_INTR);
return 0; return 0;
} }
@ -640,9 +641,9 @@ static int dm9161_ack_interrupt (struct uec_mii_info *mii_info)
static int dm9161_config_intr (struct uec_mii_info *mii_info) static int dm9161_config_intr (struct uec_mii_info *mii_info)
{ {
if (mii_info->interrupts == MII_INTERRUPT_ENABLED) if (mii_info->interrupts == MII_INTERRUPT_ENABLED)
phy_write (mii_info, MII_DM9161_INTR, MII_DM9161_INTR_INIT); uec_phy_write(mii_info, MII_DM9161_INTR, MII_DM9161_INTR_INIT);
else else
phy_write (mii_info, MII_DM9161_INTR, MII_DM9161_INTR_STOP); uec_phy_write(mii_info, MII_DM9161_INTR, MII_DM9161_INTR_STOP);
return 0; return 0;
} }
@ -696,7 +697,7 @@ static int smsc_read_status (struct uec_mii_info *mii_info)
if (mii_info->autoneg && mii_info->link) { if (mii_info->autoneg && mii_info->link) {
int val; int val;
status = phy_read (mii_info, 0x1f); status = uec_phy_read(mii_info, 0x1f);
val = (status & 0x1c) >> 2; val = (status & 0x1c) >> 2;
switch (val) { switch (val) {
@ -751,7 +752,7 @@ static struct phy_info phy_info_marvell = {
.phy_id_mask = 0xffffff00, .phy_id_mask = 0xffffff00,
.name = "Marvell 88E11x1", .name = "Marvell 88E11x1",
.features = MII_GBIT_FEATURES, .features = MII_GBIT_FEATURES,
.init = &marvell_init, .init = &uec_marvell_init,
.config_aneg = &marvell_config_aneg, .config_aneg = &marvell_config_aneg,
.read_status = &marvell_read_status, .read_status = &marvell_read_status,
.ack_interrupt = &marvell_ack_interrupt, .ack_interrupt = &marvell_ack_interrupt,
@ -804,12 +805,12 @@ static struct phy_info *phy_info[] = {
NULL NULL
}; };
u16 phy_read (struct uec_mii_info *mii_info, u16 regnum) u16 uec_phy_read(struct uec_mii_info *mii_info, u16 regnum)
{ {
return mii_info->mdio_read (mii_info->dev, mii_info->mii_id, regnum); return mii_info->mdio_read (mii_info->dev, mii_info->mii_id, regnum);
} }
void phy_write (struct uec_mii_info *mii_info, u16 regnum, u16 val) void uec_phy_write(struct uec_mii_info *mii_info, u16 regnum, u16 val)
{ {
mii_info->mdio_write (mii_info->dev, mii_info->mii_id, regnum, val); mii_info->mdio_write (mii_info->dev, mii_info->mii_id, regnum, val);
} }
@ -825,11 +826,11 @@ struct phy_info *uec_get_phy_info (struct uec_mii_info *mii_info)
struct phy_info *theInfo = NULL; struct phy_info *theInfo = NULL;
/* Grab the bits from PHYIR1, and put them in the upper half */ /* Grab the bits from PHYIR1, and put them in the upper half */
phy_reg = phy_read (mii_info, MII_PHYSID1); phy_reg = uec_phy_read(mii_info, MII_PHYSID1);
phy_ID = (phy_reg & 0xffff) << 16; phy_ID = (phy_reg & 0xffff) << 16;
/* Grab the bits from PHYIR2, and put them in the lower half */ /* Grab the bits from PHYIR2, and put them in the lower half */
phy_reg = phy_read (mii_info, MII_PHYSID2); phy_reg = uec_phy_read(mii_info, MII_PHYSID2);
phy_ID |= (phy_reg & 0xffff); phy_ID |= (phy_reg & 0xffff);
/* loop through all the known PHY types, and find one that */ /* loop through all the known PHY types, and find one that */
@ -869,39 +870,39 @@ void marvell_phy_interface_mode (struct eth_device *dev,
if (type == RGMII) { if (type == RGMII) {
if (speed == 100) { if (speed == 100) {
phy_write (mii_info, 0x00, 0x9140); uec_phy_write(mii_info, 0x00, 0x9140);
phy_write (mii_info, 0x1d, 0x001f); uec_phy_write(mii_info, 0x1d, 0x001f);
phy_write (mii_info, 0x1e, 0x200c); uec_phy_write(mii_info, 0x1e, 0x200c);
phy_write (mii_info, 0x1d, 0x0005); uec_phy_write(mii_info, 0x1d, 0x0005);
phy_write (mii_info, 0x1e, 0x0000); uec_phy_write(mii_info, 0x1e, 0x0000);
phy_write (mii_info, 0x1e, 0x0100); uec_phy_write(mii_info, 0x1e, 0x0100);
phy_write (mii_info, 0x09, 0x0e00); uec_phy_write(mii_info, 0x09, 0x0e00);
phy_write (mii_info, 0x04, 0x01e1); uec_phy_write(mii_info, 0x04, 0x01e1);
phy_write (mii_info, 0x00, 0x9140); uec_phy_write(mii_info, 0x00, 0x9140);
phy_write (mii_info, 0x00, 0x1000); uec_phy_write(mii_info, 0x00, 0x1000);
udelay (100000); udelay (100000);
phy_write (mii_info, 0x00, 0x2900); uec_phy_write(mii_info, 0x00, 0x2900);
phy_write (mii_info, 0x14, 0x0cd2); uec_phy_write(mii_info, 0x14, 0x0cd2);
phy_write (mii_info, 0x00, 0xa100); uec_phy_write(mii_info, 0x00, 0xa100);
phy_write (mii_info, 0x09, 0x0000); uec_phy_write(mii_info, 0x09, 0x0000);
phy_write (mii_info, 0x1b, 0x800b); uec_phy_write(mii_info, 0x1b, 0x800b);
phy_write (mii_info, 0x04, 0x05e1); uec_phy_write(mii_info, 0x04, 0x05e1);
phy_write (mii_info, 0x00, 0xa100); uec_phy_write(mii_info, 0x00, 0xa100);
phy_write (mii_info, 0x00, 0x2100); uec_phy_write(mii_info, 0x00, 0x2100);
udelay (1000000); udelay (1000000);
} else if (speed == 10) { } else if (speed == 10) {
phy_write (mii_info, 0x14, 0x8e40); uec_phy_write(mii_info, 0x14, 0x8e40);
phy_write (mii_info, 0x1b, 0x800b); uec_phy_write(mii_info, 0x1b, 0x800b);
phy_write (mii_info, 0x14, 0x0c82); uec_phy_write(mii_info, 0x14, 0x0c82);
phy_write (mii_info, 0x00, 0x8100); uec_phy_write(mii_info, 0x00, 0x8100);
udelay (1000000); udelay (1000000);
} }
} }
/* handle 88e1111 rev.B2 erratum 5.6 */ /* handle 88e1111 rev.B2 erratum 5.6 */
if (mii_info->autoneg) { if (mii_info->autoneg) {
status = phy_read (mii_info, MII_BMCR); status = uec_phy_read(mii_info, MII_BMCR);
phy_write (mii_info, MII_BMCR, status | BMCR_ANENABLE); uec_phy_write(mii_info, MII_BMCR, status | BMCR_ANENABLE);
} }
/* now the B2 will correctly report autoneg completion status */ /* now the B2 will correctly report autoneg completion status */
} }