From: David Brownell <david-b@pacbell.net>
To: Ben Gardner <gardner.ben@gmail.com>
Cc: linux-kernel@vger.kernel.org,
Andres Salomon <dilinger@collabora.co.uk>,
Mark Brown <broonie@opensource.wolfsonmicro.com>,
Andrew Morton <akpm@linux-foundation.org>,
Jani Nikula <ext-jani.1.nikula@nokia.com>
Subject: Re: [PATCH v2] cs5535-gpio: change input/output enable to match gpiolib expectations
Date: Sat, 27 Feb 2010 11:18:51 -0800 [thread overview]
Message-ID: <201002271118.51842.david-b@pacbell.net> (raw)
In-Reply-To: <1267296977-22626-1-git-send-email-gardner.ben@gmail.com>
On Saturday 27 February 2010, Ben Gardner wrote:
Patch seems OK, but the comment could stand correction:
> The intent of the gpiolib set_direction_xxx functions is as follows:
Clarification: it's not "gpiolib" which expects that; "gpiolib"
is just an optional implementation infrastructure for the GPIO
programming interface.
That behavior is better described as a "weak expectation" than an
intent. It comes from the GPIO programming interface, as described
in Documentation/gpio.txt ...
And the reason it describes that weak expectation is that it's how
most GPIO hardware behaves ... in particular, how the GPIO banks of
most System-on-Chip (SoC) processors behave. (Even on boards with
external GPIO controllers, the SoC GPIOs generally outnumber the
external GPIOs by one or more orders of magnitude.)
Since the behavior of reading an "output" GPIO's value needs to
be specified ... this issue comes up.
> output: enable both input and output
> input: disable output, enable input
... the expectation is "weak" in that output-only is very
much allowed. However, if a gpio is going to provide that
model, (a) it needs to report its value as 0/low/false when
asked, which (b) may well trigger some odd behavior in
some other driver code that expects more typical behavior
(You *could* also return 0/low/false for output-only GPIOs.
But this behavior is more typical, and much more useful.)
So a better explanation of this patch would emphasize that
it's providing "more typical behavior" to reduce surprises.
- Dave
next prev parent reply other threads:[~2010-02-27 19:18 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-26 23:26 [PATCH 0/3] gpio: add gpio_set_direction Ben Gardner
2010-02-26 23:26 ` [PATCH 1/3] gpiolib: add gpio_set_direction() Ben Gardner
2010-02-26 23:39 ` Andres Salomon
2010-02-27 5:11 ` Ben Gardner
2010-02-27 7:02 ` David Brownell
2010-02-27 10:26 ` Mark Brown
2010-02-27 16:24 ` David Brownell
2010-02-27 17:20 ` Mark Brown
2010-02-27 17:51 ` David Brownell
2010-03-01 10:35 ` Mark Brown
2010-02-27 18:36 ` Ben Gardner
2010-02-27 19:23 ` David Brownell
2010-02-27 18:36 ` [PATCH] cs5535-gpio: change input/output enable to match gpiolib expectations Ben Gardner
2010-02-27 18:40 ` Ben Gardner
2010-02-27 18:56 ` [PATCH v2] " Ben Gardner
2010-02-27 19:18 ` David Brownell [this message]
2010-02-26 23:26 ` [PATCH 2/3] cs5535-gpio: Use set_direction Ben Gardner
2010-02-27 7:04 ` David Brownell
2010-02-27 18:18 ` Ben Gardner
2010-02-26 23:26 ` [PATCH 3/3] OLPC: ALSA: fix cs5535audio's MIC GPIO to enable input Ben Gardner
2010-02-27 7:14 ` David Brownell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201002271118.51842.david-b@pacbell.net \
--to=david-b@pacbell.net \
--cc=akpm@linux-foundation.org \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=dilinger@collabora.co.uk \
--cc=ext-jani.1.nikula@nokia.com \
--cc=gardner.ben@gmail.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.