gpio-mxc gpio get always returns 0 for outputs for IMX6
Shawn Guo
shawn.guo at freescale.com
Mon Jul 14 07:05:27 PDT 2014
On Mon, Jul 14, 2014 at 02:56:06PM +0200, Benoît Thébaudeau wrote:
> > So the question comes down to, for an output GPIO, whether the value in
> > GPIO_DR register is always identical to what we see on the pad. If yes,
> > your patch makes sense to me. Otherwise, we have to set SION bit to
> > read the value of an output GPIO from GPIO_PSR.
>
> Both are not always the same. They should be the same only for sane
> hardware. GPIO_DR indicates the level that the output pad tries to
> drive, while GPIO_PSR indicates the level sensed on the pad. Thus,
> they may differ if there is an external level conflict on the pin.
> This difference may be useful in order to test if the board is
> behaving as expected or if there is anything going wrong, which is
> typically useful for board prototyping.
>
> The software "knows" what it has set on the output pad, so having a
> get accessor for GPIO_PSR is more useful than for GPIO_DR, and it
> better fits the actual meaning of this function. GPIO_DR would
> correspond to the non-existing gpio_get_set_value() function.
Thanks for the input, Benoît. That's helpful.
Shawn
More information about the linux-arm-kernel
mailing list