Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

boot_on regulator constraint vs. regulator-boot-on DT property

384 views
Skip to first unread message

Stephen Warren

unread,
Jun 20, 2012, 5:00:02 PM6/20/12
to
Liam, Mark,

I've spotted what seems like a slight inconsistency between the
documentation for the boot_on regulator constraint, and the
regulator-boot-on DT property documentation.

include/linux/regulator/machine.h says:

> * @boot_on: Set if the regulator is enabled when the system is initially
> * started. If the regulator is not enabled by the hardware or
> * bootloader then it will be enabled when the constraints are
> * applied.

Documentation/devicetree/bindings/regulator/regulator.txt says:

> - regulator-boot-on: bootloader/firmware enabled regulator

... and of_regulator.c sets the boot_on constraint based on this property.

The former quote implies that this is a flag to tell Linux to turn on
the regulator when it's first registered, whereas the latter quote
implies that it's guaranteeing the state that previous SW placed the
regulator into already.

I assume the documentation from machine.h is correct, and I should send
a patch to make regulator.txt match it?

Thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Mark Brown

unread,
Jun 20, 2012, 7:50:02 PM6/20/12
to
On Wed, Jun 20, 2012 at 02:55:37PM -0600, Stephen Warren wrote:

> include/linux/regulator/machine.h says:

> > * @boot_on: Set if the regulator is enabled when the system is initially
> > * started. If the regulator is not enabled by the hardware or
> > * bootloader then it will be enabled when the constraints are
> > * applied.

> Documentation/devicetree/bindings/regulator/regulator.txt says:

> > - regulator-boot-on: bootloader/firmware enabled regulator

> ... and of_regulator.c sets the boot_on constraint based on this property.

> The former quote implies that this is a flag to tell Linux to turn on
> the regulator when it's first registered, whereas the latter quote
> implies that it's guaranteeing the state that previous SW placed the
> regulator into already.

> I assume the documentation from machine.h is correct, and I should send
> a patch to make regulator.txt match it?

There's no great inconsistency between the two, this is only supposed to
be used for supplies which are already enabled on boot but if the supply
is not already enabled then currently the API will try to make it so
since probably there's some reason for that. Generally it's supposed to
be used as a crutch to keep hotplug going.

I'm not sure we should clarify this since I'm not sure that for DT
setups which (as we were discussing in the other thread) are supposed to
be usable over many software versions it's something that should really
be used. We ought to in the endgame be able to have DT systems turn on
full constraints and that probably breaks anything relying too much on
boot-on, I'd expect they either need the regulator to be always on or
some more consumers.
signature.asc

Stephen Warren

unread,
Jun 20, 2012, 9:30:01 PM6/20/12
to
On 06/20/2012 05:46 PM, Mark Brown wrote:
> On Wed, Jun 20, 2012 at 02:55:37PM -0600, Stephen Warren wrote:
>
>> include/linux/regulator/machine.h says:
>
>>> * @boot_on: Set if the regulator is enabled when the system is
>>> initially * started. If the regulator is not enabled
>>> by the hardware or * bootloader then it will be
>>> enabled when the constraints are * applied.
>
>> Documentation/devicetree/bindings/regulator/regulator.txt says:
>
>>> - regulator-boot-on: bootloader/firmware enabled regulator
>
>> ... and of_regulator.c sets the boot_on constraint based on this
>> property.
>
>> The former quote implies that this is a flag to tell Linux to
>> turn on the regulator when it's first registered, whereas the
>> latter quote implies that it's guaranteeing the state that
>> previous SW placed the regulator into already.
>
>> I assume the documentation from machine.h is correct, and I
>> should send a patch to make regulator.txt match it?
>
> There's no great inconsistency between the two, this is only
> supposed to be used for supplies which are already enabled on boot

Hmm. Perhaps I was misreading machine.h, and "when the system is
initially started" refers to the first firmware start, rather than
when /Linux/ starts. If so, then yes I can see it isn't really
inconsistent.

Mark Brown

unread,
Jun 21, 2012, 5:20:02 AM6/21/12
to
On Wed, Jun 20, 2012 at 07:26:13PM -0600, Stephen Warren wrote:
> On 06/20/2012 05:46 PM, Mark Brown wrote:

> > There's no great inconsistency between the two, this is only
> > supposed to be used for supplies which are already enabled on boot

> Hmm. Perhaps I was misreading machine.h, and "when the system is
> initially started" refers to the first firmware start, rather than
> when /Linux/ starts. If so, then yes I can see it isn't really
> inconsistent.

Yes, that's the idea - it's for telling the core that everything has
been done on the basis that the initial power up state of the system
(possibly after some intervention by the bootloader) should be whatever,
it's not supposed to be an instruction to Linux itself. Linux should be
using consumers or always on.
signature.asc
0 new messages