linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Axel Lin <axel.lin@gmail.com>
To: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: Rajendra Nayak <rnayak@ti.com>,
	Peter Ujfalusi <peter.ujfalusi@ti.com>,
	Liam Girdwood <lrg@ti.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH RFT 1/2] regulator: twl: Fix the formula to calculate vsel and voltage for twl6030ldo
Date: Mon, 09 Jul 2012 19:01:26 +0800	[thread overview]
Message-ID: <1341831686.4343.7.camel@phoenix> (raw)
In-Reply-To: <1341804151.14367.1.camel@phoenix>

於 一,2012-07-09 於 11:22 +0800,Axel Lin 提到:
> In twl6030ldo_set_voltage, current code use below formula to calculate vsel:
>         vsel = (min_uV/1000 - 1000)/100 + 1;
> This is worng because when min_uV is 1000000 uV, vsel is 1.
> It should be 0 in this case.
> Fix it by change the equation to: (This equation is common for linear mapping)
>         vsel = DIV_ROUND_UP(min_uV - rdev->desc->min_uV, rdev->desc->uV_step);
> 
> In twl6030ldo_get_voltage, current code use below formula to calculate voltage:
>         mV = 1000mv + 100mv * (vsel - 1)
> This is worng because when vsel is 0, mV is 900mV. Note the min_uV is 1000mV.
> Fix it by change the equation to: (This equation is common for linear mapping)
>         return rdev->desc->min_uV + vsel * rdev->desc->uV_step;

While I'm thinking I need to rework this patch so that it doesn't use
rdev->desc->min_uV and rdev->desc->uV_step and then can be applied
to current Linus' tree.

But while I am tracking back to commit 3e3d3be79c
Author: Rajendra Nayak <rnayak@ti.com>
Date:   Thu Apr 22 14:18:32 2010 +0530

    twl6030: regulator: Remove vsel tables and use formula for
calculation
    
    All twl6030 regulators can be programmed from 1.0v to 3.3v
    with 100mV steps.
    The below formula can be used to calculate the vsel values
    to be programmed in the VREG_VOLTAGE registers.
    
    Voltage(in mV) = 1000mv + 100mv * (vsel - 1)
    
    Ex: if vsel = 0x9, mV = 1000 + 100 * (9 -1) = 1800mV.
    
    This patch removes all existing VSEL tables for twl6030 adjustable
    regulators and just uses the formula directly for vsel calculations
    after verifing they fall in the allowed range.
    
    Signed-off-by: Rajendra Nayak <rnayak@ti.com>

I found a problem that before commit 3e3d3be79c, the voltage tables were
not linear mapping. So why we can convert these voltage mapping table to
Voltage(in mV) = 1000mv + 100mv * (vsel - 1)?

Did I miss something?

Regards,
Axel



  parent reply	other threads:[~2012-07-09 11:01 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-09  3:22 [PATCH RFT 1/2] regulator: twl: Fix the formula to calculate vsel and voltage for twl6030ldo Axel Lin
2012-07-09  3:26 ` [RESEND][PATCH RFT 2/2] regulator: twl: Convert twl6030ldo_ops to [get|set]_voltage_sel Axel Lin
2012-07-09 11:01 ` Axel Lin [this message]
2012-07-15 21:00   ` [PATCH RFT 1/2] regulator: twl: Fix the formula to calculate vsel and voltage for twl6030ldo Mark Brown
2012-07-16  9:11   ` Rajendra Nayak
2012-07-16 10:20     ` Axel Lin
2012-07-15 21:05 ` 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=1341831686.4343.7.camel@phoenix \
    --to=axel.lin@gmail.com \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lrg@ti.com \
    --cc=peter.ujfalusi@ti.com \
    --cc=rnayak@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).