mirror of
https://git.codelinaro.org/clo/qsdk/oss/boot/u-boot-2016.git
synced 2026-03-14 21:10:27 +01:00
ipq807x: Add ipq_mdio commands
This command helps to debug the phy issues. Change-Id: If8354d6826795d9ef9d44112582d3b911963bda5 Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
This commit is contained in:
parent
47bbd2ea51
commit
be6400b9d7
1 changed files with 43 additions and 0 deletions
|
|
@ -12,6 +12,7 @@
|
|||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <command.h>
|
||||
#include <miiphy.h>
|
||||
#include <phy.h>
|
||||
#include <asm/io.h>
|
||||
|
|
@ -182,3 +183,45 @@ int ipq_sw_mdio_init(const char *name)
|
|||
sprintf(bus->name, name);
|
||||
return mdio_register(bus);
|
||||
}
|
||||
|
||||
static int do_ipq_mdio(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
{
|
||||
char op[2];
|
||||
unsigned int addr, reg;
|
||||
unsigned short data = 0;
|
||||
|
||||
if (argc < 2)
|
||||
return CMD_RET_USAGE;
|
||||
|
||||
op[0] = argv[1][0];
|
||||
if (strlen(argv[1]) > 1)
|
||||
op[1] = argv[1][1];
|
||||
else
|
||||
op[1] = '\0';
|
||||
|
||||
if (argc >= 3)
|
||||
addr = simple_strtoul(argv[2], NULL, 16);
|
||||
if (argc >= 4)
|
||||
reg = simple_strtoul(argv[3], NULL, 16);
|
||||
if (argc >= 5)
|
||||
data = simple_strtoul(argv[4], NULL, 16);
|
||||
|
||||
if (op[0] == 'r') {
|
||||
data = ipq_mdio_read(addr, reg, NULL);
|
||||
printf("0x%x\n", data);
|
||||
} else if (op[0] == 'w') {
|
||||
ipq_mdio_write(addr, reg, data);
|
||||
} else {
|
||||
return CMD_RET_USAGE;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
U_BOOT_CMD(
|
||||
ipq_mdio, 5, 1, do_ipq_mdio,
|
||||
"IPQ mdio utility commands",
|
||||
"ipq_mdio read <addr> <reg> - read IPQ MDIO PHY <addr> register <reg>\n"
|
||||
"ipq_mdio write <addr> <reg> <data> - write IPQ MDIO PHY <addr> register <reg>\n"
|
||||
"Addr and/or reg may be ranges, e.g. 0-7."
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue