|
@@ -754,10 +754,21 @@ static int axp288_fuel_gauge_probe(struct platform_device *pdev)
|
|
|
[BAT_D_CURR] = "axp288-chrg-d-curr",
|
|
|
[BAT_VOLT] = "axp288-batt-volt",
|
|
|
};
|
|
|
+ unsigned int val;
|
|
|
|
|
|
if (dmi_check_system(axp288_fuel_gauge_blacklist))
|
|
|
return -ENODEV;
|
|
|
|
|
|
+ /*
|
|
|
+ * On some devices the fuelgauge and charger parts of the axp288 are
|
|
|
+ * not used, check that the fuelgauge is enabled (CC_CTRL != 0).
|
|
|
+ */
|
|
|
+ ret = regmap_read(axp20x->regmap, AXP20X_CC_CTRL, &val);
|
|
|
+ if (ret < 0)
|
|
|
+ return ret;
|
|
|
+ if (val == 0)
|
|
|
+ return -ENODEV;
|
|
|
+
|
|
|
info = devm_kzalloc(&pdev->dev, sizeof(*info), GFP_KERNEL);
|
|
|
if (!info)
|
|
|
return -ENOMEM;
|