]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
power: lc709203f: do not override initial RSOC value
authorVenkat Reddy Talla <vreddytalla@nvidia.com>
Tue, 25 Mar 2014 06:57:35 +0000 (12:27 +0530)
committerMrutyunjay Sawant <msawant@nvidia.com>
Wed, 26 Mar 2014 14:15:39 +0000 (07:15 -0700)
do not program lc709203 register 0x07 if initial
rsoc value provided in dts file is 0.
fuel gauge will be automatically initialzed 10 ms after
battery connected to the device and will track the RSOC
thereafter.

Bug 1470891

Change-Id: I79c9860c03416bd3287d8011493b351fc006b925
Signed-off-by: Venkat Reddy Talla <vreddytalla@nvidia.com>
Reviewed-on: http://git-master/r/386100
(cherry picked from commit 61134f2569db43eef67203ae215dd7a790d60981)
Reviewed-on: http://git-master/r/386374
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
drivers/power/lc709203f_battery.c

index b13e730b319d355807991c9cda8d99a0ec552d7f..3cf7bf3ae2e38d94e2b4f363e587d7942f6f55fa 100644 (file)
@@ -302,12 +302,8 @@ static void of_lc709203f_parse_platform_data(struct i2c_client *client,
        int ret;
 
        ret = of_property_read_u32(np, "onsemi,initial-rsoc", &pval);
-       if (!ret) {
+       if (!ret)
                pdata->initial_rsoc = pval;
-       } else {
-               dev_warn(&client->dev, "initial-rsoc not provided\n");
-               pdata->initial_rsoc = 0xAA55;
-       }
 
        ret = of_property_read_u32(np, "onsemi,appli-adjustment", &pval);
        if (!ret)
@@ -437,14 +433,17 @@ static int lc709203f_probe(struct i2c_client *client,
        chip->shutdown_complete = 0;
        i2c_set_clientdata(client, chip);
 
-       ret = lc709203f_write_word(chip->client,
-               LC709203F_INITIAL_RSOC, chip->pdata->initial_rsoc);
-       if (ret < 0) {
-               dev_err(&client->dev, "INITIAL_RSOC write failed: %d\n", ret);
-               return ret;
-       }
-       dev_info(&client->dev, "initial-rsoc: 0x%04x\n",
+       if (chip->pdata->initial_rsoc) {
+               ret = lc709203f_write_word(chip->client,
+                       LC709203F_INITIAL_RSOC, chip->pdata->initial_rsoc);
+               if (ret < 0) {
+                       dev_err(&client->dev,
+                               "INITIAL_RSOC write failed: %d\n", ret);
+                       return ret;
+               }
+               dev_info(&client->dev, "initial-rsoc: 0x%04x\n",
                        chip->pdata->initial_rsoc);
+       }
 
        if (chip->pdata->appli_adjustment) {
                ret = lc709203f_write_word(chip->client,