mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-17 12:41:32 +00:00
pmic: allow dump command for non contiguous register maps
Some PMICs (such as the DA9063) have non-contiguous register maps. Attempting to read the non implemented registers returns an error rather than a dummy value which causes 'pmic dump' to terminate prematurely. Fix this by allowing the PMIC driver to return -ENODATA for such registers, which will then be displayed as '--' by pmic dump. Use a single error code rather than any error code so that we can distinguish between a hardware failure reading the PMIC and a non implemented register known to the driver. Signed-off-by: Martin Fuzzey <martin.fuzzey@flowbird.group>
This commit is contained in:
parent
7ae22d8479
commit
b852cca8f0
1 changed files with 10 additions and 2 deletions
12
cmd/pmic.c
12
cmd/pmic.c
|
@ -95,7 +95,7 @@ static int do_dump(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|||
|
||||
for (reg = 0; reg < pmic_reg_count(dev); reg++) {
|
||||
ret = pmic_reg_read(dev, reg);
|
||||
if (ret < 0) {
|
||||
if (ret < 0 && ret != -ENODATA) {
|
||||
printf("Can't read register: %d\n", reg);
|
||||
return failure(ret);
|
||||
}
|
||||
|
@ -103,7 +103,15 @@ static int do_dump(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|||
if (!(reg % 16))
|
||||
printf("\n0x%02x: ", reg);
|
||||
|
||||
printf(fmt, ret);
|
||||
if (ret == -ENODATA) {
|
||||
int i;
|
||||
|
||||
for (i = 0; i < priv->trans_len; i++)
|
||||
puts("--");
|
||||
puts(" ");
|
||||
} else {
|
||||
printf(fmt, ret);
|
||||
}
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue