diff mbox series

[v2,07/11] power: bq25890: implement CHARGE_TYPE property

Message ID 9b3bd77de9cfef8af8f8ab76270b46599f9e5ab1.1588517058.git.mirq-linux@rere.qmqm.pl (mailing list archive)
State Superseded, archived
Headers show
Series power: supply: bq25890: fix and extend | expand

Commit Message

Michał Mirosław May 3, 2020, 3:21 p.m. UTC
Report charging type based on recently read state.

Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
---
 drivers/power/supply/bq25890_charger.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

Comments

Sebastian Reichel May 3, 2020, 9:14 p.m. UTC | #1
Hi,

On Sun, May 03, 2020 at 05:21:12PM +0200, Michał Mirosław wrote:
> Report charging type based on recently read state.
> 
> Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
> ---

Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com>

-- Sebastian

>  drivers/power/supply/bq25890_charger.c | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/drivers/power/supply/bq25890_charger.c b/drivers/power/supply/bq25890_charger.c
> index e4368d01396a..ad0901fdceb6 100644
> --- a/drivers/power/supply/bq25890_charger.c
> +++ b/drivers/power/supply/bq25890_charger.c
> @@ -429,6 +429,18 @@ static int bq25890_power_supply_get_property(struct power_supply *psy,
>  
>  		break;
>  
> +	case POWER_SUPPLY_PROP_CHARGE_TYPE:
> +		if (!state.online || state.chrg_status == STATUS_NOT_CHARGING ||
> +		    state.chrg_status == STATUS_TERMINATION_DONE)
> +			val->intval = POWER_SUPPLY_CHARGE_TYPE_NONE;
> +		else if (state.chrg_status == STATUS_PRE_CHARGING)
> +			val->intval = POWER_SUPPLY_CHARGE_TYPE_STANDARD;
> +		else if (state.chrg_status == STATUS_FAST_CHARGING)
> +			val->intval = POWER_SUPPLY_CHARGE_TYPE_FAST;
> +		else /* unreachable */
> +			val->intval = POWER_SUPPLY_CHARGE_TYPE_UNKNOWN;
> +		break;
> +
>  	case POWER_SUPPLY_PROP_MANUFACTURER:
>  		val->strval = BQ25890_MANUFACTURER;
>  		break;
> @@ -670,6 +682,7 @@ static const enum power_supply_property bq25890_power_supply_props[] = {
>  	POWER_SUPPLY_PROP_MANUFACTURER,
>  	POWER_SUPPLY_PROP_MODEL_NAME,
>  	POWER_SUPPLY_PROP_STATUS,
> +	POWER_SUPPLY_PROP_CHARGE_TYPE,
>  	POWER_SUPPLY_PROP_ONLINE,
>  	POWER_SUPPLY_PROP_HEALTH,
>  	POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT,
> -- 
> 2.20.1
>
diff mbox series

Patch

diff --git a/drivers/power/supply/bq25890_charger.c b/drivers/power/supply/bq25890_charger.c
index e4368d01396a..ad0901fdceb6 100644
--- a/drivers/power/supply/bq25890_charger.c
+++ b/drivers/power/supply/bq25890_charger.c
@@ -429,6 +429,18 @@  static int bq25890_power_supply_get_property(struct power_supply *psy,
 
 		break;
 
+	case POWER_SUPPLY_PROP_CHARGE_TYPE:
+		if (!state.online || state.chrg_status == STATUS_NOT_CHARGING ||
+		    state.chrg_status == STATUS_TERMINATION_DONE)
+			val->intval = POWER_SUPPLY_CHARGE_TYPE_NONE;
+		else if (state.chrg_status == STATUS_PRE_CHARGING)
+			val->intval = POWER_SUPPLY_CHARGE_TYPE_STANDARD;
+		else if (state.chrg_status == STATUS_FAST_CHARGING)
+			val->intval = POWER_SUPPLY_CHARGE_TYPE_FAST;
+		else /* unreachable */
+			val->intval = POWER_SUPPLY_CHARGE_TYPE_UNKNOWN;
+		break;
+
 	case POWER_SUPPLY_PROP_MANUFACTURER:
 		val->strval = BQ25890_MANUFACTURER;
 		break;
@@ -670,6 +682,7 @@  static const enum power_supply_property bq25890_power_supply_props[] = {
 	POWER_SUPPLY_PROP_MANUFACTURER,
 	POWER_SUPPLY_PROP_MODEL_NAME,
 	POWER_SUPPLY_PROP_STATUS,
+	POWER_SUPPLY_PROP_CHARGE_TYPE,
 	POWER_SUPPLY_PROP_ONLINE,
 	POWER_SUPPLY_PROP_HEALTH,
 	POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT,