mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-09 06:33:34 +00:00
power: supply: bq25890: Clean up POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE
Clean up misuse of POWER_SUPPLY_PROP_VOLTAGE, POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX and POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE and document what exactly each value means. The POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE content is newly read back from hardware, while POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX is reported as the maximum value set in DT. The POWER_SUPPLY_PROP_VOLTAGE is newly used to report immediate value of battery voltage V_BAT, which is what this property was intended to report and which has been thus far misused to report the charger chip output voltage V_SYS. The V_SYS is no longer reported as there is currently no suitable property to report V_SYS. V_SYS reporting will be reinstated in subsequent patch. Signed-off-by: Marek Vasut <marex@denx.de> Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
This commit is contained in:
parent
8327a8abd4
commit
7c85237519
@ -529,24 +529,6 @@ static int bq25890_power_supply_get_property(struct power_supply *psy,
|
||||
val->intval = POWER_SUPPLY_HEALTH_UNSPEC_FAILURE;
|
||||
break;
|
||||
|
||||
case POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE:
|
||||
if (!state.online) {
|
||||
val->intval = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
ret = bq25890_field_read(bq, F_BATV); /* read measured value */
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
/* converted_val = 2.304V + ADC_val * 20mV (table 10.3.15) */
|
||||
val->intval = 2304000 + ret * 20000;
|
||||
break;
|
||||
|
||||
case POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX:
|
||||
val->intval = bq25890_find_val(bq->init_data.vreg, TBL_VREG);
|
||||
break;
|
||||
|
||||
case POWER_SUPPLY_PROP_PRECHARGE_CURRENT:
|
||||
val->intval = bq25890_find_val(bq->init_data.iprechg, TBL_ITERM);
|
||||
break;
|
||||
@ -563,15 +545,6 @@ static int bq25890_power_supply_get_property(struct power_supply *psy,
|
||||
val->intval = bq25890_find_val(ret, TBL_IINLIM);
|
||||
break;
|
||||
|
||||
case POWER_SUPPLY_PROP_VOLTAGE_NOW:
|
||||
ret = bq25890_field_read(bq, F_SYSV); /* read measured value */
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
/* converted_val = 2.304V + ADC_val * 20mV (table 10.3.15) */
|
||||
val->intval = 2304000 + ret * 20000;
|
||||
break;
|
||||
|
||||
case POWER_SUPPLY_PROP_CURRENT_NOW: /* I_BAT now */
|
||||
/*
|
||||
* This is ADC-sampled immediate charge current supplied
|
||||
@ -628,6 +601,51 @@ static int bq25890_power_supply_get_property(struct power_supply *psy,
|
||||
val->intval = bq25890_find_val(bq->init_data.ichg, TBL_ICHG);
|
||||
break;
|
||||
|
||||
case POWER_SUPPLY_PROP_VOLTAGE_NOW: /* V_BAT now */
|
||||
/*
|
||||
* This is ADC-sampled immediate charge voltage supplied
|
||||
* from charger to battery. The property name is confusing,
|
||||
* for clarification refer to:
|
||||
* Documentation/ABI/testing/sysfs-class-power
|
||||
* /sys/class/power_supply/<supply_name>/voltage_now
|
||||
*/
|
||||
ret = bq25890_field_read(bq, F_BATV); /* read measured value */
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
/* converted_val = 2.304V + ADC_val * 20mV (table 10.3.15) */
|
||||
val->intval = 2304000 + ret * 20000;
|
||||
break;
|
||||
|
||||
case POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE: /* V_BAT user limit */
|
||||
/*
|
||||
* This is user-configured constant charge voltage supplied
|
||||
* from charger to battery in second phase of charging, when
|
||||
* battery voltage reached constant charge voltage.
|
||||
*
|
||||
* This value reflects the current hardware setting.
|
||||
*
|
||||
* The POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX is the
|
||||
* maximum value of this property.
|
||||
*/
|
||||
ret = bq25890_field_read(bq, F_VREG);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
val->intval = bq25890_find_val(ret, TBL_VREG);
|
||||
break;
|
||||
|
||||
case POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX: /* V_BAT max */
|
||||
/*
|
||||
* This is maximum allowed constant charge voltage supplied
|
||||
* from charger to battery in second phase of charging, when
|
||||
* battery voltage reached constant charge voltage.
|
||||
*
|
||||
* This value is constant for each battery and set from DT.
|
||||
*/
|
||||
val->intval = bq25890_find_val(bq->init_data.vreg, TBL_VREG);
|
||||
break;
|
||||
|
||||
case POWER_SUPPLY_PROP_TEMP:
|
||||
ret = bq25890_field_read(bq, F_TSPCT);
|
||||
if (ret < 0)
|
||||
|
Loading…
Reference in New Issue
Block a user