[PATCH] pinctrl: document the "GPIO mode" pitfall
Linus Walleij
linus.walleij at linaro.org
Thu Apr 25 17:39:18 EDT 2013
On Tue, Apr 23, 2013 at 3:33 PM, Laurent Pinchart
<laurent.pinchart at ideasonboard.com> wrote:
>> +And your machine configuration may look like this:
>> +--------------------------------------------------
>> +
>> +static unsigned long uart_default_mode[] = {
>> + PIN_CONF_PACKED(PIN_CONFIG_DRIVE_PUSH_PULL, 0),
>> +};
>> +
>> +static unsigned long uart_sleep_mode[] = {
>> + PIN_CONF_PACKED(PIN_CONFIG_OUTPUT, 0),
>> +};
>
> I'm having a bit of trouble with PIN_CONFIG_DRIVE_PUSH_PULL and
> PIN_CONFIG_OUTPUT. Strictly speaking, when configured in output mode, the pin
> will be in a push-pull configuration.
For your system or for any system? Open drain, open source are also
output modes, and none of them are push-pull.
> Could you clarify the exact scope of the
> two configuration parameters ?
PIN_CONFIG_OUTPUT is left a bit unspecified, but here the
idea was a passive drive, like just connecting the pin to
VDD or GND without any driver stage at all. Maybe I should
patch the documentation since we seem to be the only
user?
In the above case (which is derived from the ABx500) I think what is
happening is that the pin is connected to ground during sleep,
without any enabled driver stages, which saves a lot of power,
since you do not need to bias the totempole during
sleep in that way.
Yours,
Linus Walleij
More information about the linux-arm-kernel
mailing list