google_dual_batt_gauge: dual gauge handler
Bug: 176037013
Signed-off-by: Jenny Ho <[email protected]>
Change-Id: I50c4a29df81739451ea8e261454ce7c4b203b707
diff --git a/max1720x_battery.c b/max1720x_battery.c
index 0aa3a41..521046f 100644
--- a/max1720x_battery.c
+++ b/max1720x_battery.c
@@ -203,6 +203,8 @@
/* debug interface, register to read or write */
u32 debug_reg_address;
+
+ struct power_supply_desc max1720x_psy_desc;
};
#define MAX1720_EMPTY_VOLTAGE(profile, temp, cycle) \
@@ -3011,7 +3013,7 @@
{
struct dentry *de;
- de = debugfs_create_dir("max1720x", 0);
+ de = debugfs_create_dir(chip->max1720x_psy_desc.name, 0);
if (IS_ERR_OR_NULL(de))
return -ENOENT;
@@ -3841,17 +3843,6 @@
return 0;
}
-static struct power_supply_desc max1720x_psy_desc = {
- .name = "maxfg",
- .type = POWER_SUPPLY_TYPE_BATTERY,
- .get_property = max1720x_get_property,
- .set_property = max1720x_set_property,
- .property_is_writeable = max1720x_property_is_writeable,
- .properties = max1720x_battery_props,
- .num_properties = ARRAY_SIZE(max1720x_battery_props),
-};
-
-
static void *ct_seq_start(struct seq_file *s, loff_t *pos)
{
struct max1720x_history *hi = (struct max1720x_history *)s->private;
@@ -4599,6 +4590,7 @@
struct device *dev = &client->dev;
struct power_supply_config psy_cfg = { };
const struct max17x0x_reg *reg;
+ const char *psy_name = NULL;
int ret = 0;
chip = devm_kzalloc(dev, sizeof(*chip), GFP_KERNEL);
@@ -4649,11 +4641,28 @@
}
if (of_property_read_bool(dev->of_node, "maxim,psy-type-unknown"))
- max1720x_psy_desc.type = POWER_SUPPLY_TYPE_UNKNOWN;
+ chip->max1720x_psy_desc.type = POWER_SUPPLY_TYPE_UNKNOWN;
psy_cfg.drv_data = chip;
psy_cfg.of_node = chip->dev->of_node;
- chip->psy = devm_power_supply_register(dev, &max1720x_psy_desc,
+
+ ret = of_property_read_string(dev->of_node,
+ "maxim,dual-battery", &psy_name);
+ if (ret == 0)
+ chip->max1720x_psy_desc.name = devm_kstrdup(dev, psy_name, GFP_KERNEL);
+ else
+ chip->max1720x_psy_desc.name = "maxfg";
+
+ pr_info("max1720x_psy_desc.name=%s\n",chip->max1720x_psy_desc.name);
+
+ chip->max1720x_psy_desc.type = POWER_SUPPLY_TYPE_BATTERY,
+ chip->max1720x_psy_desc.get_property = max1720x_get_property,
+ chip->max1720x_psy_desc.set_property = max1720x_set_property,
+ chip->max1720x_psy_desc.property_is_writeable = max1720x_property_is_writeable,
+ chip->max1720x_psy_desc.properties = max1720x_battery_props,
+ chip->max1720x_psy_desc.num_properties = ARRAY_SIZE(max1720x_battery_props),
+
+ chip->psy = devm_power_supply_register(dev, &chip->max1720x_psy_desc,
&psy_cfg);
if (IS_ERR(chip->psy)) {
dev_err(dev, "Couldn't register as power supply\n");
@@ -4694,7 +4703,7 @@
ret);
}
- chip->ce_log = logbuffer_register("batt_ce");
+ chip->ce_log = logbuffer_register(chip->max1720x_psy_desc.name);
if (IS_ERR(chip->ce_log)) {
ret = PTR_ERR(chip->ce_log);
dev_err(dev, "failed to obtain logbuffer, ret=%d\n", ret);