public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Tim Bird <tim.bird@sonymobile.com>
To: Mark Brown <broonie@kernel.org>
Cc: "lgirdwood@gmail.com" <lgirdwood@gmail.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"\"Andersson, Björn\"" <Bjorn.Andersson@sonymobile.com>
Subject: Re: [PATCH] regulator: Support different config and dev of_nodes in regulator_register
Date: Thu, 5 Feb 2015 10:37:12 -0800	[thread overview]
Message-ID: <54D3B858.9060103@sonymobile.com> (raw)
In-Reply-To: <20150205174353.GA21293@sirena.org.uk>



On 02/05/2015 09:43 AM, Mark Brown wrote:
> On Thu, Feb 05, 2015 at 09:33:31AM -0800, Tim Bird wrote:
>> On 02/04/2015 05:59 PM, Mark Brown wrote:
> 
>>> This is explicitly not supported; such bindings are invariably attempts
>>> to encode the Linux MFD structure into the device tree (which isn't a
>>> wonderful idea as the way we split things into subsystems can and does
>>> change) or...
> 
>> Sorry - what is the "Linux MFD structure"?
> 
> The way we split things up into subsystems via drivers/mfd.  Our set of
> subsystems is neither fixed nor authorative.

I'm not doing anything in drivers/mfd?  Should I be?
The charger driver is currently in drivers/power, but should it be
moved to drivers/mfd if it's going to expose regulators as
well as power supplies?  I'm sorry, but I'm not following
your point here.  I associated this regulator with the charger
driver because that's where the hardware for it is.  I'm not really
familiar with the complete driver sub-system layout of Linux.
This was not a (conscious) attempt to encode anything about Linux
into the device tree.  I'm just trying to get the dang supply
to hook up to the regulator node.

> 
>> Well, the above DT node is not complete.  Let me give some more
>> context.  I eventually want to have the charger driver support 2
>> regulators - one for the OTG vbus output (shown above) and one
>> for a boost hardware device, which controls voltage for this and
>> other parts of the system.  These are both for IP blocks that are
>> in the register range of this charger hardware (and hence belong, IMHO
>> in this driver).  I can easily move the otg-supply to the charger DT node,
>> as you request, but what do I do about other regulator attributes,
>> if I need to specify them for both the chg_otg and boost regulators
>> provided by this driver? How would this be handled?  I can't put them
>> all in the charger DT node.
> 
> This just sounds like a standard multi-regulator PMIC - usually the
> nodes for all the regulators end up getting stuffed in a node (typically
> called regulators) which the core can then interate over for you.  I'm
> just not seeing what's unusual about this device, sorry.

Thanks for helping me out here...  I apologize if these are newbie
questions as I haven't worked with regulators before.

So you're saying I should have a "regulators" child node of the charger
node, and then define the chg_otg and boost regulators under that, each
with it's own compatible string, so that the DT code can instantiate
all the proper device nodes, of_nodes, regulator attributes, etc.
Or is this instantiation something I do manually in the charger probe
routine?  (That's what I'm doing now, but open coding each regulator
individually.)

How does the core know to iterate over regulators?  Is this something
automatic in the DT code, or something I have to trigger from the
charger probe routine?

As an aside, will each regulator have to have it's own probe routine,
and be capable of probe-deferring?  That is, if I separate the charger
probe from the regulator probes, it seems like I'll have to worry
about probe ordering, as well as manually establishing the linkage
between all these device nodes somehow during probing so the charger
enable/disable routines will be able to get access to the charger
register space.

Is there any way, if I'm open-coding a regulator, to just specify the
supply after it's instantiated?

Can you recommend a driver to look at that does (properly) what
you're describing?

Thanks. (And thanks for your patience),
 -- Tim


  reply	other threads:[~2015-02-05 18:37 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-04 23:19 [PATCH] regulator: Support different config and dev of_nodes in regulator_register Tim Bird
2015-02-05  1:59 ` Mark Brown
2015-02-05 17:33   ` Tim Bird
2015-02-05 17:43     ` Mark Brown
2015-02-05 18:37       ` Tim Bird [this message]
2015-02-05 19:27         ` Mark Brown
2015-02-05 22:08           ` Bjorn Andersson
2015-02-06  0:32             ` Mark Brown
2015-02-06  0:52               ` Bjorn Andersson
2015-02-06 11:49                 ` Mark Brown
2015-02-06 19:56                   ` Tim Bird
2015-02-11 17:21                     ` Tim Bird
2015-02-12  2:32                       ` 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=54D3B858.9060103@sonymobile.com \
    --to=tim.bird@sonymobile.com \
    --cc=Bjorn.Andersson@sonymobile.com \
    --cc=broonie@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.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