From: Ben Nizette <bn@niasdigital.com>
To: Alek Du <alek.du@intel.com>
Cc: Kernel Mailing List <linux-kernel@vger.kernel.org>,
Ben Dooks <ben-linux@fluff.org>,
Florian Fainelli <florian@openwrt.org>,
Mark Brown <broonie@opensource.wolfsonmicro.com>
Subject: Re: [PATCH v2] gpiolib: Add gpio_debounce and gpio_alt_func features to GPIOLIB
Date: Wed, 17 Jun 2009 19:36:44 +1000 [thread overview]
Message-ID: <1245231404.2668.9.camel@linux-51e8.site> (raw)
In-Reply-To: <20090617145955.355ef2a9@dxy.sh.intel.com>
On Wed, 2009-06-17 at 14:59 +0800, Alek Du wrote:
> Changes from v1:
>
> Removed gpio_detect since we should do that with irq_chip.set_type function.
>
>
> From 6b3c9398acf338c263170fcb74c0b2b345ad5369 Mon Sep 17 00:00:00 2001
> From: Alek Du <alek.du@intel.com>
> Date: Wed, 17 Jun 2009 14:50:51 +0800
> Subject: [PATCH] GPIO: Add gpio_debounce and gpio_alt_func features to GPIOLIB
>
> Add gpio_debounce and gpio_alt_func features to GPIOLIB:
> * gpio_debounce is to adjust signal HW debounce value (need HW support)
> * gpio_alt_func is to set GPIO as alternative function (need HW support)
Please justify the existence of these functions, particularly, who's
supposed to actually call them? There's no real changelogging here.
First the hardware debounce call. Hardware debounce functionality
varies massively between chips. Therefore a driver cannot depend on any
particular behaviour unless it already knows what platform it's running
on. If it knows the platform it can access the functions directly and
the interface needs no abstraction. If the driver doesn't know the
platform it can't get any value from the call. Worse, people are going
to start /expecting/ some behaviour from the call and wonder why their
driver fails subtly on slightly different systems.
Who's supposed to set the alternate functions? As I see it, only the
board code. The driver shouldn't ever have to do this itself, all the
pin mux'ing should be done well before the driver needs to access its
pins. Even if the driver does need to set up it's own pins then it
needs to know /which/ alternate function it is which once again requires
platform knowledge. If it requires platform knowledge it should be done
in platform code, not driver code, or can at least be done with
non-abstracted calls.
These both seem like needless feature creep and misdirection to me.
--Ben.
next prev parent reply other threads:[~2009-06-17 9:37 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-15 9:15 [PATCH] gpiolib: Add gpio_detect, gpio_debounce and gpio_alt_func features to GPIOLIB Alek Du
2009-06-15 9:50 ` Ben Dooks
2009-06-15 10:02 ` Mark Brown
2009-06-15 11:19 ` Alek Du
2009-06-15 12:56 ` Florian Fainelli
2009-06-15 12:50 ` Ben Dooks
2009-06-15 13:07 ` Mark Brown
2009-06-15 11:29 ` Alek Du
2009-06-15 12:51 ` Ben Dooks
2009-06-15 13:04 ` Florian Fainelli
2009-06-15 13:09 ` Ben Dooks
2009-06-16 1:28 ` Alek Du
2009-06-16 8:39 ` Ben Dooks
2009-06-17 6:59 ` [PATCH v2] gpiolib: Add " Alek Du
2009-06-17 9:36 ` Ben Nizette [this message]
2009-06-16 1:21 ` [PATCH] gpiolib: Add gpio_detect, " Alek Du
2009-06-16 8:45 ` Ben Dooks
2009-06-16 8:51 ` Alek Du
2009-06-16 9:02 ` Ben Dooks
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=1245231404.2668.9.camel@linux-51e8.site \
--to=bn@niasdigital.com \
--cc=alek.du@intel.com \
--cc=ben-linux@fluff.org \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=florian@openwrt.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox