linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: andy@warmcat.com (Andy Green)
To: linux-arm-kernel@lists.infradead.org
Subject: Device probe order (i2c regulator vs. platform device)
Date: Wed, 24 Mar 2010 09:19:58 +0000	[thread overview]
Message-ID: <4BA9D93E.50705@warmcat.com> (raw)
In-Reply-To: <E4D3F24EA6C9E54F817833EAE0D912AC09C80E05C7@bssrvexch01.BS.local>

On 03/24/10 07:10, Somebody in the thread at some point said:
> Hello,
>
> I've encountered a problem with regulator framework and the device
> probe order. In my system there is a pmic chip connected thought i2c
> bus and a platform device (let's call it A) that depends on the
> regulator device (for proper probing pmic chip must enable voltage to
> the device A). In the current configuration the i2c driver is also a
> platform device. However during the system initialization the device
> A is probed before the i2c driver would register pmic chip and its
> regulators.
>
> How I can delay probing the device A to the moment when the regulator
> device will be available in the system? Is there any generic was of
> changing the device probe order?

Delaying registering devices is only half the problem.  You must also 
correct these device's parent dev to be the PMU's.

Otherwise your suspend and resume ordering turns to crap and you will 
immediately be in Hell, for example the PMIC may go down taking away 
power from the SD Card before you finished talking to it.

With correct device parent ordering, then children are guaranteed to be 
suspended before the parent, it means the PMIC won't go down until all 
these guys registered as dependent on it have nicely gone down.

What I have been doing is adding a platform callback in the pmic 
platform_data which is called at the end of pmic probe.

In the machine file, in the callback I then register everything that 
relies on PMIC power arrangements, and correct the device parent at to 
be the PMIC at the same time.

It would be very good is this was regularized somehow into a standard 
API because it's absolutely a requirement for many boards that their 
devices ARE dependent on PMU as a parent.

-Andy

  reply	other threads:[~2010-03-24  9:19 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-24  7:10 Device probe order (i2c regulator vs. platform device) Marek Szyprowski
2010-03-24  9:19 ` Andy Green [this message]
2010-03-24 11:11   ` Marek Szyprowski
2010-03-24 12:50     ` Andy Green
2010-03-24 13:11       ` Mark Brown
2010-03-24 13:22         ` Andy Green
2010-03-24 11:32   ` Mark Brown
2010-03-24 12:11     ` Andy Green
2010-03-24 14:01       ` Mark Brown
2010-03-24 14:38         ` Andy Green
2010-03-25 10:22           ` Mark Brown
2010-03-25 10:52             ` Andy Green
2010-03-24 10:21 ` Mark Brown
2010-03-24 10:57   ` Andy Green
2010-03-24 11:02   ` Marek Szyprowski
2010-03-24 11:08     ` Mark Brown
2010-03-24 11:27       ` Andy Green
2010-03-24 12:19         ` Mark Brown
2010-03-24 12:29           ` Andy Green

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=4BA9D93E.50705@warmcat.com \
    --to=andy@warmcat.com \
    --cc=linux-arm-kernel@lists.infradead.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).