From: Lars-Peter Clausen <lars@metafoo.de>
To: Axel Lin <axel.lin@gmail.com>
Cc: linux-kernel@vger.kernel.org, Liam Girdwood <lrg@ti.com>,
Mark Brown <broonie@opensource.wolfsonmicro.com>
Subject: Re: [PATCH v3 1/2] regulator: pcf50633: Don't write to reserved bits of AUTO output voltage select register
Date: Mon, 19 Mar 2012 10:08:44 +0100 [thread overview]
Message-ID: <4F66F79C.3070501@metafoo.de> (raw)
In-Reply-To: <1332125724.17246.1.camel@phoenix>
On 03/19/2012 03:55 AM, 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:
> In regulator core _regulator_do_set_voltage function:
>
> if (rdev->desc->ops->set_voltage) {
> ret = rdev->desc->ops->set_voltage(rdev, min_uV, max_uV,
> &selector);
>
> if (rdev->desc->ops->list_voltage)
> selector = rdev->desc->ops->list_voltage(rdev,
> selector);
> else
> selector = -1;
>
> The list_voltage call here takes the selector got from set_voltage callback.
> Thus adding 0x2f to the index in pcf50633_regulator_list_voltage looks wrong to me.
>
> e.g.
> If min_uV < 1.8V, pcf50633_regulator_set_voltage sets 0 to selector.
> For this case, adding 0x2f to the index in pcf50633_regulator_list_voltage is correct.
> However, if min_uV == 1.8V, pcf50633_regulator_set_voltage sets 0x2f to selector.
> Adding 0x2f to the index in pcf50633_regulator_list_voltage in this case is wrong.
>
> What this patch does is:
> The minimal voltage setting for AUTOOUT is 0x2f.
> Thus for the case min_uV < 1.8, set the voltage setting to 1.8V by writting
> 0x2f to AUTOOUT register and set selector = 0x2f.
> So we don't write the rserved range to AUTOOUT register.
> Which means the possible range of AUTOOUT register value is 0x2f ~ 0xff.
>
> We have no problem in regulator_get_voltage.
> Since we won't write 0~0x2e to AUTOOUT register, we have no problem converting
> the bits we read to voltage. The equation in auto_voltage_value works fine.
>
> For list_voltage, we need to take into account the case selector is 0 ~ 0x2e
> because the regulator core assumes the selector is starting from 0.
> This patch returns 0 for the cases selector is 0 ~ 0x2e, which means
> "this selector code can't be used on this system".
>
> The regulator core iterates from 0 to n_voltages to find the small voltage
> in the specific range. The n_voltages settings for AUTOOUT should be 128 now,
> including the reserved range of AUTOOUT.
>
> Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
next prev parent reply other threads:[~2012-03-19 9:06 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-19 2:55 [PATCH v3 1/2] regulator: pcf50633: Don't write to reserved bits of AUTO output voltage select register Axel Lin
2012-03-19 2:57 ` [PATCH v3 2/2] regulator: Convert pcf50633 to get_voltage_sel Axel Lin
2012-03-19 9:12 ` Lars-Peter Clausen
2012-03-19 9:08 ` Lars-Peter Clausen [this message]
2012-03-19 14:23 ` [PATCH v3 1/2] regulator: pcf50633: Don't write to reserved bits of AUTO output voltage select register Mark Brown
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=4F66F79C.3070501@metafoo.de \
--to=lars@metafoo.de \
--cc=axel.lin@gmail.com \
--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.