linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Trent Piepho <tpiepho@freescale.com>
To: Anton Vorontsov <avorontsov@ru.mvista.com>
Cc: linuxppc-dev@ozlabs.org, linux-kernel@vger.kernel.org
Subject: Re: PIXIS gpio controller and gpio flags
Date: Wed, 23 Jul 2008 16:42:24 -0700 (PDT)	[thread overview]
Message-ID: <Pine.LNX.4.64.0807231551230.26456@t2.domain.actdsltmp> (raw)
In-Reply-To: <20080723145650.GA13792@polina.dev.rtsoft.ru>

On Wed, 23 Jul 2008, Anton Vorontsov wrote:
> On Mon, Jul 21, 2008 at 02:12:20PM -0700, Trent Piepho wrote:
>> On Mon, 21 Jul 2008, Anton Vorontsov wrote:
>>> On Sat, Jul 19, 2008 at 02:08:01PM -0700, Trent Piepho wrote:
>>>> It doesn't look like you have any way to unset the active low flag.  What if
>>>> I unload the leds-gpio driver (or another gpio user) and then try to use the
>>>> gpio with something else?  The active low flag is stuck on!
>>>
>>> Why would you want to unset the flags? It is specified in the device
>>> tree, and can't be changed. Specifying different flags for the same GPIO
>>> would be an error (plus, Linux forbids shared gpios, so you simply can't
>>> specify one gpio for several devices).
>>
>> You can't use the same gpio for two different things at the same time, but you
>> can load a driver, unload it, and then load another.
>
> Hm.. yeah, this might happen. Now I tend to think that transparent
> active-low handling wasn't that good idea after all. So, something like
> of_gpio_is_active_low(device_node, gpioidx) should be implemented
> instead. This function will parse the gpio's = <> flags. Please speak up
> if you have any better ideas though.

The flags could be provided via of_get_gpio.  E.g., something like
of_get_gpio(...., u32 *flags), and if flags is non-NULL the gpio flags are
left there.  of_get_gpio already has the flags and some other of_get_*
functions return multiple things like this.

Or just have an active low property for the led:
 	led.active_low = !!of_get_property(np, "active-low", NULL);

Pretty simple, just one line of code.  At least if one looks just at
leds-gpio, that's obviously the simplest way.  Is active low a property of
the led or a property of the gpio?  I guess one could argue either way.

It seems like putting one line of code leds-gpio driver is better than
putting much more complex code into the gpio controller driver.  And each
gpio controller has to have that code too.

Now you could say that each gpio user needing to support inverting gpios is
a lot of code too, but I don't think it's necessary.  Active low LEDs are
common since gpios can usually sink more current than they can source.  But
other gpio users, like the I2C, SPI, MDIO drivers etc., haven't had a need
to support inverting each signal.

I'm also loathe to add software gpio inverting to my mpc8572 gpio driver. 
In addition to some LEDs there is also a bit-banged JTAG bus on the CPU
GPIOs.  I had to go to great lengths to get it fast enough and each
instruction added to a gpio operation is going to cost me MHz.

  reply	other threads:[~2008-07-23 23:43 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-14 16:41 [PATCH] leds: implement OpenFirmare GPIO LED driver Anton Vorontsov
2008-07-15  3:10 ` Stephen Rothwell
2008-07-15 12:38   ` Anton Vorontsov
2008-07-15 12:40     ` [PATCH v2] " Anton Vorontsov
2008-07-15 12:54       ` Richard Purdie
2008-07-15 13:24         ` Anton Vorontsov
2008-07-15 13:31           ` Richard Purdie
2008-07-15 14:23             ` Anton Vorontsov
2008-07-15 14:43               ` Richard Purdie
2008-07-15 15:19                 ` [PATCH v3] " Anton Vorontsov
2008-07-16 23:18                   ` Trent Piepho
2008-07-17  4:15                     ` Grant Likely
2008-07-17  5:13                       ` Trent Piepho
2008-07-17 13:55                         ` Anton Vorontsov
2008-07-17 20:01                           ` Trent Piepho
2008-07-17 14:05                       ` Anton Vorontsov
2008-07-17 14:13                         ` Anton Vorontsov
2008-07-17 15:04                           ` Grant Likely
2008-07-17 15:20                             ` Anton Vorontsov
2008-07-17 18:05                               ` Grant Likely
2008-07-17 20:18                                 ` Trent Piepho
2008-07-17 20:49                                   ` Grant Likely
2008-07-17 23:42                                   ` Anton Vorontsov
2008-07-18  5:09                                     ` Grant Likely
2008-07-18  9:20                                     ` Trent Piepho
2008-07-18 10:05                                       ` Anton Vorontsov
2008-07-19 21:08                                         ` PIXIS gpio controller and gpio flags Trent Piepho
2008-07-21 17:53                                           ` Anton Vorontsov
2008-07-21 21:12                                             ` Trent Piepho
2008-07-23 14:56                                               ` Anton Vorontsov
2008-07-23 23:42                                                 ` Trent Piepho [this message]
2008-07-25 16:48                                                   ` [RFC PATCH] of_gpio: implement of_get_gpio_flags() Anton Vorontsov
2008-07-26  8:26                                                     ` Trent Piepho
2008-07-25 20:38                                         ` [PATCH v3] leds: implement OpenFirmare GPIO LED driver Trent Piepho
2008-07-25 21:01                                           ` [PATCH 1/2] leds: make the default trigger name const Trent Piepho
2008-07-27  2:08                                             ` Grant Likely
2008-07-27 13:11                                               ` Stephen Rothwell
2008-07-28  1:56                                                 ` Trent Piepho
2008-07-28  2:02                                                   ` [PATCH v2] " Trent Piepho
2008-07-28  9:53                                                   ` [PATCH 1/2] " Anton Vorontsov
2008-08-29  1:22                                                     ` Trent Piepho
2008-07-25 21:01                                           ` [PATCH 2/2] leds: Support OpenFirmware led bindings Trent Piepho
2008-07-27  2:21                                             ` Grant Likely
2008-07-28  8:31                                               ` Trent Piepho
2008-07-28 17:09                                                 ` Grant Likely
2008-07-28 18:02                                                   ` Anton Vorontsov
2008-07-28 18:06                                                     ` Grant Likely
2008-07-28 18:26                                                     ` Trent Piepho
2008-07-28 18:49                                                       ` Grant Likely
2008-07-28 18:51                                                       ` Anton Vorontsov
2008-07-28 19:11                                                         ` Trent Piepho
2008-07-17 21:29                   ` [PATCH v3] leds: implement OpenFirmare GPIO LED driver Nate Case
2008-07-16 23:22                 ` [PATCH v2] " Trent Piepho
2008-07-17  5:59 ` [PATCH] " Segher Boessenkool
2008-07-17 11:07   ` Anton Vorontsov
2008-07-17 14:58     ` Sean MacLennan
2008-07-17 15:07     ` Grant Likely
2008-07-18  3:35       ` David Gibson
2008-07-18  4:44         ` Grant Likely

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=Pine.LNX.4.64.0807231551230.26456@t2.domain.actdsltmp \
    --to=tpiepho@freescale.com \
    --cc=avorontsov@ru.mvista.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@ozlabs.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;
as well as URLs for NNTP newsgroup(s).