Re: [U-Boot] [PATCH v2 38/41] pmic: allow dump command for non contiguous register maps

2019-10-30 Thread Schrempf Frieder
On 23.10.19 20:21, Robert Beckett wrote:
> From: Martin Fuzzey 
> 
> 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 
> Signed-off-by: Robert Beckett 

Reviewed-by: Frieder Schrempf 
Tested-by: Frieder Schrempf 

> ---
>   cmd/pmic.c | 12 ++--
>   1 file changed, 10 insertions(+), 2 deletions(-)
> 
> diff --git a/cmd/pmic.c b/cmd/pmic.c
> index e46d813a70..2400bfb601 100644
> --- a/cmd/pmic.c
> +++ b/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");
>   
> 
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH v2 38/41] pmic: allow dump command for non contiguous register maps

2019-10-23 Thread Robert Beckett
From: Martin Fuzzey 

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 
Signed-off-by: Robert Beckett 
---
 cmd/pmic.c | 12 ++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/cmd/pmic.c b/cmd/pmic.c
index e46d813a70..2400bfb601 100644
--- a/cmd/pmic.c
+++ b/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");
 
-- 
2.20.1

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot