[PATCH v2 1/9] omap4: powerdomain: Add supported INACTIVE power state
Paul Walmsley
paul at pwsan.com
Mon Feb 7 20:32:26 EST 2011
On Mon, 7 Feb 2011, Santosh Shilimkar wrote:
> > -----Original Message-----
> > From: Paul Walmsley [mailto:paul at pwsan.com]
> > Sent: Monday, February 07, 2011 2:12 AM
> >
> > Continuing the discussion here:
> >
> > http://www.mail-archive.com/linux-
> > omap at vger.kernel.org/msg43509.html
> >
> > 1. It appears that the OMAP4 powerdomain ON-ACTIVE state is a new
> > state
> > for OMAP4, and does not exist as such on previous chips (unless the
> > PRM_VOLTCTRL.AUTO_* bits are all disabled)
> >
> Actually it's not new state but more of convention change. ON-ACTIVE
> is like ON in OMAP3.
Hmm, based on our earlier list mails, that seems confusing. Setting an
OMAP3 powerdomain next-power-state to 'ON' in OMAP3 allows voltage domain
transitions to the SLEEP level. But setting an OMAP4 powerdomain
next-power-state to 'ON-ACTIVE' does not allow voltage domain
transitions to the SLEEP level. And setting an OMAP4 powerdomain
next-power-state to 'ON-INACTIVE' does allow voltage domain transitions to
the SLEEP level. Is that correct?
If that's correct, then OMAP4 ON-ACTIVE is a functionally new powerdomain
next-power-state setting, and OMAP4 ON-INACTIVE is the same state as OMAP3
ON. Unless there's something obvious that I'm missing?
> > 2. It also appears that the OMAP4 powerdomain ON-INACTIVE state
> > is equivalent to the OMAP3 powerdomain ON state (again, assuming
> > that the
> > PRM_VOLTCTRL.AUTO_SLEEP bit is set on OMAP3).
> >
> This is correct.
>
> > Could you please comment on whether these statements are true or
> > false?
> >
>
> Just to summarise my undertsnaing of this here.
> On OMAP3 too, we had possibility of being in a one of the
> Two state when programmed to PD ON state.
> ON-ACTIVE or ON-INACTIVE. The PD status registers just
> says INACTIVE or ON based on the clodomains states within PD.
Right, but when 'ON' is written into an OMAP3 powerdomain's
next-power-state bits, voltage domain transitions are allowed. So I'm
just trying to confirm that OMAP3 ON state is functionally equivalent to
the OMAP4 ON-INACTIVE state, and not functionally equivalent to the OMAP4
ON-ACTIVE state.
We have to ensure that the core code-internal meaning of the (ON,
INACTIVE, RET, OFF) states doesn't vary across SoC types. Otherwise "ON"
on OMAP4 won't mean "ON" on OMAP3, and the goal is for the core code to be
SoC-independent.
One way to do that would be to add a small mapping layer for the
powerdomain set-next-power-state code to:
- allow programming INACTIVE on OMAP3, by ensuring that, when all
powerdomains in a voltage domain are in INACTIVE, that AUTO_SLEEP
is set to 1, and then setting the hardware next-power-state to ON; and
- allow programming ON on OMAP3, by ensuring that AUTO_SLEEP is set
to 0, and setting the hardware next-power-state to ON.
On OMAP4, presumably it wouldn't be needed to mess with the AUTO_SLEEP
bit.
Probably to make that work cleanly, either clockdomains or powerdomains
would need to be associated with voltage domains; and some kind of counter
would need to be implemented in the voltage domains to indicate when it is
appropriate to write to the AUTO_SLEEP bit.
- Paul
More information about the linux-arm-kernel
mailing list