projects
/
oweals
/
u-boot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'denx-coldfire' into coldfire-aug2007
[oweals/u-boot.git]
/
drivers
/
qe
/
uec.c
diff --git
a/drivers/qe/uec.c
b/drivers/qe/uec.c
index c416a67c83271276e14c660fcbb7901c0cfcc246..dc2765bb09e6c6e981433f5fd0f6a5c43cc8e450 100644
(file)
--- a/
drivers/qe/uec.c
+++ b/
drivers/qe/uec.c
@@
-391,17
+391,17
@@
static int uec_set_mac_if_mode(uec_private_t *uec, enet_interface_e if_mode)
return 0;
}
return 0;
}
-static int init_mii_management_configuration(uec_
t *uec
_regs)
+static int init_mii_management_configuration(uec_
mii_t *uec_mii
_regs)
{
uint timeout = 0x1000;
u32 miimcfg = 0;
{
uint timeout = 0x1000;
u32 miimcfg = 0;
- miimcfg = in_be32(&uec_regs->miimcfg);
+ miimcfg = in_be32(&uec_
mii_
regs->miimcfg);
miimcfg |= MIIMCFG_MNGMNT_CLC_DIV_INIT_VALUE;
miimcfg |= MIIMCFG_MNGMNT_CLC_DIV_INIT_VALUE;
- out_be32(&uec_regs->miimcfg, miimcfg);
+ out_be32(&uec_
mii_
regs->miimcfg, miimcfg);
/* Wait until the bus is free */
/* Wait until the bus is free */
- while ((in_be32(&uec_regs->miimcfg) & MIIMIND_BUSY) && timeout--);
+ while ((in_be32(&uec_
mii_
regs->miimcfg) & MIIMIND_BUSY) && timeout--);
if (timeout <= 0) {
printf("%s: The MII Bus is stuck!", __FUNCTION__);
return -ETIMEDOUT;
if (timeout <= 0) {
printf("%s: The MII Bus is stuck!", __FUNCTION__);
return -ETIMEDOUT;
@@
-413,13
+413,13
@@
static int init_mii_management_configuration(uec_t *uec_regs)
static int init_phy(struct eth_device *dev)
{
uec_private_t *uec;
static int init_phy(struct eth_device *dev)
{
uec_private_t *uec;
- uec_
t *uec
_regs;
+ uec_
mii_t *umii
_regs;
struct uec_mii_info *mii_info;
struct phy_info *curphy;
int err;
uec = (uec_private_t *)dev->priv;
struct uec_mii_info *mii_info;
struct phy_info *curphy;
int err;
uec = (uec_private_t *)dev->priv;
- u
ec_regs = uec->uec
_regs;
+ u
mii_regs = uec->uec_mii
_regs;
uec->oldlink = 0;
uec->oldspeed = 0;
uec->oldlink = 0;
uec->oldspeed = 0;
@@
-451,19
+451,19
@@
static int init_phy(struct eth_device *dev)
mii_info->mii_id = uec->uec_info->phy_address;
mii_info->dev = dev;
mii_info->mii_id = uec->uec_info->phy_address;
mii_info->dev = dev;
- mii_info->mdio_read = &read_phy_reg;
- mii_info->mdio_write = &write_phy_reg;
+ mii_info->mdio_read = &
uec_
read_phy_reg;
+ mii_info->mdio_write = &
uec_
write_phy_reg;
uec->mii_info = mii_info;
uec->mii_info = mii_info;
- if (init_mii_management_configuration(u
ec
_regs)) {
+ if (init_mii_management_configuration(u
mii
_regs)) {
printf("%s: The MII Bus is stuck!", dev->name);
err = -1;
goto bus_fail;
}
/* get info for this PHY */
printf("%s: The MII Bus is stuck!", dev->name);
err = -1;
goto bus_fail;
}
/* get info for this PHY */
- curphy = get_phy_info(uec->mii_info);
+ curphy =
uec_
get_phy_info(uec->mii_info);
if (!curphy) {
printf("%s: No PHY found", dev->name);
err = -1;
if (!curphy) {
printf("%s: No PHY found", dev->name);
err = -1;
@@
-989,6
+989,13
@@
static int uec_startup(uec_private_t *uec)
/* Setup MAC interface mode */
uec_set_mac_if_mode(uec, uec_info->enet_interface);
/* Setup MAC interface mode */
uec_set_mac_if_mode(uec, uec_info->enet_interface);
+ /* Setup MII management base */
+#ifndef CONFIG_eTSEC_MDIO_BUS
+ uec->uec_mii_regs = (uec_mii_t *)(&uec_regs->miimcfg);
+#else
+ uec->uec_mii_regs = (uec_mii_t *) CONFIG_MIIM_ADDRESS;
+#endif
+
/* Setup MII master clock source */
qe_set_mii_clk_src(uec_info->uf_info.ucc_num);
/* Setup MII master clock source */
qe_set_mii_clk_src(uec_info->uf_info.ucc_num);
@@
-1103,7
+1110,7
@@
static int uec_init(struct eth_device* dev, bd_t *bd)
if (dev->enetaddr[0] & 0x01) {
printf("%s: MacAddress is multcast address\n",
__FUNCTION__);
if (dev->enetaddr[0] & 0x01) {
printf("%s: MacAddress is multcast address\n",
__FUNCTION__);
- return
-EINVAL
;
+ return
0
;
}
uec_set_mac_address(uec, dev->enetaddr);
uec->the_first_run = 1;
}
uec_set_mac_address(uec, dev->enetaddr);
uec->the_first_run = 1;
@@
-1112,10
+1119,10
@@
static int uec_init(struct eth_device* dev, bd_t *bd)
err = uec_open(uec, COMM_DIR_RX_AND_TX);
if (err) {
printf("%s: cannot enable UEC device\n", dev->name);
err = uec_open(uec, COMM_DIR_RX_AND_TX);
if (err) {
printf("%s: cannot enable UEC device\n", dev->name);
- return
err
;
+ return
0
;
}
}
- return
0
;
+ return
uec->mii_info->link
;
}
static void uec_halt(struct eth_device* dev)
}
static void uec_halt(struct eth_device* dev)