From: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
To: Lars Poeschel <poeschel@lemonage.de>
Cc: Mark Brown <broonie@kernel.org>,
Stephen Warren <swarren@wwwdotorg.org>,
Linus Walleij <linus.walleij@linaro.org>,
Lars Poeschel <larsi@wh2.tu-dresden.de>,
Grant Likely <grant.likely@linaro.org>,
"linux-gpio@vger.kernel.org" <linux-gpio@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Ian Campbell <ian.campbell@citrix.com>,
Kumar Gala <galak@codeaurora.org>,
Pawel Moll <pawel.moll@arm.com>,
Tomasz Figa <tomasz.figa@gmail.com>,
Enric Balletbo i Serra <eballetbo@gmail.com>,
Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>,
Santosh Shilimkar <santosh.shilimkar@ti.com>,
Kevin Hilman <khilman@linaro.org>, Balaji T K <balajitk@ti.com>,
Tony Lindgren <tony@atomide.com>,
Jon Hunter <jgchunter@gmail.com>
Subject: Re: [PATCH v3] gpio: interrupt consistency check for OF GPIO IRQs
Date: Tue, 10 Sep 2013 15:56:49 +0200 [thread overview]
Message-ID: <522F2521.4090806@collabora.co.uk> (raw)
In-Reply-To: <2052193.CMUEUJFRgS@lem-wkst-02>
On 09/10/2013 10:47 AM, Lars Poeschel wrote:
> On Tuesday 10 September 2013 17:19:24, Mark Brown wrote:
>> On Wed, Sep 04, 2013 at 02:16:36PM -0600, Stephen Warren wrote:
>> > On 09/04/2013 03:05 AM, Lars Poeschel wrote:
>> > > The driver that tries to use the GPIO requested by this patch before HAS
>> > > to
>> > > fail. This is exactly the intention of this patch. We don't want the
>> > > GPIO to be requested any more, if it is used as an interrupt pin.
>> >
>> > That will break existing drivers. There are drivers that request the
>> > same GPIO and IRQ. IIRC, the SDHCI CD (Card Detect) GPIO is requested
>> > that way.
>>
>> Yes, plus input devices and audio jack detection among others. This
>> pattern is very common if the GPIO is actually being used as a GPIO, an
>> edge triggered interrupt is used to flag when something happens and the
>> state is determined by reading the GPIO state (often with some
>> debounce).
>
> And I say it again for those coming into the discussion late, like it has been
> said many many times before: This patch does not break any of this drivers.
> They simply request their GPIO from DT and turn it into an irq using
> gpio_to_irq, request that irq on their behalf and use it as GPIO and IRQ in
> parallel. At least this is not a problem.
>
I agree with Lars and think that we should stop arguing about the limitations of
this patch and how this doesn't solve:
a) The fact that platform code has to call:
gpio_request()
gpio_direction_input()
request_irq()
b) That there are complex use cases where the same driver can request both a
GPIO and the mapped IRQ.
The only thing that this patch tries to solve is when a driver expect to request
a IRQ and it doesn't care if is a real IRQ line from an interrupt controller or
a GPIO pin mapped as an IRQ.
With board files we used to explicitly do the GPIO setup
(gpio_{request,direction_input}) but with DT these board files are gone and we
need a way to setup a GPIO implicitly when is mapped as an IRQ.
That's the only use case that this patch covers.
In legacy non-DT booting boards files will continue doing whatever are doing now
to ensure that drivers calling request_irq() will succeed and complex drivers
can just not define the GPIO-IRQ mapping in the DT and do whatever they need to
do manually.
Now, if just solving this use case is not enough and we want a more general
solution then we should start discussing how that solution should look like so
it can be implemented.
The most concrete idea so far is the one proposed by Stephen to pass a struct
device to gpiolib functions so GPIO controller drivers know when the same device
or a different one is requesting a GPIO twice to allow sharing a GPIO or not.
Also, it would be great if we can find a temporary solution so we can finally
have ethernet working with DT on most OMAP2+ boards. Since I expect that doing
the mentioned change on gpiolib would take at least a couple of kernel releases.
Thanks a lot and best regards,
Javier
next prev parent reply other threads:[~2013-09-10 13:57 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-26 14:07 [PATCH v3] gpio: interrupt consistency check for OF GPIO IRQs Lars Poeschel
2013-08-27 20:17 ` Stephen Warren
2013-08-27 20:38 ` Santosh Shilimkar
2013-08-29 19:26 ` Linus Walleij
2013-08-30 0:24 ` Javier Martinez Canillas
2013-08-30 19:55 ` Stephen Warren
2013-09-02 9:25 ` Lars Poeschel
2013-09-03 17:27 ` Stephen Warren
2013-09-04 9:05 ` Lars Poeschel
2013-09-04 20:16 ` Stephen Warren
2013-09-09 16:19 ` Mark Brown
2013-09-10 8:47 ` Lars Poeschel
2013-09-10 13:56 ` Javier Martinez Canillas [this message]
2013-09-10 19:52 ` Stephen Warren
2013-09-10 21:23 ` Javier Martinez Canillas
2013-09-11 5:24 ` Joel Fernandes
2013-09-10 19:53 ` Stephen Warren
2013-09-10 21:37 ` Mark Brown
2013-09-10 22:34 ` Stephen Warren
2013-09-11 0:52 ` Javier Martinez Canillas
2013-09-11 19:43 ` Stephen Warren
[not found] ` <5230C7F6.3080803-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-09-16 16:03 ` Lars Poeschel
2013-09-16 17:09 ` Stephen Warren
[not found] ` <52373B34.4060709-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-09-22 17:01 ` Javier Martinez Canillas
2013-09-23 20:01 ` Linus Walleij
2013-09-23 20:21 ` Stephen Warren
2013-09-24 8:31 ` Linus Walleij
[not found] ` <CACRpkdZ7E7MGppbkTiObvTDHdmphnbysMKVc1OZjsPXKVuKttQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-09-24 16:59 ` Stephen Warren
[not found] ` <5241C4DB.9090200-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-10-11 8:16 ` Linus Walleij
2013-09-23 19:41 ` Linus Walleij
2013-09-23 19:53 ` Linus Walleij
2013-09-23 20:12 ` Stephen Warren
2013-09-24 8:26 ` Linus Walleij
[not found] ` <CACRpkdZKqW9veHzc1Rgj4oKsjGRATk+Sz8vJaP3EfT4de+bjQA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-09-24 16:56 ` Stephen Warren
[not found] ` <20130909161924.GT29403-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2013-11-11 18:28 ` Gerlando Falauto
2013-11-11 18:53 ` Stephen Warren
[not found] ` <528127B2.80109-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-11 19:17 ` Gerlando Falauto
2013-11-11 19:33 ` Stephen Warren
2013-11-11 19:38 ` Tomasz Figa
2013-11-12 10:29 ` Linus Walleij
2013-09-03 12:43 ` Linus Walleij
2013-09-03 17:32 ` Stephen Warren
2013-08-30 19:53 ` Stephen Warren
2013-09-02 9:38 ` Lars Poeschel
2013-09-03 17:29 ` Stephen Warren
2013-09-04 9:21 ` Lars Poeschel
2013-09-04 20:18 ` Stephen Warren
2013-09-03 12:35 ` Linus Walleij
2013-09-03 17:29 ` Stephen Warren
2013-09-04 8:35 ` Lars Poeschel
2013-09-04 20:13 ` Stephen Warren
[not found] ` <CAK7N6vrEXVyLHpY-v+SJ668hC0wvHrWOgtviAQ+w5yis7p_E4Q@mail.gmail.com>
2013-09-03 17:22 ` Stephen Warren
2013-08-29 15:14 ` Strashko, Grygorii
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=522F2521.4090806@collabora.co.uk \
--to=javier.martinez@collabora.co.uk \
--cc=balajitk@ti.com \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=eballetbo@gmail.com \
--cc=galak@codeaurora.org \
--cc=grant.likely@linaro.org \
--cc=ian.campbell@citrix.com \
--cc=jgchunter@gmail.com \
--cc=khilman@linaro.org \
--cc=larsi@wh2.tu-dresden.de \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=pawel.moll@arm.com \
--cc=plagnioj@jcrosoft.com \
--cc=poeschel@lemonage.de \
--cc=santosh.shilimkar@ti.com \
--cc=swarren@wwwdotorg.org \
--cc=tomasz.figa@gmail.com \
--cc=tony@atomide.com \
/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;
as well as URLs for NNTP newsgroup(s).