All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lars-Peter Clausen <lars@metafoo.de>
To: Axel Lin <axel.lin@gmail.com>
Cc: linux-kernel@vger.kernel.org,
	Balaji Rao <balajirrao@openmoko.org>, Liam Girdwood <lrg@ti.com>,
	Mark Brown <broonie@opensource.wolfsonmicro.com>
Subject: Re: [PATCH RFT 1/2] regulator: pcf50633: Don't write to reserved bits of AUTO output voltage select register
Date: Fri, 16 Mar 2012 14:59:08 +0100	[thread overview]
Message-ID: <4F63472C.5050102@metafoo.de> (raw)
In-Reply-To: <1331904943.2891.1.camel@phoenix>

On 03/16/2012 02:35 PM, Axel Lin wrote:
> The datasheet says 00000000 to 00101110 are reserved, and the min value of the
> voltage setting is 1.8 V.
> Thus don't write 0 to AUTO output voltage select register (address 1Ah).
> 
> Table 50. AUTOOUT - AUTO output voltage select register (address 1Ah) bit description[1]
> Bit Symbol Access Description
> 7:0 auto_out R/W VO(prog) = 0.625 + auto_out × 0.025 V
> eg. 00000000 to 00101110: reserved
> 00101111: 1.8 V (min)
> 01010011: 2.7 V
> 01101010: 3.275 V
> 01101011: 3.300 V
> 01101100: 3.325 V
> 01111111 : 3.800 V (max)
> ..... .....
> 11111110 : 3.800 V
> 11111111 : 3.800 V
> 
> This patch also fixes a bug in pcf50633_regulator_list_voltage.
> It is wrong to do "index += 0x2f" for PCF50633_REGULATOR_AUTO in
> pcf50633_regulator_list_voltage. The purpose of adding 0x2f to index is because
> current code return 0 in auto_voltage_bits when millivolts < 1800.
> For millivolts > 1800, adding 0x2f to index is wrong.
> 
> We should handle this by
> return -EINVAL if the selector is in the reserved range of AUTOOUT.
> 
> Signed-off-by: Axel Lin <axel.lin@gmail.com>
> ---
>  drivers/regulator/pcf50633-regulator.c |   23 +++++------------------
>  1 files changed, 5 insertions(+), 18 deletions(-)
> 
> diff --git a/drivers/regulator/pcf50633-regulator.c b/drivers/regulator/pcf50633-regulator.c
> index 6db46c6..3cefc63 100644
> --- a/drivers/regulator/pcf50633-regulator.c
> +++ b/drivers/regulator/pcf50633-regulator.c
> @@ -52,7 +52,7 @@ static const u8 pcf50633_regulator_registers[PCF50633_NUM_REGULATORS] = {
>[...]
>  
> @@ -161,6 +158,9 @@ static int pcf50633_regulator_voltage_value(enum pcf50633_regulator_id id,
>  
>  	switch (id) {
>  	case PCF50633_REGULATOR_AUTO:
> +		/* AUTOOUT: 00000000 to 00101110 are reserved */
> +		if (bits < 0x2f)
> +			return -EINVAL;
>  		millivolts = auto_voltage_value(bits);
>  		break;
>  	case PCF50633_REGULATOR_DOWN1:
> @@ -208,20 +208,7 @@ static int pcf50633_regulator_get_voltage(struct regulator_dev *rdev)
>  static int pcf50633_regulator_list_voltage(struct regulator_dev *rdev,
>  						unsigned int index)
>  {
> -	struct pcf50633 *pcf;
> -	int regulator_id;
> -
> -	pcf = rdev_get_drvdata(rdev);
> -
> -	regulator_id = rdev_get_id(rdev);
> -
> -	switch (regulator_id) {
> -	case PCF50633_REGULATOR_AUTO:
> -		index += 0x2f;
> -		break;
> -	default:
> -		break;
> -	}

Does this make sense? Now we return -EINVAL if index is less than 0x2f



  parent reply	other threads:[~2012-03-16 13:56 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-16 13:35 [PATCH RFT 1/2] regulator: pcf50633: Don't write to reserved bits of AUTO output voltage select register Axel Lin
2012-03-16 13:36 ` [PATCH RFT 2/2] regulator: Convert pcf50633 to get_voltage_sel Axel Lin
2012-03-16 13:59 ` Lars-Peter Clausen [this message]
2012-03-16 23:55   ` [PATCH RFT 1/2] regulator: pcf50633: Don't write to reserved bits of AUTO output voltage select register Axel Lin

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=4F63472C.5050102@metafoo.de \
    --to=lars@metafoo.de \
    --cc=axel.lin@gmail.com \
    --cc=balajirrao@openmoko.org \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lrg@ti.com \
    /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.