Re: platform/i2c busses: pm runtime and system sleep

From: Russell King - ARM Linux
Date: Sat Feb 19 2011 - 05:01:52 EST


On Sat, Feb 19, 2011 at 10:54:57AM +0100, Linus Walleij wrote:
> 2011/2/18 Russell King - ARM Linux <linux@xxxxxxxxxxxxxxxx>:
>
> > Do we have any pressing need to convert AMBA stuff?  I haven't heard any
> > reason yet to convert them to runtime PM - they don't even make any
> > runtime PM calls.
> >
> > Maybe Linus can comment on the PM stuff as he has SoCs with these in.
> > As my boards don't have any sensible PM support, I don't have any
> > visibility of what PM facilities would be required.
>
> Sure, basically I ACK Rabins patch and his reasoning for it. (BTW
> Rabin spends most of his days working on the Ux500 SoCs too.)
>
> The runtime PM we need for Ux500 is to switch off silicon core
> voltage first and foremost. The call I've added to switch of a core
> voltage regulator will need to be called when the silicon is idle.
>
> In spi/amba-pl022.c I take the most brutal approach with a recent
> patch: hammer off this core switch (and clock) whenever the hardware
> is not used. This is simple in this driver since it has no state to preserve
> across transfers, it is written such that the core is loaded with the
> appropriate state for each message.
>
> Continuing this approach we run into two problems with this
> and other drivers:
>
> - Hammering off/on the clock+voltage is causing delays in HW
> so what you want is some hysteresis (usually, wait a few us/ms
> then switch off) - sort of a takeoff/landing effect.
>
> - Modelling voltage domains as regulators is nice, but require
> us to switch on/off from process context, so we cannot do this
> from interrupt handlers.
>
> Both of these problems are solved by elegance if we use runtime
> PM, since it will provide a hysteresis timeout that can be triggered
> from interrupt context and call the idling hooks in process context.

So what's the interdependence with the platform bus that was being talked
about earlier in this thread?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/