From 92a3aa9a14a964370bc659cf83a9855b67144ff6 Mon Sep 17 00:00:00 2001
From: Ondrej Jirman <megi@xff.cz>
Date: Sat, 1 Feb 2025 02:08:53 +0100
Subject: [PATCH 430/480] ip5xxx: fix POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR

---
 drivers/power/supply/ip5xxx_power.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/power/supply/ip5xxx_power.c b/drivers/power/supply/ip5xxx_power.c
index 596f4694ed85..64ed25e2b6fc 100644
--- a/drivers/power/supply/ip5xxx_power.c
+++ b/drivers/power/supply/ip5xxx_power.c
@@ -452,11 +452,11 @@ static int ip5xxx_battery_get_property(struct power_supply *psy,
 		return ip5xxx_battery_get_status(ip5xxx, &val->intval);
 
 	case POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR:
-		ret = ip5xxx_read(ip5xxx, IP5XXX_SYS_CTL0, &rval);
+		ret = ip5xxx_read(ip5xxx, ip5xxx->regs.charger.enable, &rval);
 		if (ret)
 			return ret;
 
-		if (rval & IP5XXX_SYS_CTL0_CHARGER_EN)
+		if (rval)
 			val->intval = POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO;
 		else
 			val->intval = POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE;
@@ -631,7 +631,7 @@ static int ip5xxx_battery_set_property(struct power_supply *psy,
 	case POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR:
 		switch (val->intval) {
 		case POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO:
-			rval = IP5XXX_SYS_CTL0_CHARGER_EN;
+			rval = 1;
 			break;
 		case POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE:
 			rval = 0;
@@ -640,8 +640,7 @@ static int ip5xxx_battery_set_property(struct power_supply *psy,
 			return -EINVAL;
 		}
 
-		return ip5xxx_update_bits(ip5xxx, IP5XXX_SYS_CTL0,
-					  IP5XXX_SYS_CTL0_CHARGER_EN, rval);
+		return ip5xxx_write(ip5xxx, ip5xxx->regs.charger.enable, rval);
 
 	case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN:
 		return ip5xxx_battery_set_voltage_max(ip5xxx, val->intval);
-- 
2.49.0

