mirror of
https://xff.cz/git/u-boot/
synced 2025-09-30 15:01:27 +02: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:
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++) {
|
for (reg = 0; reg < pmic_reg_count(dev); reg++) {
|
||||||
ret = pmic_reg_read(dev, reg);
|
ret = pmic_reg_read(dev, reg);
|
||||||
if (ret < 0) {
|
if (ret < 0 && ret != -ENODATA) {
|
||||||
printf("Can't read register: %d\n", reg);
|
printf("Can't read register: %d\n", reg);
|
||||||
return failure(ret);
|
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))
|
if (!(reg % 16))
|
||||||
printf("\n0x%02x: ", reg);
|
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");
|
printf("\n");
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user