[PATCH v2 1/3] wandboard: Fix the DM_PMIC conversion

Commit ec837c82d709 ("imx6: wandboard: convert to DM_PMIC") caused the following pmic_get() error:
CPU: Freescale i.MX6QP rev1.0 at 792 MHz Reset cause: POR DRAM: 2 GiB PMIC: pmic_get() ret -19 ...
and since the PMIC presence is used to determine the board D1 revision, the following error is seen when booting a board rev D1:
WARNING: Could not determine dtb to use
and the kernel does not boot at all.
Fix the regression by passing "pfuze100@8" as the correct parameter to the pmic_get() function in the DM case.
Fixes: ec837c82d709 ("imx6: wandboard: convert to DM_PMIC") Signed-off-by: Fabio Estevam festevam@gmail.com --- Changes since v1: - Remove a double 'the' in the Subject
board/wandboard/wandboard.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/board/wandboard/wandboard.c b/board/wandboard/wandboard.c index 6c1e4ef27d..b2f961a7f0 100644 --- a/board/wandboard/wandboard.c +++ b/board/wandboard/wandboard.c @@ -363,7 +363,7 @@ int power_init_board(void)
puts("PMIC: ");
- ret = pmic_get("pfuze100", &dev); + ret = pmic_get("pfuze100@8", &dev); if (ret < 0) { printf("pmic_get() ret %d\n", ret); return 0;

When pmic_get() or pmic_reg_read() fail, the error code should be propagated instead of returning success.
Signed-off-by: Fabio Estevam festevam@gmail.com --- Changes since v1: - None
board/wandboard/wandboard.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/board/wandboard/wandboard.c b/board/wandboard/wandboard.c index b2f961a7f0..7209cc8211 100644 --- a/board/wandboard/wandboard.c +++ b/board/wandboard/wandboard.c @@ -366,13 +366,13 @@ int power_init_board(void) ret = pmic_get("pfuze100@8", &dev); if (ret < 0) { printf("pmic_get() ret %d\n", ret); - return 0; + return ret; }
reg = pmic_reg_read(dev, PFUZE100_DEVICEID); if (reg < 0) { printf("pmic_reg_read() ret %d\n", reg); - return 0; + return ret; } printf("PMIC: PFUZE100 ID=0x%02x\n", reg); with_pmic = true;

On Mon, Dec 9, 2019 at 9:20 PM Fabio Estevam festevam@gmail.com wrote:
diff --git a/board/wandboard/wandboard.c b/board/wandboard/wandboard.c index b2f961a7f0..7209cc8211 100644 --- a/board/wandboard/wandboard.c +++ b/board/wandboard/wandboard.c @@ -366,13 +366,13 @@ int power_init_board(void) ret = pmic_get("pfuze100@8", &dev); if (ret < 0) { printf("pmic_get() ret %d\n", ret);
return 0;
return ret;
Ops, we can't return error here because this causes issues on the boards without PMIC.
I will resend the series without this patch.
} reg = pmic_reg_read(dev, PFUZE100_DEVICEID); if (reg < 0) { printf("pmic_reg_read() ret %d\n", reg);
return 0;
return ret; } printf("PMIC: PFUZE100 ID=0x%02x\n", reg); with_pmic = true;
-- 2.17.1

After the conversion to DM_PMIC the following output is seen:
PMIC: PMIC: PFUZE100 ID=0x10
Remove the unnecessary PMIC string from the board file to avoid the repetead string.
Signed-off-by: Fabio Estevam festevam@gmail.com --- Changes since v1: - Make it part of a patch series board/wandboard/wandboard.c | 2 -- 1 file changed, 2 deletions(-)
diff --git a/board/wandboard/wandboard.c b/board/wandboard/wandboard.c index 7209cc8211..e386ad2cc1 100644 --- a/board/wandboard/wandboard.c +++ b/board/wandboard/wandboard.c @@ -361,8 +361,6 @@ int power_init_board(void) struct udevice *dev; int reg, ret;
- puts("PMIC: "); - ret = pmic_get("pfuze100@8", &dev); if (ret < 0) { printf("pmic_get() ret %d\n", ret);
participants (1)
-
Fabio Estevam