[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <E0A55C1E-9DA0-4FFE-90EE-575BB1E649CB@niasdigital.com>
Date: Thu, 21 Apr 2011 09:32:26 +1000
From: Ben Nizette <bn@...sdigital.com>
To: Linus Walleij <linus.walleij@...aro.org>
Cc: Alan Cox <alan@...rguk.ukuu.org.uk>, linux-kernel@...r.kernel.org,
Grant Likely <grant.likely@...retlab.ca>,
Lee Jones <lee.jones@...aro.org>,
linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH 1/2] gpio: add pin biasing and drive mode to gpiolib
On 20/04/2011, at 10:21 PM, Linus Walleij wrote:
> 2011/4/19 Ben Nizette <bn@...sdigital.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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists