mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-25 06:03:36 -04:00
drivers: max170xx: reset on factory image
If we are a factory image, reset the fuel gauge in the same way we would if in factory mode. Change-Id: Iaab95a015e3893228a7b56ccc2aa77ea3a757213 Signed-off-by: Ryan Lattrel <ryanl@motorola.com> Reviewed-on: https://gerrit.mot.com/1466055 SLTApproved: Slta Waiver SME-Granted: SME Approvals Granted Tested-by: Jira Key Reviewed-by: Ling Jin <lingjin@motorola.com> Submit-Approved: Jira Key
This commit is contained in:
parent
67189bd53e
commit
35d672ec16
1 changed files with 31 additions and 5 deletions
|
|
@ -149,6 +149,7 @@ struct max17042_chip {
|
|||
int charge_full_des;
|
||||
int taper_reached;
|
||||
bool factory_mode;
|
||||
bool is_factory_image;
|
||||
char fg_report_str[FUEL_GAUGE_REPORT_SIZE];
|
||||
bool fullcap_report_sent;
|
||||
int last_fullcap;
|
||||
|
|
@ -2277,14 +2278,38 @@ iterm_fail:
|
|||
return;
|
||||
}
|
||||
|
||||
static bool max17042_mmi_factory(void)
|
||||
enum {
|
||||
MMI_FACTORY_MODE,
|
||||
MMI_FACTORY_BUILD,
|
||||
};
|
||||
|
||||
static bool mmi_factory_check(int type)
|
||||
{
|
||||
struct device_node *np = of_find_node_by_path("/chosen");
|
||||
bool factory = false;
|
||||
const char *bootargs = NULL;
|
||||
char *bl_version = NULL;
|
||||
|
||||
if (np)
|
||||
factory = of_property_read_bool(np, "mmi,factory-cable");
|
||||
if (!np)
|
||||
return factory;
|
||||
|
||||
switch (type) {
|
||||
case MMI_FACTORY_MODE:
|
||||
factory = of_property_read_bool(np,
|
||||
"mmi,factory-cable");
|
||||
break;
|
||||
case MMI_FACTORY_BUILD:
|
||||
if (!of_property_read_string(np,
|
||||
"bootargs", &bootargs)) {
|
||||
bl_version = strstr(bootargs,
|
||||
"androidboot.bootloader=");
|
||||
if (bl_version && strstr(bl_version, "factory"))
|
||||
factory = true;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
factory = false;
|
||||
}
|
||||
of_node_put(np);
|
||||
|
||||
return factory;
|
||||
|
|
@ -2463,7 +2488,8 @@ static int max17042_probe(struct i2c_client *client,
|
|||
if (ret)
|
||||
dev_err(&client->dev, "failed: attr create\n");
|
||||
|
||||
chip->factory_mode = max17042_mmi_factory();
|
||||
chip->factory_mode = mmi_factory_check(MMI_FACTORY_MODE);
|
||||
chip->is_factory_image = mmi_factory_check(MMI_FACTORY_BUILD);
|
||||
if (chip->factory_mode)
|
||||
dev_info(&client->dev, "max17042: Factory Mode\n");
|
||||
|
||||
|
|
@ -2526,7 +2552,7 @@ static int max17042_probe(struct i2c_client *client,
|
|||
INIT_WORK(&chip->work, max17042_init_worker);
|
||||
INIT_DELAYED_WORK(&chip->thread_work, max17042_thread_worker);
|
||||
|
||||
if (chip->factory_mode) {
|
||||
if (chip->factory_mode || chip->is_factory_image) {
|
||||
ret = regmap_read(chip->regmap, MAX17042_OCVInternal, &val);
|
||||
if (ret < 0)
|
||||
val = -EINVAL;
|
||||
|
|
|
|||
Loading…
Reference in a new issue