summaryrefslogtreecommitdiff
path: root/drivers/power/supply/sbs-battery.c
diff options
context:
space:
mode:
authorSebastian Reichel <sre@kernel.org>2020-06-02 17:36:24 +0300
committerSebastian Reichel <sre@kernel.org>2020-06-02 17:59:08 +0300
commitcf1eb321d1cd134da0083f6430301a09f8012de1 (patch)
tree2d1dbf97e16c0279ea744a536a52334d0dfce40c /drivers/power/supply/sbs-battery.c
parent805f64e8b5cf5838b1a0b4b9abce9084db2cf8f4 (diff)
downloadlinux-cf1eb321d1cd134da0083f6430301a09f8012de1.tar.xz
Revert "power: supply: sbs-battery: add PEC support"
This depends on the simplification of sbs_read_string_data, which breaks booting exynos5 based chromebooks. More investigation is required, so this patch and the simplification patch are reverted for this merge window. Note, that this is only a partial revert, since sbs_update_presence() has not been removed. It is also required for the charger broadcast disabling. This reverts commit 79bcd5a4a66076a8a8dacd7f4a3be1952283aef4. Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Diffstat (limited to 'drivers/power/supply/sbs-battery.c')
-rw-r--r--drivers/power/supply/sbs-battery.c51
1 files changed, 0 insertions, 51 deletions
diff --git a/drivers/power/supply/sbs-battery.c b/drivers/power/supply/sbs-battery.c
index f4f73e669460..00dfd9e9ac93 100644
--- a/drivers/power/supply/sbs-battery.c
+++ b/drivers/power/supply/sbs-battery.c
@@ -51,14 +51,6 @@ enum {
REG_CHARGE_VOLTAGE,
};
-#define REG_ADDR_SPEC_INFO 0x1A
-#define SPEC_INFO_VERSION_MASK GENMASK(7, 4)
-#define SPEC_INFO_VERSION_SHIFT 4
-
-#define SBS_VERSION_1_0 1
-#define SBS_VERSION_1_1 2
-#define SBS_VERSION_1_1_WITH_PEC 3
-
#define REG_ADDR_MANUFACTURE_DATE 0x1B
/* Battery Mode defines */
@@ -232,57 +224,14 @@ exit:
static int sbs_update_presence(struct sbs_info *chip, bool is_present)
{
- struct i2c_client *client = chip->client;
- int retries = chip->i2c_retry_count;
- s32 ret = 0;
- u8 version;
-
if (chip->is_present == is_present)
return 0;
if (!is_present) {
chip->is_present = false;
- /* Disable PEC when no device is present */
- client->flags &= ~I2C_CLIENT_PEC;
return 0;
}
- /* Check if device supports packet error checking and use it */
- while (retries > 0) {
- ret = i2c_smbus_read_word_data(client, REG_ADDR_SPEC_INFO);
- if (ret >= 0)
- break;
-
- /*
- * Some batteries trigger the detection pin before the
- * I2C bus is properly connected. This works around the
- * issue.
- */
- msleep(100);
-
- retries--;
- }
-
- if (ret < 0) {
- dev_dbg(&client->dev, "failed to read spec info: %d\n", ret);
-
- /* fallback to old behaviour */
- client->flags &= ~I2C_CLIENT_PEC;
- chip->is_present = true;
-
- return ret;
- }
-
- version = (ret & SPEC_INFO_VERSION_MASK) >> SPEC_INFO_VERSION_SHIFT;
-
- if (version == SBS_VERSION_1_1_WITH_PEC)
- client->flags |= I2C_CLIENT_PEC;
- else
- client->flags &= ~I2C_CLIENT_PEC;
-
- dev_dbg(&client->dev, "PEC: %s\n", (client->flags & I2C_CLIENT_PEC) ?
- "enabled" : "disabled");
-
if (!chip->is_present && is_present && !chip->charger_broadcasts)
sbs_disable_charger_broadcasts(chip);