From: boris brezillon <b.brezillon@overkiz.com>
To: balbi@ti.com
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Rob Landley <rob@landley.net>,
Linus Walleij <linus.walleij@linaro.org>,
Alexandre Courbot <gnurou@gmail.com>,
Jiri Prchal <jiri.prchal@aksignal.cz>,
Ben Gamari <bgamari.foss@gmail.com>,
Mark Rutland <mark.rutland@arm.com>,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-gpio@vger.kernel.org, devicetree@vger.kernel.org,
Pekon Gupta <pekon@ti.com>,
Linux OMAP Mailing List <linux-omap@vger.kernel.org>
Subject: Re: [RFC PATCH] gpio: add GPIO hogging mechanism
Date: Mon, 30 Dec 2013 10:48:48 +0100 [thread overview]
Message-ID: <52C14180.4080801@overkiz.com> (raw)
In-Reply-To: <20131219182227.GB4536@saruman.home>
Hello,
On 19/12/2013 19:22, Felipe Balbi wrote:
> On Thu, Dec 19, 2013 at 06:18:40PM +0100, boris brezillon wrote:
>> Hello Felipe,
>>
>> On 19/12/2013 17:47, Felipe Balbi wrote:
>>> On Thu, Dec 19, 2013 at 08:41:09AM -0800, Greg Kroah-Hartman wrote:
>>>> On Thu, Dec 19, 2013 at 03:34:31PM +0100, Boris BREZILLON wrote:
>>>>> GPIO hogging is a way to request and configure specific GPIO without
>>>>> explicitly requesting it in the device driver.
>>>>>
>>>>> The request and configuration procedure is handled in the core device
>>>>> driver code before the driver probe function is called.
>>>>>
>>>>> It allows specific GPIOs to be configured without any driver specific code.
>>>>>
>>>>> Particularly usefull when a external device is connected to a bus and the
>>>>> bus connections depends on an external switch controlled by a GPIO pin.
>>> for external switches, you probably need a pinctrl-gpio driver.
>> Do you mean using pinctrl pinconf to configure the PIN as output-high or
>> output-low ?
>>
>> This was my first proposal
>> (see https://www.mail-archive.com/devicetree@vger.kernel.org/msg05829.html).
My mistake: this is not exactly what I proposed in my patch series.
Actually, I was directly requesting the pin connected to the external
switch as
OUTPUT + (OUTPUT-LEVEL) according the the device needs:
- output high for MMC slot
- output low for SPI device
And, I guess this is why Linus asked me to find a better solution.
IMHO your approach is, by far, much better. You expose the external switch
as a PIN muxing device and the devices connected to through this PIN mux
block just have to request the appropriate PIN states.
In my specific case this would give the following:
- MMC conf for mmc slot 0
- SPI conf for the SPI device
With your approach the HW representation is better: the different signals
controlled by the external switch can be seen using debugfs, and device
tree definition is closer to the real HW design.
> that's quite a weird argument from Linus W, considering you _do_ have a
> discrete mux on the board.
> We have quite a few of such "crazy" scenarios here at TI and we were
> going to send a pinctrl-gpio driver. If that's not acceptable, then I
> suppose there is no way to boot from NAND on a board where NAND signals
> go through a discrete mux where the select signal is a GPIO pin.
>
Please keep going with the submission process: I'm really interested in this
driver (BTW could you add me in the CC list ?).
Linus, tell me if I'm wrong, but I think, the pinctrl-gpio is the right
way to solve
the at91rm9200ek board use case.
This does not mean, the gpio hogs approach does not solve other issues (see
https://lkml.org/lkml/2013/8/29/333 and
https://www.mail-archive.com/linux-gpio@vger.kernel.org/msg01084.html),
but in
my specific case, I'd rather use the pinctrl-gpio driver.
Best Regards,
Boris
next prev parent reply other threads:[~2013-12-30 9:48 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-19 14:34 [RFC PATCH] gpio: add GPIO hogging mechanism Boris BREZILLON
[not found] ` <1387463671-1164-1-git-send-email-b.brezillon-ZNYIgs0QAGpBDgjK7y7TUQ@public.gmane.org>
2013-12-19 14:34 ` Boris BREZILLON
2013-12-19 14:34 ` Boris BREZILLON
2013-12-19 16:41 ` Greg Kroah-Hartman
2013-12-19 16:47 ` Felipe Balbi
2013-12-19 16:47 ` Felipe Balbi
2013-12-19 17:18 ` boris brezillon
2013-12-19 18:22 ` Felipe Balbi
2013-12-19 18:22 ` Felipe Balbi
2013-12-30 9:48 ` boris brezillon [this message]
2014-01-08 9:45 ` Linus Walleij
[not found] ` <20131219164109.GB27409-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2013-12-19 17:13 ` boris brezillon
2013-12-19 17:13 ` boris brezillon
2014-09-20 21:37 ` Ben Gamari
2014-09-20 22:26 ` Ben Gamari
2014-01-08 9:37 ` Linus Walleij
2014-01-08 10:18 ` boris brezillon
2014-01-14 10:27 ` Linus Walleij
2014-10-02 15:47 ` Benoit Parrot
-- strict thread matches above, loose matches on Subject: below --
2014-10-06 11:58 [GIT PULL] bulk pin control changes for v3.18 Linus Walleij
2014-10-06 15:37 ` [RFC PATCH] gpio: add GPIO hogging mechanism Benoit Parrot
2014-10-06 15:37 ` Benoit Parrot
2014-10-21 10:55 ` Linus Walleij
2014-10-21 20:09 [RFC Patch] " Benoit Parrot
2014-10-21 20:09 ` Benoit Parrot
2014-10-29 7:09 ` Alexandre Courbot
2014-10-29 7:09 ` Alexandre Courbot
2014-10-29 16:21 ` Benoit Parrot
2014-10-29 16:21 ` Benoit Parrot
2014-10-30 0:29 ` Alexandre Courbot
2014-11-14 9:19 ` Linus Walleij
2014-11-14 10:22 ` Maxime Ripard
2014-10-29 8:53 ` Pantelis Antoniou
2014-10-29 8:53 ` Pantelis Antoniou
2014-10-29 16:34 ` Benoit Parrot
2014-10-29 16:34 ` Benoit Parrot
2014-10-29 16:42 ` Pantelis Antoniou
2014-10-29 19:36 ` Benoit Parrot
2014-10-29 19:36 ` Benoit Parrot
2014-10-30 0:31 ` Alexandre Courbot
2014-10-30 0:31 ` Alexandre Courbot
2014-11-03 9:43 ` Linus Walleij
2014-11-03 9:43 ` Linus Walleij
2014-10-29 10:45 ` Maxime Ripard
2014-10-29 16:41 ` Benoit Parrot
2014-10-29 16:41 ` Benoit Parrot
2014-10-29 16:47 ` Maxime Ripard
2014-10-29 23:09 ` Benoit Parrot
2014-10-29 23:09 ` Benoit Parrot
2014-10-30 17:16 ` Maxime Ripard
2014-11-03 9:59 ` Linus Walleij
2014-11-04 0:38 ` Benoit Parrot
[not found] ` <20141104003827.GA24005-l0cyMroinI0@public.gmane.org>
2014-11-14 9:16 ` Linus Walleij
2014-11-14 9:16 ` Linus Walleij
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=52C14180.4080801@overkiz.com \
--to=b.brezillon@overkiz.com \
--cc=balbi@ti.com \
--cc=bgamari.foss@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=gnurou@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=jiri.prchal@aksignal.cz \
--cc=linus.walleij@linaro.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=pekon@ti.com \
--cc=rob@landley.net \
/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.