[PATCH v2 9/9] power: supply: max77976_charger: fix constant current reporting

Dzmitry Sankouski posted 9 patches 3 weeks, 2 days ago
There is a newer version of this series
[PATCH v2 9/9] power: supply: max77976_charger: fix constant current reporting
Posted by Dzmitry Sankouski 3 weeks, 2 days ago
CHARGE_CONTROL_LIMIT is a wrong property to report charge current limit,
because `CHARGE_*` attributes represents capacity, not current. The
correct attribute to report and set charge current limit is
CONSTANT_CHARGE_CURRENT.

Rename CHARGE_CONTROL_LIMIT to CONSTANT_CHARGE_CURRENT.

Fixes: 715ecbc10d6a ("power: supply: max77976: add Maxim MAX77976 charger driver")

Signed-off-by: Dzmitry Sankouski <dsankouski@gmail.com>
---
 drivers/power/supply/max77976_charger.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/power/supply/max77976_charger.c b/drivers/power/supply/max77976_charger.c
index e6fe68cebc32..3d6ff4005533 100644
--- a/drivers/power/supply/max77976_charger.c
+++ b/drivers/power/supply/max77976_charger.c
@@ -292,10 +292,10 @@ static int max77976_get_property(struct power_supply *psy,
 	case POWER_SUPPLY_PROP_ONLINE:
 		err = max77976_get_online(chg, &val->intval);
 		break;
-	case POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT_MAX:
+	case POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX:
 		val->intval = MAX77976_CHG_CC_MAX;
 		break;
-	case POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT:
+	case POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT:
 		err = max77976_get_integer(chg, CHG_CC,
 					   MAX77976_CHG_CC_MIN,
 					   MAX77976_CHG_CC_MAX,
@@ -330,7 +330,7 @@ static int max77976_set_property(struct power_supply *psy,
 	int err = 0;
 
 	switch (psp) {
-	case POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT:
+	case POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT:
 		err = max77976_set_integer(chg, CHG_CC,
 					   MAX77976_CHG_CC_MIN,
 					   MAX77976_CHG_CC_MAX,
@@ -355,7 +355,7 @@ static int max77976_property_is_writeable(struct power_supply *psy,
 					  enum power_supply_property psp)
 {
 	switch (psp) {
-	case POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT:
+	case POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT:
 	case POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT:
 		return true;
 	default:
@@ -368,8 +368,8 @@ static enum power_supply_property max77976_psy_props[] = {
 	POWER_SUPPLY_PROP_CHARGE_TYPE,
 	POWER_SUPPLY_PROP_HEALTH,
 	POWER_SUPPLY_PROP_ONLINE,
-	POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT,
-	POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT_MAX,
+	POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT,
+	POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX,
 	POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT,
 	POWER_SUPPLY_PROP_MODEL_NAME,
 	POWER_SUPPLY_PROP_MANUFACTURER,

-- 
2.39.5
Re: [PATCH v2 9/9] power: supply: max77976_charger: fix constant current reporting
Posted by Luca Ceresoli 3 weeks, 1 day ago
Hello Dzmitry, Sebastian,

On Tue, 09 Sep 2025 21:29:19 +0300
Dzmitry Sankouski <dsankouski@gmail.com> wrote:

> CHARGE_CONTROL_LIMIT is a wrong property to report charge current limit,
> because `CHARGE_*` attributes represents capacity, not current. The
> correct attribute to report and set charge current limit is
> CONSTANT_CHARGE_CURRENT.
> 
> Rename CHARGE_CONTROL_LIMIT to CONSTANT_CHARGE_CURRENT.
> 
> Fixes: 715ecbc10d6a ("power: supply: max77976: add Maxim MAX77976 charger driver")
> 
> Signed-off-by: Dzmitry Sankouski <dsankouski@gmail.com>
> ---
>  drivers/power/supply/max77976_charger.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/power/supply/max77976_charger.c b/drivers/power/supply/max77976_charger.c
> index e6fe68cebc32..3d6ff4005533 100644
> --- a/drivers/power/supply/max77976_charger.c
> +++ b/drivers/power/supply/max77976_charger.c
> @@ -292,10 +292,10 @@ static int max77976_get_property(struct power_supply *psy,
>  	case POWER_SUPPLY_PROP_ONLINE:
>  		err = max77976_get_online(chg, &val->intval);
>  		break;
> -	case POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT_MAX:
> +	case POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX:

Indeed CHARGE_CONTROL_LIMIT looks like a mistake.

Sebastian, my concern now is whether this change would be considered a
userspace ABI breakage.

Other than that, LGTM.

Luca

-- 
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com