linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Thierry Reding <thierry.reding@gmail.com>
To: Stefan Agner <stefan@agner.ch>
Cc: Stephen Warren <swarren@wwwdotorg.org>,
	sameo@linux.intel.com, dev@lynxeye.de, mark.rutland@arm.com,
	linux-tegra@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/3] regulator: tps6586x: add voltage table for tps658643
Date: Thu, 28 Nov 2013 09:30:26 +0100	[thread overview]
Message-ID: <20131128083025.GB26502@ulmo.nvidia.com> (raw)
In-Reply-To: <93a0f4b1da2a54e58cee0756ab5f3e36@agner.ch>

[-- Attachment #1: Type: text/plain, Size: 3097 bytes --]

On Wed, Nov 27, 2013 at 10:56:10PM +0100, Stefan Agner wrote:
> Am 2013-11-27 18:09, schrieb Stephen Warren:
> > On 11/26/2013 04:45 PM, Stefan Agner wrote:
> >> Depending on version, the voltage table might be different. Add version
> >> compatibility to the regulator information in order to select correct
> >> voltage table.
> > 
> >> diff --git a/drivers/regulator/tps6586x-regulator.c b/drivers/regulator/tps6586x-regulator.c
> > 
> >> -static const unsigned int tps6586x_ldo4_voltages[] = {
> >> +static const unsigned int tps6586x_ldo4_sm2_voltages[] = {
> > 
> >> +static const unsigned int tps658643_sm2_voltages[] = {
> > 
> > What's the logic behind the "ldo4_sm2" v.s. "sm2" naming? Does it match
> > the data sheet in some way? If not, it might be better to name this
> > something like "tps6586x_ldo4_voltages" and "tps65863_ldo4_voltages".
> > 
> 
> This table is used for the TPS6586X (e.g. TPS658621A/D, maybe others)
> variant for the LDO_4 regulator. The same table applies for TPS658623
> for the SM2 regulator as well, so this naming should reflect that fact.
> 
> I could be some more verbose, e.g. tps6586x_ldo4_tps658623_sm2_voltages.
> The other solution would be to create two independent (but identically)
> voltage tables, but takes up more space...

If you only want that name for clarity, perhaps you could just add a
#define instead of duplicating the whole array. That way you'll be able
to reference the same array by a different name (for clarity).

> >> +/* Add version specific entries before any */
> >>  static struct tps6586x_regulator tps6586x_regulator[] = {
> >>  	TPS6586X_SYS_REGULATOR(),
> >> -	TPS6586X_LDO(LDO_0, "vinldo01", ldo0, SUPPLYV1, 5, 3, ENC, 0, END, 0),
> > ...
> >> +	TPS6586X_LDO(TPS6586X_ANY, LDO_0, "vinldo01", tps6586x_ldo0, SUPPLYV1,
> >> +			5, 3, ENC, 0, END, 0),
> > 
> > Rather than changing all the macros and table entries, wouldn't it be
> > much simpler to:
> > 
> > 1) Make tps6586x_regulator[] only contain all the common regulator
> > definitions.
> > 
> > 2) Add new version-specific tables for each version of regulator, so
> > tps6586x_other_regulator[] and tps65863_regulator[].
> > 
> > 3) Have probe() walk multiple tables of regulators, selecting which
> > tables to walk based on version.
> > 
> > That would result in a much smaller and less invasive diff.
> 
> Hm, sounds easier yes. Would also remove the need for correct ordering,
> which is a bit ugly. I will try that, lets see how this works out.

I was going to propose something similar, good that I read the whole
thread at first. My idea would have been to duplicate some of the tables
for simplicity and just have a tps6586x_regulator[] array with all those
that use the "default" set of regulators and separate tables for each
variant. That's obviously suboptimal because it wastes some space, but
it keeps the code simpler, since you'll just have to select a single
array and register that.

What Stephen proposes isn't really all that complex, though, so I'd
prefer that.

Thierry

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

  reply	other threads:[~2013-11-28  8:31 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-26 23:45 [PATCH 0/3] regulator: tps6586x: add version detection and voltage tables Stefan Agner
2013-11-26 23:45 ` [PATCH 1/3] mfd: tps6586x: add version detection Stefan Agner
2013-11-27 13:09   ` Lee Jones
2013-11-27 13:11     ` Lee Jones
2013-11-27 13:49     ` Stefan Agner
2013-11-27 13:55       ` Lee Jones
     [not found]         ` <cfb203a896eda67c106794d89e668d56@agner.ch>
     [not found]           ` <20131127143429.GN3296@lee--X1>
2013-11-27 14:36             ` Lee Jones
2013-11-27 15:26               ` Stefan Agner
2013-11-27 15:30                 ` Lee Jones
2013-11-27 15:52                   ` Stefan Agner
2013-11-27 16:14                     ` Lee Jones
2013-11-27 16:58   ` Stephen Warren
2013-11-27 21:44     ` Stefan Agner
2013-11-26 23:45 ` [PATCH 2/3] regulator: tps6586x: add voltage table for tps658643 Stefan Agner
2013-11-27 17:09   ` Stephen Warren
2013-11-27 21:56     ` Stefan Agner
2013-11-28  8:30       ` Thierry Reding [this message]
2013-11-26 23:45 ` [PATCH 3/3] ARM: tegra: set SM2 voltage correct Stefan Agner
2013-11-27  9:59   ` Lucas Stach
2013-11-27 11:05     ` Stefan Agner
2013-11-27 11:06       ` Lucas Stach
2013-11-27 17:13   ` Stephen Warren
2013-11-27 22:03     ` Stefan Agner
2013-11-28  9:49     ` Lucas Stach
2013-11-30 16:24       ` Stefan Agner
2013-11-28  8:13 ` [PATCH 0/3] regulator: tps6586x: add version detection and voltage tables Thierry Reding
2013-11-29  8:20   ` Kai Poggensee

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=20131128083025.GB26502@ulmo.nvidia.com \
    --to=thierry.reding@gmail.com \
    --cc=dev@lynxeye.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=sameo@linux.intel.com \
    --cc=stefan@agner.ch \
    --cc=swarren@wwwdotorg.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 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).