lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20210604122045.itugfiivy5il5bkz@earth.universe>
Date:   Fri, 4 Jun 2021 14:20:45 +0200
From:   Sebastian Reichel <sebastian.reichel@...labora.com>
To:     Hermann Lauer <Hermann.Lauer@....uni-heidelberg.de>
Cc:     Chen-Yu Tsai <wens@...e.org>, linux-pm@...r.kernel.org,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3] power: supply: axp20x_battery: implement writeable
 status to enable/disable battery charging

Hi,

On Wed, May 12, 2021 at 12:58:56PM +0200, Hermann Lauer wrote:
> Allow disabling and reenabling battery charging of an axp209 PMIC through a
> writable status property. With the current driver code charging is always on.
> 
> This works on the axp209 of Banana {Pi M1+,Pro} and should work on all AXP chips.
> 
> Signed-off-by: Hermann.Lauer@...-heidelberg.de
> ---

Thanks, queued.

-- Sebastian

> v2: add fallthrough and improve commit message (thanks to Maxime and ChenYu)
> v3: fix fallthrough usage
> 
> Thanks to ChenYu for the idea and greetings
>   Hermann
> 
>  drivers/power/supply/axp20x_battery.c | 17 +++++++++++++++--
>  1 file changed, 15 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/power/supply/axp20x_battery.c b/drivers/power/supply/axp20x_battery.c
> --- a/drivers/power/supply/axp20x_battery.c
> +++ b/drivers/power/supply/axp20x_battery.c
> @@ -40,6 +40,7 @@
>  #define AXP209_FG_PERCENT		GENMASK(6, 0)
>  #define AXP22X_FG_VALID			BIT(7)
>  
> +#define AXP20X_CHRG_CTRL1_ENABLE	BIT(7)
>  #define AXP20X_CHRG_CTRL1_TGT_VOLT	GENMASK(6, 5)
>  #define AXP20X_CHRG_CTRL1_TGT_4_1V	(0 << 5)
>  #define AXP20X_CHRG_CTRL1_TGT_4_15V	(1 << 5)
> @@ -468,7 +469,18 @@
>  	case POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX:
>  		return axp20x_set_max_constant_charge_current(axp20x_batt,
>  							      val->intval);
> +	case POWER_SUPPLY_PROP_STATUS:
> +		switch (val->intval) {
> +		case POWER_SUPPLY_STATUS_CHARGING:
> +			return regmap_update_bits(axp20x_batt->regmap, AXP20X_CHRG_CTRL1,
> +				AXP20X_CHRG_CTRL1_ENABLE, AXP20X_CHRG_CTRL1_ENABLE);
>  
> +		case POWER_SUPPLY_STATUS_DISCHARGING:
> +		case POWER_SUPPLY_STATUS_NOT_CHARGING:
> +			return regmap_update_bits(axp20x_batt->regmap, AXP20X_CHRG_CTRL1,
> +				AXP20X_CHRG_CTRL1_ENABLE, 0);
> +		}
> +		fallthrough;
>  	default:
>  		return -EINVAL;
>  	}
> @@ -491,7 +503,8 @@
>  static int axp20x_battery_prop_writeable(struct power_supply *psy,
>  					 enum power_supply_property psp)
>  {
> -	return psp == POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN ||
> +	return psp == POWER_SUPPLY_PROP_STATUS ||
> +	       psp == POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN ||
>  	       psp == POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN ||
>  	       psp == POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT ||
>  	       psp == POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX;

Download attachment "signature.asc" of type "application/pgp-signature" (834 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ