summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Palatin <vpalatin@chromium.org>2015-03-25 12:39:42 -0700
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-03-26 19:56:11 +0000
commit142a950aff428f87ca480e6a4695294ca21129aa (patch)
treee86d7b2e2969279af8d0187cd55c76e63b73997a
parent255bf12ffb54c590af931207dcccbbd41af25e9f (diff)
downloadchrome-ec-142a950aff428f87ca480e6a4695294ca21129aa.tar.gz
Skip the battery device name reading on BQ27742
Contrary to the BQ2751 and BQ27741 it is sharing code with, BQ27742 does not have a "device name" register. So we need to skip the I2C reads else the battery_device_name() function returns an I2C error and the charge code retries until the end-of-time to read it hogging the CPU. Signed-off-by: Vincent Palatin <vpalatin@chromium.org> BRANCH=none BUG=chrome-os-partner:38401 TEST=run on Ryu P4 and verify that we are no longer seeing 20ms of I2C transactions every 100ms on the battery I2C bus. Change-Id: I961af54017f661ee928058b346a42b7206ad8217 Reviewed-on: https://chromium-review.googlesource.com/262449 Reviewed-by: Alec Berg <alecaberg@chromium.org> Commit-Queue: Vincent Palatin <vpalatin@chromium.org> Tested-by: Vincent Palatin <vpalatin@chromium.org>
-rw-r--r--driver/battery/bq27541.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/driver/battery/bq27541.c b/driver/battery/bq27541.c
index 516d3330e6..2f7e1b2678 100644
--- a/driver/battery/bq27541.c
+++ b/driver/battery/bq27541.c
@@ -89,6 +89,12 @@ int battery_device_name(char *device_name, int buf_size)
int rv, i, val;
int len = MIN(7, buf_size - 1);
+ if (battery_type_id == BQ27742_TYPE_ID) {
+ /* No device name register available */
+ strzcpy(device_name, "<BATT>", len);
+ return 0;
+ }
+
rv = bq27541_read8(REG_DEVICE_NAME_LENGTH, &val);
if (rv)
return rv;