mbox series

[0/5] Add new features for SC27XX fuel gauge driver

Message ID cover.1542185618.git.baolin.wang@linaro.org
Headers show
Series Add new features for SC27XX fuel gauge driver | expand

Message

(Exiting) Baolin Wang Nov. 14, 2018, 9:07 a.m. UTC
This patch set adds some new features for SC27XX fuel gauge driver.

1. Read calibration data from eFuse device to calibrate fuel gauge.
2. Add low voltage alarm to adjust the battery capacity in lower
voltage stage.
3. Add power management interfaces
4. Save last optimized battery capacity to be used as the initial
battery capacity if system is not first power-on.

Baolin Wang (2):
  dt-bindings: power: supply: Add nvmem properties to calibrate FGU
  power: supply: sc27xx: Add fuel gauge calibration

Yuanjiang Yu (3):
  power: supply: sc27xx: Add fuel gauge low voltage alarm
  power: supply: sc27xx: Add suspend/resume interfaces
  power: supply: sc27xx: Save last battery capacity

 .../devicetree/bindings/power/supply/sc27xx-fg.txt |    4 +
 drivers/power/supply/sc27xx_fuel_gauge.c           |  453 +++++++++++++++++++-
 2 files changed, 444 insertions(+), 13 deletions(-)

-- 
1.7.9.5

Comments

Pavel Machek Nov. 25, 2018, 9:48 p.m. UTC | #1
Hi!

> Our charger manager can optimize the battery capacity periodically, so

> we can save last battery capacity into registers. Then next system

> power-on, we can read the last saved battery capacity as the initial

> battery capacity, which can make the battery capacity more accurate.

> 

> Signed-off-by: Yuanjiang Yu <yuanjiang.yu@unisoc.com>

> Signed-off-by: Baolin Wang <baolin.wang@linaro.org>

> ---

>  drivers/power/supply/sc27xx_fuel_gauge.c |  143 +++++++++++++++++++++++++++++-

>  1 file changed, 142 insertions(+), 1 deletion(-)

> 


> +static int sc27xx_fgu_set_property(struct power_supply *psy,

> +				   enum power_supply_property psp,

> +				   const union power_supply_propval *val)

> +{

> +	struct sc27xx_fgu_data *data = power_supply_get_drvdata(psy);

> +	int ret;

> +

> +	mutex_lock(&data->lock);

> +

> +	switch (psp) {

> +	case POWER_SUPPLY_PROP_CAPACITY:

> +		ret = sc27xx_fgu_save_last_cap(data, val->intval);

> +		if (ret < 0)

> +			dev_err(data->dev, "failed to save battery capacity\n");

> +		break;

> +

> +	default:

> +		ret = -EINVAL;

> +	}

> +

> +	mutex_unlock(&data->lock);

> +	return ret;


if (psp != ....) return -EINVAL; And you can do that outside
lock...

Ok, OTOH this is easier to extend in future. Do you expect more
writable properties?

> +static int sc27xx_fgu_property_is_writeable(struct power_supply *psy,

> +					    enum power_supply_property psp)

> +{

> +	switch (psp) {

> +	case POWER_SUPPLY_PROP_CAPACITY:

> +		return 1;

> +

> +	default:

> +		return 0;

> +	}

> +}



Same here. return psp == POWER_SUPPLY_PROP_CAPACITY; really looks
strange written like this.

Best regards,
									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Rob Herring Dec. 4, 2018, 9:09 p.m. UTC | #2
On Wed, 14 Nov 2018 17:07:04 +0800, Baolin Wang wrote:
> Add nvmem properties to calibrate FGU from eFuse controller.

> 

> Signed-off-by: Baolin Wang <baolin.wang@linaro.org>

> ---

>  .../devicetree/bindings/power/supply/sc27xx-fg.txt |    4 ++++

>  1 file changed, 4 insertions(+)

> 


Reviewed-by: Rob Herring <robh@kernel.org>
Sebastian Reichel Dec. 6, 2018, 12:10 a.m. UTC | #3
Hi,

On Wed, Nov 14, 2018 at 05:07:03PM +0800, Baolin Wang wrote:
> This patch set adds some new features for SC27XX fuel gauge driver.

> 

> 1. Read calibration data from eFuse device to calibrate fuel gauge.

> 2. Add low voltage alarm to adjust the battery capacity in lower

> voltage stage.

> 3. Add power management interfaces

> 4. Save last optimized battery capacity to be used as the initial

> battery capacity if system is not first power-on.

> 

> Baolin Wang (2):

>   dt-bindings: power: supply: Add nvmem properties to calibrate FGU

>   power: supply: sc27xx: Add fuel gauge calibration

> 

> Yuanjiang Yu (3):

>   power: supply: sc27xx: Add fuel gauge low voltage alarm

>   power: supply: sc27xx: Add suspend/resume interfaces

>   power: supply: sc27xx: Save last battery capacity

> 

>  .../devicetree/bindings/power/supply/sc27xx-fg.txt |    4 +

>  drivers/power/supply/sc27xx_fuel_gauge.c           |  453 +++++++++++++++++++-

>  2 files changed, 444 insertions(+), 13 deletions(-)


I applied patches 1-4 and skipped patch 5 due to pending changes.

-- Sebastian
(Exiting) Baolin Wang Dec. 6, 2018, 2:57 a.m. UTC | #4
Hi Sebastian,

On Thu, 6 Dec 2018 at 08:10, Sebastian Reichel
<sebastian.reichel@collabora.com> wrote:
>

> Hi,

>

> On Wed, Nov 14, 2018 at 05:07:03PM +0800, Baolin Wang wrote:

> > This patch set adds some new features for SC27XX fuel gauge driver.

> >

> > 1. Read calibration data from eFuse device to calibrate fuel gauge.

> > 2. Add low voltage alarm to adjust the battery capacity in lower

> > voltage stage.

> > 3. Add power management interfaces

> > 4. Save last optimized battery capacity to be used as the initial

> > battery capacity if system is not first power-on.

> >

> > Baolin Wang (2):

> >   dt-bindings: power: supply: Add nvmem properties to calibrate FGU

> >   power: supply: sc27xx: Add fuel gauge calibration

> >

> > Yuanjiang Yu (3):

> >   power: supply: sc27xx: Add fuel gauge low voltage alarm

> >   power: supply: sc27xx: Add suspend/resume interfaces

> >   power: supply: sc27xx: Save last battery capacity

> >

> >  .../devicetree/bindings/power/supply/sc27xx-fg.txt |    4 +

> >  drivers/power/supply/sc27xx_fuel_gauge.c           |  453 +++++++++++++++++++-

> >  2 files changed, 444 insertions(+), 13 deletions(-)

>

> I applied patches 1-4 and skipped patch 5 due to pending changes.


I will send new version with addressing comments in patch 5. Thanks.

-- 
Baolin Wang
Best Regards