All of lore.kernel.org
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <k.kozlowski@samsung.com>
To: Andreas Dannenberg <dannenberg@ti.com>,
	Sebastian Reichel <sre@kernel.org>,
	Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Laurentiu Palcu <laurentiu.palcu@intel.com>
Cc: Ramakrishna Pallala <ramakrishna.pallala@intel.com>,
	linux-pm@vger.kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v4 07/10] power: bq24257: Add input DPM voltage threshold setting support
Date: Wed, 16 Sep 2015 15:06:04 +0900	[thread overview]
Message-ID: <55F906CC.8090609@samsung.com> (raw)
In-Reply-To: <1442339914-25843-8-git-send-email-dannenberg@ti.com>

On 16.09.2015 02:58, Andreas Dannenberg wrote:
> A new optional device property called "ti,in-dpm-voltage" is introduced
> to allow configuring the input voltage threshold for the devices'
> dynamic power path management (DPM) feature. In short, it can be used to
> prevent the input voltage from dropping below a certain value as current
> is drawn to charge the battery or supply the system.
> 
> Signed-off-by: Andreas Dannenberg <dannenberg@ti.com>
> ---
>  drivers/power/bq24257_charger.c | 44 +++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 44 insertions(+)
> 
> diff --git a/drivers/power/bq24257_charger.c b/drivers/power/bq24257_charger.c
> index 47af858..84a8945 100644
> --- a/drivers/power/bq24257_charger.c
> +++ b/drivers/power/bq24257_charger.c
> @@ -76,6 +76,7 @@ struct bq24257_init_data {
>  	u8 iterm;	/* termination current */
>  	u8 in_ilimit;	/* input current limit */
>  	u8 vovp;	/* over voltage protection voltage */
> +	u8 vindpm;	/* VDMP input threshold voltage */
>  };
>  
>  struct bq24257_state {
> @@ -206,6 +207,13 @@ static const u32 bq24257_vovp_map[] = {
>  
>  #define BQ24257_VOVP_MAP_SIZE		ARRAY_SIZE(bq24257_vovp_map)
>  
> +static const u32 bq24257_vindpm_map[] = {
> +	4200000, 4280000, 4360000, 4440000, 4520000, 4600000, 4680000,
> +	4760000
> +};
> +
> +#define BQ24257_VINDPM_MAP_SIZE		ARRAY_SIZE(bq24257_vindpm_map)
> +
>  static int bq24257_field_read(struct bq24257_device *bq,
>  			      enum bq24257_fields field_id)
>  {
> @@ -432,6 +440,17 @@ enum bq24257_vovp {
>  	VOVP_10500
>  };
>  
> +enum bq24257_vindpm {
> +	VINDPM_4200,
> +	VINDPM_4280,
> +	VINDPM_4360,
> +	VINDPM_4440,
> +	VINDPM_4520,
> +	VINDPM_4600,
> +	VINDPM_4680,
> +	VINDPM_4760
> +};

Same as patch 6/10... but now see the use case - to choose default value
not by index of array but from this enum.

I see the idea behind so skip that comment from 6/10.

> +
>  enum bq24257_port_type {
>  	PORT_TYPE_DCP,		/* Dedicated Charging Port */
>  	PORT_TYPE_CDP,		/* Charging Downstream Port */
> @@ -615,6 +634,7 @@ static int bq24257_hw_init(struct bq24257_device *bq)
>  		{F_VBAT, bq->init_data.vbat},
>  		{F_ITERM, bq->init_data.iterm},
>  		{F_VOVP, bq->init_data.vovp},
> +		{F_VINDPM, bq->init_data.vindpm},
>  	};
>  
>  	/*
> @@ -648,6 +668,7 @@ static int bq24257_hw_init(struct bq24257_device *bq)
>  		/* program fixed input current limit */
>  		ret = bq24257_field_write(bq, F_IILIMIT,
>  					  bq->init_data.in_ilimit);
> +

Not part of this patch. It confuses the reviewer of patch. If you need
cleanups, make them separate.

>  		if (ret < 0)
>  			return ret;
>  	} else if (!state.power_good)
> @@ -695,10 +716,23 @@ static ssize_t bq24257_show_ovp_voltage(struct device *dev,
>  			 bq24257_vovp_map[bq->init_data.vovp]);
>  }
>  
> +static ssize_t bq24257_show_in_dpm_voltage(struct device *dev,
> +					   struct device_attribute *attr,
> +					   char *buf)
> +{
> +	struct power_supply *psy = dev_get_drvdata(dev);
> +	struct bq24257_device *bq = power_supply_get_drvdata(psy);
> +
> +	return scnprintf(buf, PAGE_SIZE, "%d\n",
> +			 bq24257_vindpm_map[bq->init_data.vindpm]);

Same as patch 6/10.

Best regards,
Krzysztof

> +}
> +
>  static DEVICE_ATTR(ovp_voltage, S_IRUGO, bq24257_show_ovp_voltage, NULL);
> +static DEVICE_ATTR(in_dpm_voltage, S_IRUGO, bq24257_show_in_dpm_voltage, NULL);
>  
>  static struct attribute *bq24257_charger_attr[] = {
>  	&dev_attr_ovp_voltage.attr,
> +	&dev_attr_in_dpm_voltage.attr,
>  	NULL,
>  };
>  
> @@ -801,6 +835,16 @@ static int bq24257_fw_probe(struct bq24257_device *bq)
>  						      bq24257_vovp_map,
>  						      BQ24257_VOVP_MAP_SIZE);
>  
> +	ret = device_property_read_u32(bq->dev, "ti,in-dpm-voltage",
> +				       &property);
> +	if (ret < 0)
> +		bq->init_data.vindpm = VINDPM_4360;
> +	else
> +		bq->init_data.vindpm =
> +				bq24257_find_idx(property,
> +						 bq24257_vindpm_map,
> +						 BQ24257_VINDPM_MAP_SIZE);
> +
>  	return 0;
>  }
>  
> 


  reply	other threads:[~2015-09-16  6:06 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-15 17:58 [PATCH v4 00/10] power: bq24257: Add support for bq24250/bq24251 Andreas Dannenberg
2015-09-15 17:58 ` [PATCH v4 02/10] power: bq24257: Add basic " Andreas Dannenberg
2015-09-16  0:19   ` Krzysztof Kozlowski
2015-09-16 19:02     ` Andreas Dannenberg
2015-09-15 17:58 ` [PATCH v4 03/10] power: bq24257: Add bit definition for temp sense enable Andreas Dannenberg
2015-09-15 17:58 ` [PATCH v4 04/10] power: bq24257: Allow manual setting of input current limit Andreas Dannenberg
2015-09-16  0:41   ` Krzysztof Kozlowski
2015-09-16 19:23     ` Andreas Dannenberg
2015-09-17  0:10       ` Krzysztof Kozlowski
     [not found] ` <1442339914-25843-1-git-send-email-dannenberg-l0cyMroinI0@public.gmane.org>
2015-09-15 17:58   ` [PATCH v4 01/10] dt: power: bq24257-charger: Cover additional devices Andreas Dannenberg
2015-09-16  0:10     ` Krzysztof Kozlowski
2015-09-15 17:58   ` [PATCH v4 05/10] power: bq24257: Add SW-based approach for Power Good determination Andreas Dannenberg
2015-09-16  5:41     ` Krzysztof Kozlowski
2015-09-18 21:28       ` Andreas Dannenberg
2015-09-15 17:58 ` [PATCH v4 06/10] power: bq24257: Add over voltage protection setting support Andreas Dannenberg
2015-09-16  5:55   ` Krzysztof Kozlowski
2015-09-16 19:34     ` Andreas Dannenberg
2015-09-15 17:58 ` [PATCH v4 07/10] power: bq24257: Add input DPM voltage threshold " Andreas Dannenberg
2015-09-16  6:06   ` Krzysztof Kozlowski [this message]
2015-09-16 19:40     ` Andreas Dannenberg
2015-09-15 17:58 ` [PATCH v4 08/10] power: bq24257: Allow input current limit sysfs access Andreas Dannenberg
2015-09-16  6:31   ` Krzysztof Kozlowski
2015-09-16 19:45     ` Andreas Dannenberg
2015-09-15 17:58 ` [PATCH v4 09/10] power: bq24257: Add various device-specific sysfs properties Andreas Dannenberg
2015-09-16  8:10   ` Krzysztof Kozlowski
2015-09-16 19:54     ` Andreas Dannenberg
2015-09-18 19:08       ` Andreas Dannenberg
2015-09-15 17:58 ` [PATCH v4 10/10] power: bq24257: Add platform data based initialization Andreas Dannenberg
2015-09-16  8:31   ` Krzysztof Kozlowski
2015-09-16 20:11     ` Andreas Dannenberg
2015-09-17  0:16       ` Krzysztof Kozlowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55F906CC.8090609@samsung.com \
    --to=k.kozlowski@samsung.com \
    --cc=dannenberg@ti.com \
    --cc=dbaryshkov@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dwmw2@infradead.org \
    --cc=laurentiu.palcu@intel.com \
    --cc=linux-pm@vger.kernel.org \
    --cc=ramakrishna.pallala@intel.com \
    --cc=sre@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.