|
@@ -747,6 +747,18 @@ static int axp288_charger_probe(struct platform_device *pdev)
|
|
struct device *dev = &pdev->dev;
|
|
struct device *dev = &pdev->dev;
|
|
struct axp20x_dev *axp20x = dev_get_drvdata(pdev->dev.parent);
|
|
struct axp20x_dev *axp20x = dev_get_drvdata(pdev->dev.parent);
|
|
struct power_supply_config charger_cfg = {};
|
|
struct power_supply_config charger_cfg = {};
|
|
|
|
+ unsigned int val;
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * 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);
|
|
info = devm_kzalloc(&pdev->dev, sizeof(*info), GFP_KERNEL);
|
|
if (!info)
|
|
if (!info)
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|