From aac82dad396e21ebe8a774997eef76ae359e39fc Mon Sep 17 00:00:00 2001 From: liuyc20 Date: Tue, 19 Oct 2021 17:00:13 +0800 Subject: [PATCH] dlkm: rt9426a fg update rt9426a_read_page_cmd from richtek. For confirm sending read page cmd successfully. Change-Id: If36e8e29a57eb7b2890a510477e09a80382845e5 Signed-off-by: liuyc20 Reviewed-on: https://gerrit.mot.com/2093282 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Huosheng Liao Submit-Approved: Jira Key --- drivers/power/rt9426a_fg_mmi/rt9426a_battery.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/drivers/power/rt9426a_fg_mmi/rt9426a_battery.c b/drivers/power/rt9426a_fg_mmi/rt9426a_battery.c index 354622f0e6a6..30713e7cb54a 100644 --- a/drivers/power/rt9426a_fg_mmi/rt9426a_battery.c +++ b/drivers/power/rt9426a_fg_mmi/rt9426a_battery.c @@ -203,11 +203,19 @@ static int rt9426a_get_checksum(struct rt9426a_chip *chip) static void rt9426a_read_page_cmd(struct rt9426a_chip *chip, uint8_t page) { uint16_t read_page_cmd = 0x6500; + int i, regval, retry_times = 2; read_page_cmd += page; - rt9426a_reg_write_word(chip->i2c, RT9426A_REG_BDCNTL, read_page_cmd); - rt9426a_reg_write_word(chip->i2c, RT9426A_REG_BDCNTL, read_page_cmd); - mdelay(5); + + /* confirm sending read page cmd successfully ; 2021-10-12 */ + for (i = 0; i < retry_times; i++) { + rt9426a_reg_write_word(chip->i2c, RT9426A_REG_BDCNTL, read_page_cmd); + rt9426a_reg_write_word(chip->i2c, RT9426A_REG_BDCNTL, read_page_cmd); + mdelay(5); + regval = rt9426a_reg_read_word(chip->i2c, RT9426A_REG_SWINDOW1); + if (regval != 0xFFFF) + break; + } } static void rt9426a_write_page_cmd(struct rt9426a_chip *chip, uint8_t page)