Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 15b8233f authored by Hans de Goede's avatar Hans de Goede Committed by Greg Kroah-Hartman
Browse files

power: supply: bq24190_charger: Fix bq24190_vbus_is_enabled() wrong false return



[ Upstream commit f7731754fdce33dad19be746f647d6ac47c5d695 ]

The datasheet says that the BQ24190_REG_POC_CHG_CONFIG bits can
have a value of either 10(0x2) or 11(0x3) for OTG (5V boost regulator)
mode.

Sofar bq24190_vbus_is_enabled() was only checking for 10 but some BIOS-es
uses 11 when enabling the regulator at boot.

Make bq24190_vbus_is_enabled() also check for 11 so that it does not
wrongly returns false when the bits are set to 11.

Fixes: 66b6bef2 ("power: supply: bq24190_charger: Export 5V boost converter as regulator")
Cc: Bastien Nocera <hadess@hadess.net>
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 2d6ae8b7
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@
#define BQ24190_REG_POC_CHG_CONFIG_DISABLE		0x0
#define BQ24190_REG_POC_CHG_CONFIG_CHARGE		0x1
#define BQ24190_REG_POC_CHG_CONFIG_OTG			0x2
#define BQ24190_REG_POC_CHG_CONFIG_OTG_ALT		0x3
#define BQ24190_REG_POC_SYS_MIN_MASK		(BIT(3) | BIT(2) | BIT(1))
#define BQ24190_REG_POC_SYS_MIN_SHIFT		1
#define BQ24190_REG_POC_SYS_MIN_MIN			3000
@@ -568,7 +569,11 @@ static int bq24190_vbus_is_enabled(struct regulator_dev *dev)
	pm_runtime_mark_last_busy(bdi->dev);
	pm_runtime_put_autosuspend(bdi->dev);

	return ret ? ret : val == BQ24190_REG_POC_CHG_CONFIG_OTG;
	if (ret)
		return ret;

	return (val == BQ24190_REG_POC_CHG_CONFIG_OTG ||
		val == BQ24190_REG_POC_CHG_CONFIG_OTG_ALT);
}

static const struct regulator_ops bq24190_vbus_ops = {