Lines Matching +full:reg +full:- +full:addr
5 * SPDX-License-Identifier: GPL-2.0+
32 return -1; in extract_range()
34 if ((*end == '-') && *(++end)) in extract_range()
39 return -1; in extract_range()
50 int addr, devad, reg; in mdio_write_ranges() local
53 for (addr = addrlo; addr <= addrhi; addr++) { in mdio_write_ranges()
55 for (reg = reglo; reg <= reghi; reg++) { in mdio_write_ranges()
57 err = bus->write(bus, addr, devad, in mdio_write_ranges()
58 reg, data); in mdio_write_ranges()
60 err = phydev->drv->writeext(phydev, in mdio_write_ranges()
61 addr, devad, reg, data); in mdio_write_ranges()
78 int addr, devad, reg; in mdio_read_ranges() local
80 printf("Reading from bus %s\n", bus->name); in mdio_read_ranges()
81 for (addr = addrlo; addr <= addrhi; addr++) { in mdio_read_ranges()
82 printf("PHY at address %x:\n", addr); in mdio_read_ranges()
85 for (reg = reglo; reg <= reghi; reg++) { in mdio_read_ranges()
89 val = bus->read(bus, addr, devad, reg); in mdio_read_ranges()
91 val = phydev->drv->readext(phydev, addr, in mdio_read_ranges()
92 devad, reg); in mdio_read_ranges()
103 printf("%d - 0x%x\n", reg, val & 0xffff); in mdio_read_ranges()
111 /* The register will be in the form [a[-b].]x[-y] */
124 strncpy(devadstr, input, regstr - input); in extract_reg_range()
125 devadstr[regstr - input] = '\0'; in extract_reg_range()
128 return -1; in extract_reg_range()
148 return -1; in extract_phy_range()
150 /* If there are two arguments, it's busname addr */ in extract_phy_range()
155 return -1; in extract_phy_range()
165 * 2) Just an address (use the previously-used bus) in extract_phy_range()
174 *addrlo = *addrhi = dev->addr; in extract_phy_range()
175 *bus = dev->bus; in extract_phy_range()
184 /* ---------------------------------------------------------------- */
190 int pos = argc - 1; in do_mdio()
227 addrlo = phydev->addr; in do_mdio()
229 bus = phydev->bus; in do_mdio()
232 return -1; in do_mdio()
235 if (!phydev->drv || in do_mdio()
236 (!phydev->drv->writeext && (op[0] == 'w')) || in do_mdio()
237 (!phydev->drv->readext && (op[0] == 'r'))) { in do_mdio()
239 return -1; in do_mdio()
247 data = simple_strtoul(argv[pos--], NULL, 16); in do_mdio()
250 if (extract_reg_range(argv[pos--], &devadlo, &devadhi, in do_mdio()
252 return -1; in do_mdio()
256 if (extract_phy_range(&(argv[2]), pos - 1, &bus, in do_mdio()
258 return -1; in do_mdio()
270 miiphy_set_current_dev(bus->name); in do_mdio()
304 "list - List MDIO buses\n"
305 "mdio read <phydev> [<devad>.]<reg> - "
306 "read PHY's register at <devad>.<reg>\n"
307 "mdio write <phydev> [<devad>.]<reg> <data> - "
308 "write PHY's register at <devad>.<reg>\n"
309 "mdio rx <phydev> [<devad>.]<reg> - "
310 "read PHY's extended register at <devad>.<reg>\n"
311 "mdio wx <phydev> [<devad>.]<reg> <data> - "
312 "write PHY's extended register at <devad>.<reg>\n"
314 " <busname> <addr>\n"
315 " <addr>\n"
317 "<addr> <devad>, and <reg> may be ranges, e.g. 1-5.4-0x1f.\n"