All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Brown <broonie@opensource.wolfsonmicro.com>
To: "AnilKumar, Chimata" <anilkumar@ti.com>
Cc: "sameo@linux.intel.com" <sameo@linux.intel.com>,
	"Girdwood, Liam" <lrg@ti.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
	"Nori, Sekhar" <nsekhar@ti.com>
Subject: Re: [PATCH 2/2] TPS65217: Add tps65217 regulator driver
Date: Wed, 28 Dec 2011 11:36:02 +0000	[thread overview]
Message-ID: <20111228113602.GC24405@opensource.wolfsonmicro.com> (raw)
In-Reply-To: <331ABD5ECB02734CA317220B2BBEABC103ECAB@DBDE01.ent.ti.com>

On Wed, Dec 28, 2011 at 09:14:31AM +0000, AnilKumar, Chimata wrote:
> On Fri, Dec 23, 2011 at 16:45:39, Mark Brown wrote:
> > On Fri, Dec 23, 2011 at 10:51:36AM +0530, AnilKumar Ch wrote:

> > > +/* Supported voltage values for regulators (in milliVolts) */
> > > +static const u16 VDCDC1_VSEL_table[] = {
> > > +	900, 925, 950, 975,
> > > +	1000, 1025, 1050, 1075,
> > > +	1100, 1125, 1150, 1175,
> > > +	1200, 1225, 1250, 1275,
> > > +	1300, 1325, 1350, 1375,
> > > +	1400, 1425, 1450, 1475,
> > > +	1500, 1550, 1600, 1650,
> > > +	1700, 1750, 1800,
> > > +};

> > You should replace all these vsel tables with calculations in the code,
> > they're all regular steps and some of the tables are getting a bit
> > large.

> TPS65217 don't have any formula for computing the next voltage value. In
> entire voltage scale range there is an inconsistency in the step size.

if (voltage < 1500)
	...
else
	...

> > > +	for (vsel = 0; vsel < tps->info[dcdc]->table_len; vsel++) {
> > > +		int mV = tps->info[dcdc]->table[vsel];
> > > +		int uV = mV * 1000;
> > > +
> > > +		/* Break at the first in-range value */
> > > +		if (min_uV <= uV && uV <= max_uV)
> > > +			break;
> > > +	}

> > If you are going to use a table you should implement set_voltage_sel()
> > which will do the table walk for you, but like I say you should just be
> > using a calculation.

> As per my understanding set_voltage_sel() is used to set a voltage if we
> know the selector. But here it's different case, based on the min and
> max voltages we have to identify the selector. For identifying the selector
> we have to walk through the table. I did not find any helper functions
> for walking through the table.

No, that would be totally unusable by anything.  If you implement _sel
the core will do the mapping into a selector for you; if you take the
time to look at the code you'll see that it's implementing exactly the
above loop.

  reply	other threads:[~2011-12-28 11:36 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1324617696-14350-1-git-send-email-anilkumar@ti.com>
2011-12-23 11:15 ` [PATCH 2/2] TPS65217: Add tps65217 regulator driver Mark Brown
2011-12-28  9:14   ` AnilKumar, Chimata
2011-12-28 11:36     ` Mark Brown [this message]
2011-12-28 14:36       ` AnilKumar, Chimata

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=20111228113602.GC24405@opensource.wolfsonmicro.com \
    --to=broonie@opensource.wolfsonmicro.com \
    --cc=anilkumar@ti.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=lrg@ti.com \
    --cc=nsekhar@ti.com \
    --cc=sameo@linux.intel.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.