projects
/
oweals
/
u-boot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
colibri_imx7_emmc: enable DM_VIDEO
[oweals/u-boot.git]
/
cmd
/
mdio.c
diff --git
a/cmd/mdio.c
b/cmd/mdio.c
index 3f11963006533c6c03f863c7306446dad909325d..5e219f699d8dfbf9d3cb068b583c4df56ac2cf87 100644
(file)
--- a/
cmd/mdio.c
+++ b/
cmd/mdio.c
@@
-1,8
+1,7
@@
+// SPDX-License-Identifier: GPL-2.0+
/*
* (C) Copyright 2011 Freescale Semiconductor, Inc
* Andy Fleming
/*
* (C) Copyright 2011 Freescale Semiconductor, Inc
* Andy Fleming
- *
- * SPDX-License-Identifier: GPL-2.0+
*/
/*
*/
/*
@@
-40,21
+39,27
@@
static int extract_range(char *input, int *plo, int *phi)
return 0;
}
return 0;
}
-static int mdio_write_ranges(struct
phy_device *phydev, struct
mii_dev *bus,
+static int mdio_write_ranges(struct mii_dev *bus,
int addrlo,
int addrhi, int devadlo, int devadhi,
int reglo, int reghi, unsigned short data,
int extended)
{
int addrlo,
int addrhi, int devadlo, int devadhi,
int reglo, int reghi, unsigned short data,
int extended)
{
+ struct phy_device *phydev;
int addr, devad, reg;
int err = 0;
for (addr = addrlo; addr <= addrhi; addr++) {
int addr, devad, reg;
int err = 0;
for (addr = addrlo; addr <= addrhi; addr++) {
+ phydev = bus->phymap[addr];
+
for (devad = devadlo; devad <= devadhi; devad++) {
for (reg = reglo; reg <= reghi; reg++) {
for (devad = devadlo; devad <= devadhi; devad++) {
for (reg = reglo; reg <= reghi; reg++) {
- if (!
extended
)
+ if (!
phydev
)
err = bus->write(bus, addr, devad,
reg, data);
err = bus->write(bus, addr, devad,
reg, data);
+ else if (!extended)
+ err = phy_write_mmd(phydev, devad,
+ reg, data);
else
err = phydev->drv->writeext(phydev,
addr, devad, reg, data);
else
err = phydev->drv->writeext(phydev,
addr, devad, reg, data);
@@
-69,23
+74,27
@@
err_out:
return err;
}
return err;
}
-static int mdio_read_ranges(struct
phy_device *phydev, struct
mii_dev *bus,
+static int mdio_read_ranges(struct mii_dev *bus,
int addrlo,
int addrhi, int devadlo, int devadhi,
int reglo, int reghi, int extended)
{
int addr, devad, reg;
int addrlo,
int addrhi, int devadlo, int devadhi,
int reglo, int reghi, int extended)
{
int addr, devad, reg;
+ struct phy_device *phydev;
printf("Reading from bus %s\n", bus->name);
for (addr = addrlo; addr <= addrhi; addr++) {
printf("Reading from bus %s\n", bus->name);
for (addr = addrlo; addr <= addrhi; addr++) {
+ phydev = bus->phymap[addr];
printf("PHY at address %x:\n", addr);
for (devad = devadlo; devad <= devadhi; devad++) {
for (reg = reglo; reg <= reghi; reg++) {
int val;
printf("PHY at address %x:\n", addr);
for (devad = devadlo; devad <= devadhi; devad++) {
for (reg = reglo; reg <= reghi; reg++) {
int val;
- if (!
extended
)
+ if (!
phydev
)
val = bus->read(bus, addr, devad, reg);
val = bus->read(bus, addr, devad, reg);
+ else if (!extended)
+ val = phy_read_mmd(phydev, devad, reg);
else
val = phydev->drv->readext(phydev, addr,
devad, reg);
else
val = phydev->drv->readext(phydev, addr,
devad, reg);
@@
-223,14
+232,14
@@
static int do_mdio(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
bus = phydev->bus;
extended = 1;
} else {
bus = phydev->bus;
extended = 1;
} else {
- return
-1
;
+ return
CMD_RET_FAILURE
;
}
if (!phydev->drv ||
(!phydev->drv->writeext && (op[0] == 'w')) ||
(!phydev->drv->readext && (op[0] == 'r'))) {
puts("PHY does not have extended functions\n");
}
if (!phydev->drv ||
(!phydev->drv->writeext && (op[0] == 'w')) ||
(!phydev->drv->readext && (op[0] == 'r'))) {
puts("PHY does not have extended functions\n");
- return
-1
;
+ return
CMD_RET_FAILURE
;
}
}
}
}
}
}
@@
-243,13
+252,13
@@
static int do_mdio(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
if (pos > 1)
if (extract_reg_range(argv[pos--], &devadlo, &devadhi,
®lo, ®hi))
if (pos > 1)
if (extract_reg_range(argv[pos--], &devadlo, &devadhi,
®lo, ®hi))
- return
-1
;
+ return
CMD_RET_FAILURE
;
default:
if (pos > 1)
if (extract_phy_range(&argv[2], pos - 1, &bus,
&phydev, &addrlo, &addrhi))
default:
if (pos > 1)
if (extract_phy_range(&argv[2], pos - 1, &bus,
&phydev, &addrlo, &addrhi))
- return
-1
;
+ return
CMD_RET_FAILURE
;
break;
}
break;
}
@@
-265,12
+274,12
@@
static int do_mdio(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
switch (op[0]) {
case 'w':
switch (op[0]) {
case 'w':
- mdio_write_ranges(
phydev,
bus, addrlo, addrhi, devadlo, devadhi,
+ mdio_write_ranges(bus, addrlo, addrhi, devadlo, devadhi,
reglo, reghi, data, extended);
break;
case 'r':
reglo, reghi, data, extended);
break;
case 'r':
- mdio_read_ranges(
phydev,
bus, addrlo, addrhi, devadlo, devadhi,
+ mdio_read_ranges(bus, addrlo, addrhi, devadlo, devadhi,
reglo, reghi, extended);
break;
}
reglo, reghi, extended);
break;
}