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>
This commit is contained in:
Vincent Palatin
2015-03-25 12:39:42 -07:00
committed by ChromeOS Commit Bot
parent 255bf12ffb
commit 142a950aff

View File

@@ -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;