diff --git a/drivers/power/sm5602_fg_mmi/sm5602_fg.c b/drivers/power/sm5602_fg_mmi/sm5602_fg.c index 5959e7bf7301..a8cb19f1cf13 100644 --- a/drivers/power/sm5602_fg_mmi/sm5602_fg.c +++ b/drivers/power/sm5602_fg_mmi/sm5602_fg.c @@ -2173,11 +2173,6 @@ static bool fg_init(struct i2c_client *client) struct sm_fg_chip *sm = i2c_get_clientdata(client); /*sm5602 i2c read check*/ - ret = fg_get_device_id(client); - if (ret < 0) { - pr_err("%s: fail to do i2c read(%d)\n", __func__, ret); - return false; - } if (fg_check_reg_init_need(client)) { ret = fg_reset(sm); @@ -2631,8 +2626,16 @@ static int fg_battery_parse_dt(struct sm_fg_chip *sm) bool hal_fg_init(struct i2c_client *client) { struct sm_fg_chip *sm = i2c_get_clientdata(client); + int ret = 0; pr_info("sm5602 hal_fg_init...\n"); + + ret = fg_get_device_id(client); + if (ret < 0) { + pr_err("%s: fail to do i2c read(%d)\n", __func__, ret); + return false; + } + mutex_lock(&sm->data_lock); if (client->dev.of_node) { /* Load common data from DTS*/