Re: Regulator probe

From: Mark Brown
Date: Thu Sep 01 2016 - 18:04:20 EST


On Thu, Sep 01, 2016 at 07:15:16PM +0300, Andy Shevchenko wrote:
> On Thu, 2016-09-01 at 16:38 +0100, Mark Brown wrote:
> > On Thu, Sep 01, 2016 at 05:53:43PM +0300, Andy Shevchenko wrote:

> > The device isn't registered and it's saying it isn't registered, this
> > is
> > normal.  Since this is an ACPI system

> Nope, it's SFI. Which basically means we have everything in board files.

Ugh, I'd been assured that SFI had been killed off :(

Anyway if that's the case then it should all be working already then
unless SFI goes down the ACPI code paths or someone changed SFI since
SFI won't flag as having full costraints and therefore any missing
regulator will report as deferring. If that is indeed the case you've
probably got a broken consumer driver that's not handing probe
deferrals.

> > we are expecting the firmware or
> > whatever else registers devices and their supplies to do that, if the
> > supplies aren't being mapped at device registration time then you're
> > telling the core not to expect any.  If you had mapped the supply and
> > it
> > wasn't available the consumer would get an -EPROBE_DEFER.

> Basically you mean we have not call regulator_has_full_constraints()?
> In that case we have to provide stubs for all expected regulators, in
> case of SDHCI one real and one dummy, who knows how many them in the
> drivers, but for each we have to provide that. Am I right? 

You have to either not call regulator_has_full_constraints() or supply
all the mappings for device supplies before you register a device. If
you don't call regulator_has_full_constraints() missing regulators will
always defer so you would need to provide a fixed voltage regulator for
it. If it's really absent you'll need to provide full constraints, we
can't tell otherwise.

> > As I keep saying with all these problems if you want to reimplement DT
> > instead of using it you need to reimplement *all* of DT, it's there
> > for
> > a reason.  It would be a lot quicker and simpler to just use DT for
> > these systems.

> Here we have platform code. It might be possible to switch to DT for it,
> with no firmware support, but I can consider it as a far away from now.

It would be a lot more sensible than SFI, it's so limited you're
basically just using board files but with the limitations of having to
do bits of it through firmware and then join the two up which seems like
the worst of both worlds.

Attachment: signature.asc
Description: PGP signature