sbs-battery: Probe should try talking to the device
[firefly-linux-kernel-4.4.55.git] / drivers / power / sbs-battery.c
index a65e8f54157efe4fe046367e6a28d10fefe0c141..4146596d254b9f8f7c8eaa325fb0714d495edec5 100644 (file)
@@ -759,6 +759,16 @@ static int __devinit sbs_probe(struct i2c_client *client,
        chip->irq = irq;
 
 skip_gpio:
+       /*
+        * Before we register, we need to make sure we can actually talk
+        * to the battery.
+        */
+       rc = sbs_read_word_data(client, sbs_data[REG_STATUS].addr);
+       if (rc < 0) {
+               dev_err(&client->dev, "%s: Failed to get device status\n",
+                       __func__);
+               goto exit_psupply;
+       }
 
        rc = power_supply_register(&client->dev, &chip->power_supply);
        if (rc) {