power: rk817-battery: check if battery is exist

Signed-off-by: Shunqing Chen <csq@rock-chips.com>
Change-Id: Ieaad343bac258c097b860251e80506bdf98eab1b
This commit is contained in:
Shunqing Chen
2021-04-08 16:43:13 +08:00
committed by Tao Huang
parent f9dc86fdf1
commit 299b117d6f

View File

@@ -712,6 +712,14 @@ static int rk817_bat_field_write(struct rk817_battery_device *battery,
return regmap_field_write(battery->rmap_fields[field_id], val);
}
static bool rk817_is_bat_exist(struct rk817_battery_device *battery)
{
if (battery->chip_id == RK817_ID)
return rk817_bat_field_read(battery, BAT_EXS) ? true : false;
return true;
}
/*cal_offset: current offset value*/
static int rk817_bat_get_coffset(struct rk817_battery_device *battery)
{
@@ -1866,6 +1874,8 @@ static int rk817_bat_parse_dt(struct rk817_battery_device *battery)
ret = of_property_read_u32(np, "virtual_power", &pdata->bat_mode);
if (ret < 0)
dev_err(dev, "virtual_power missing!\n");
if (!rk817_is_bat_exist(battery))
battery->pdata->bat_mode = MODE_VIRTUAL;
ret = of_property_read_u32(np, "bat_res", &pdata->bat_res);
if (ret < 0)