summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHsu Henry <Henry.Hsu@quantatw.com>2015-03-30 09:26:05 +0800
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-04-10 01:15:28 +0000
commit7a86307b259f17491a65af905da3bd1d0deeff13 (patch)
treeb8a3f742bb73e41d261291353e3fcaa2fd09c2b4
parent5d4cb3e0ff50437f6405bc1cc648a0d497b1a26d (diff)
downloadchrome-ec-7a86307b259f17491a65af905da3bd1d0deeff13.tar.gz
CHERRY-PICK: Smart battery: Add delay time for battery read/write
Some battery pack can't response ec command. Adding some dealy will fix it. BUG=chrome-os-partner:37842 BRANCH=banjo TEST=test with banjo, 100us. With the particular battery, no error occurs. Original-Change-Id: Ia40dc7d5286525d54641893d900dfe3a345a2156 Signed-off-by: Henry Hsu <Henry.Hsu@quantatw.com> Reviewed-on: https://chromium-review.googlesource.com/262853 Reviewed-by: Sheng-liang Song <ssl@google.com> Conflicts: driver/battery/smart.c include/config.h Change-Id: I3b2551977a9935be167a59b7a74adb26f033ca31 Reviewed-on: https://chromium-review.googlesource.com/264241 Reviewed-by: Mohammed Habibulla <moch@google.com> Reviewed-by: Sheng-liang Song <ssl@chromium.org> Commit-Queue: Hsu Henry <Henry.Hsu@quantatw.com> Tested-by: Hsu Henry <Henry.Hsu@quantatw.com>
-rw-r--r--driver/battery/smart.c8
-rw-r--r--include/config.h5
2 files changed, 13 insertions, 0 deletions
diff --git a/driver/battery/smart.c b/driver/battery/smart.c
index 0c63e0fec1..4a0a2e61d8 100644
--- a/driver/battery/smart.c
+++ b/driver/battery/smart.c
@@ -49,6 +49,10 @@ test_mockable int sb_read(int cmd, int *param)
return rv;
}
#else
+
+#ifdef CONFIG_BATTERY_I2C_ACCESS_DELAY_TIME
+ usleep(CONFIG_BATTERY_I2C_ACCESS_DELAY_TIME);
+#endif
return i2c_read16(I2C_PORT_BATTERY, BATTERY_ADDR, cmd, param);
#endif
}
@@ -65,6 +69,10 @@ test_mockable int sb_write(int cmd, int param)
#ifdef CONFIG_SMBUS
return smbus_write_word(I2C_PORT_BATTERY, BATTERY_ADDR, cmd, param);
#else
+
+#ifdef CONFIG_BATTERY_I2C_ACCESS_DELAY_TIME
+ usleep(CONFIG_BATTERY_I2C_ACCESS_DELAY_TIME);
+#endif
return i2c_write16(I2C_PORT_BATTERY, BATTERY_ADDR, cmd, param);
#endif
}
diff --git a/include/config.h b/include/config.h
index 1f31b1f7f1..fb61f78277 100644
--- a/include/config.h
+++ b/include/config.h
@@ -88,6 +88,11 @@
#undef CONFIG_BATTERY_BQ27541 /* BQ27541 battery */
#undef CONFIG_BATTERY_LINK /* Battery used on Link */
+/*
+ * Delay time for smart battery command.
+ */
+#undef CONFIG_BATTERY_I2C_ACCESS_DELAY_TIME
+
/* Compile mock battery support; used by tests. */
#undef CONFIG_BATTERY_MOCK