Messages in this thread | | | Subject | Re: [PATCH 1/2] gpio: add pin biasing and drive mode to gpiolib | From | Ben Nizette <> | Date | Thu, 21 Apr 2011 09:32:26 +1000 |
| |
On 20/04/2011, at 10:21 PM, Linus Walleij wrote:
> 2011/4/19 Ben Nizette <bn@niasdigital.com>: >> On 18/04/2011, at 10:26 PM, Alan Cox wrote: >> >>> The logical extension to that is to delete the gpio layer because the >>> board code can do it ? >> >> Well anything that is done once at startup, yes, > > This patch is about biasing and drive modes. We need to alter > these at runtime (from board code, indeed) due to the fact that > when you go to sleep e.g. floating a pin yeilds better power > characteristics.
This is actually an interesting case because floating pins yeild /worse/ power characteristics (each transistor of the push-pull is on a little bit and you get a path straight through) [1]. To get good power performance you want to pull an input pin high or low but which of those two directions depends on external constraints, i.e. the board. This is a case where the driver should /not/ go playing with things it can't fully understand.
Perhaps one of the properties that a board can set in a gpio chip driver is the suspend state and have suspend/resume hooks in the gpio chip take care of setting things up on each side.
--Ben.
[1] http://processors.wiki.ti.com/index.php/Optimizing_IO_Power_Consumption
> > Linus Walleij
| |