All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bill Gatliff <bgat@billgatliff.com>
To: Paul Mundt <lethal@linux-sh.org>
Cc: David Brownell <david-b@pacbell.net>,
	Linux Kernel list <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@osdl.org>,
	Andrew Victor <andrew@sanpeople.com>,
	Haavard Skinnemoen <hskinnemoen@atmel.com>,
	jamey.hicks@hp.com, Kevin Hilman <khilman@mvista.com>,
	Nicolas Pitre <nico@cam.org>, Russell King <rmk@arm.linux.org.uk>,
	Tony Lindgren <tony@atomide.com>
Subject: Re: [patch/rfc 2.6.19-rc5] arch-neutral GPIO calls
Date: Mon, 13 Nov 2006 13:29:24 -0600	[thread overview]
Message-ID: <4558C794.90602@billgatliff.com> (raw)
In-Reply-To: <20061113183811.GA19979@linux-sh.org>

Paul Mundt wrote:

>On Mon, Nov 13, 2006 at 12:19:11PM -0600, Bill Gatliff wrote:
>  
>
>>True, but right now if the "multiple GPIO controllers" are on something 
>>like i2c/spi, they have the synch/asynch issues that Jamey mentioned and 
>>so are by definition out of scope for this proposal.  If the GPIO lines 
>>are in an MMIO controller (PLD/FPGA, perhaps), then there's no reason 
>>that the board implementer couldn't address that in their implementation 
>>of the proposed functions.
>>
>>    
>>
>They're something that has to be accounted for in any sort of API, or we
>just end up throwing it all out and starting over again. I was thinking
>more of the SuperIO or mfd device scope, where this _is_ a requirement.
>  
>

Right.  I don't know anything about SuperIO/SH, but the mfd stuff I've 
worked with to date (UCB1400, SM501) all provide for the various 
functions by mapping them into existing APIs like i2c, ALSA, etc. which 
aren't disturbed by Dave's proposal.  They still have their limitations, 
i.e. you wouldn't want to put an IDE controller out on one of the GPIO 
lines of a UCB1400, a problem that Dave isn't trying to address.

>>... except that I bet David is thinking that the implementations will be 
>>in arch/arm/irq-at91rm9200.c or something, and not in 
>>asm/arm/board-xyz.c, so it's the arch implementer's responsibility and 
>>not the platform author's.  Yea, I see your point now.
>>
>>    
>>
>The problem with this is that it gets in to something that's getting
>close to static pin state configuration. Setting up the mux from platform
>code is brain-damage, since it's ultimately up to the system and driver
>inserted at the time to grab and configure the pin as necessary, the
>board or CPU code is not going to have any notion of the "preferred" pin
>state, especially in the heavily muxed case.
>  
>

The platform _is_ the system, as far as the driver is concerned.  I 
think they're indistinguishable.

What the driver needs is an enumeration that it can hand to the GPIO 
layer that says, "set this high" or "set this low", or "what is the 
state on this line?".  The platform_device structure is a great place to 
pass it the enumerations that, deep in the bowels of the platform/system 
code, map into actual GPIO lines.  I don't think that's close to static 
pin assignment any more than using the platform_device structure to pass 
IRQ line enumerations is now.  Think: today, most drivers don't know or 
care if an IRQ line is edge-triggered or level-triggered.  That code is 
in the domain of the IRQ subsystem.  What David is proposing is the same 
sort of thing for GPIO.


>This is all too late for 2.6.19 regardless. We've gone this long without
>a generic API, I see no reason to merge a temporary hack now if it's not
>going to be satisfactory for people and require us to throw it all out
>and start over again anyways.
>  
>

I don't see what David is proposing as being a temporary hack.  Rather, 
it's a starting point.  We can add another layer on after the sync/async 
issues are sorted out--- which I think is a challenging problem that 
will take a while.  I'd rather have some uniformity today that we can 
use across ARM, and ultimately other arches as well.

>I have a real need for supporting multiple controllers and handling
>muxing dynamically from various drivers on various architectures, and
>anything that exposes the pin # higher than the controller mapping to
>function level is never going to work. Drivers have _zero_ interest in
>pin #, only in the desired function.
>  
>

Agreed.


b.g.

-- 
Bill Gatliff
bgat@billgatliff.com


  reply	other threads:[~2006-11-13 19:29 UTC|newest]

Thread overview: 103+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-11 23:41 [patch/rfc 2.6.19-rc5] arch-neutral GPIO calls David Brownell
2006-11-12  1:27 ` H. Peter Anvin
2006-11-12  3:04   ` David Brownell
2006-11-12  3:15     ` H. Peter Anvin
2006-11-13  3:30 ` Bill Gatliff
2006-11-13 17:38 ` Paul Mundt
2006-11-13 17:56   ` Thiago Galesi
2006-11-13 19:25     ` David Brownell
2006-11-13 19:50       ` Bill Gatliff
2006-11-13 18:19   ` Bill Gatliff
2006-11-13 18:38     ` Paul Mundt
2006-11-13 19:29       ` Bill Gatliff [this message]
2006-11-13 20:15         ` Paul Mundt
2006-11-20 21:49           ` David Brownell
2006-11-21  3:44             ` Bill Gatliff
2006-11-21  4:45               ` David Brownell
2006-11-21  5:09                 ` Bill Gatliff
2006-11-21  5:35                   ` David Brownell
2006-11-21  6:09                     ` Paul Mundt
2006-11-21 18:13                       ` David Brownell
2006-11-22  3:36                         ` Bill Gatliff
2006-11-22  3:55                           ` Paul Mundt
2006-11-22  4:45                           ` [Bulk] " David Brownell
2006-11-22  4:47                             ` Bill Gatliff
2006-11-21 15:57                     ` Bill Gatliff
2006-11-23  0:40                       ` David Brownell
2006-11-30  6:57                         ` pHilipp Zabel
2006-11-30  7:29                           ` pHilipp Zabel
2006-11-30 22:24                           ` David Brownell
2006-11-20 22:15           ` David Brownell
2006-11-21  2:56             ` Bill Gatliff
2006-11-13 20:00       ` David Brownell
2006-11-13 21:30         ` Paul Mundt
2006-11-14  3:21           ` David Brownell
2006-11-13 19:21   ` David Brownell
2006-11-13 19:43     ` Bill Gatliff
2006-11-13 20:15       ` David Brownell
2006-11-13 20:26         ` Bill Gatliff
2006-11-13 20:53           ` David Brownell
2006-11-13 20:58             ` Bill Gatliff
2006-11-13 20:29         ` Bill Gatliff
2006-11-16 14:54 ` [RFC/PATCH] arch-neutral GPIO calls: AVR32 implementation Haavard Skinnemoen
2006-11-20 21:47   ` David Brownell
2006-11-21  3:11     ` Bill Gatliff
2006-11-21  5:06       ` David Brownell
2006-11-21  5:51         ` Bill Gatliff
2006-11-21 18:19           ` David Brownell
2006-11-21  9:11     ` Haavard Skinnemoen
2006-11-21 19:03       ` David Brownell
2006-11-28 12:36         ` [RFC/PATCH] arch-neutral GPIO calls: AVR32 implementation [take 2] Haavard Skinnemoen
2006-11-30 19:05           ` David Brownell
2006-12-01  9:51             ` Haavard Skinnemoen
2006-12-20 21:04 ` [patch 2.6.20-rc1 0/6] arch-neutral GPIO calls David Brownell
2006-12-20 21:08   ` [patch 2.6.20-rc1 1/6] GPIO core David Brownell
2006-12-27 17:49     ` Pavel Machek
2006-12-28 22:05       ` David Brownell
2006-12-29  0:27         ` Pavel Machek
2006-12-30  1:18           ` David Brownell
2007-01-01 20:55             ` Pavel Machek
2007-01-01 21:27               ` David Brownell
2007-01-02 14:18                 ` Pavel Machek
2006-12-20 21:09   ` [patch 2.6.20-rc1 2/6] OMAP GPIO wrappers David Brownell
2006-12-20 21:11   ` [patch 2.6.20-rc1 3/6] AT91 " David Brownell
2006-12-21  6:10     ` Andrew Morton
2006-12-21  6:45       ` David Brownell
2006-12-20 21:12   ` [patch 2.6.20-rc1 4/6] PXA " David Brownell
2006-12-21  6:12     ` Andrew Morton
2006-12-21  6:44       ` David Brownell
2006-12-21 14:27         ` Nicolas Pitre
2006-12-21 15:03           ` pHilipp Zabel
2006-12-21 17:25             ` Nicolas Pitre
2006-12-21 19:32               ` pHilipp Zabel
2006-12-21 20:10                 ` Nicolas Pitre
2006-12-21 20:32                   ` Bill Gatliff
2006-12-22  6:53                   ` pHilipp Zabel
2006-12-28 20:47                     ` David Brownell
2006-12-30  2:15                       ` Nicolas Pitre
2006-12-30  2:38                         ` David Brownell
2007-01-01 19:43                         ` David Brownell
2006-12-30  1:13                     ` David Brownell
2006-12-21 19:25             ` David Brownell
2006-12-27 17:53     ` Pavel Machek
2006-12-28 20:48       ` David Brownell
2006-12-28 20:50         ` Pavel Machek
2006-12-28 20:53           ` Pavel Machek
2006-12-20 21:13   ` [patch 2.6.20-rc1 5/6] SA1100 " David Brownell
2006-12-21  6:13     ` Andrew Morton
2006-12-22  7:16       ` pHilipp Zabel
2006-12-22 15:05         ` Nicolas Pitre
2006-12-30  2:21         ` David Brownell
2006-12-30  3:15           ` Nicolas Pitre
2006-12-30  6:01             ` David Brownell
2006-12-30 13:59               ` pHilipp Zabel
2006-12-30 15:08                 ` Russell King
2006-12-23 11:37     ` Russell King
2006-12-23 20:39       ` David Brownell
2006-12-27 18:24     ` Pavel Machek
2006-12-20 21:14   ` [patch 2.6.20-rc1 6/6] S3C2410 " David Brownell
2006-12-21 10:33     ` Arnaud Patard
2006-12-21 15:29       ` pHilipp Zabel
2006-12-23 11:40       ` Russell King
2006-12-20 23:30   ` [patch 2.6.20-rc1 0/6] arch-neutral GPIO calls Håvard Skinnemoen
2006-12-20 23:46     ` 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=4558C794.90602@billgatliff.com \
    --to=bgat@billgatliff.com \
    --cc=akpm@osdl.org \
    --cc=andrew@sanpeople.com \
    --cc=david-b@pacbell.net \
    --cc=hskinnemoen@atmel.com \
    --cc=jamey.hicks@hp.com \
    --cc=khilman@mvista.com \
    --cc=lethal@linux-sh.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nico@cam.org \
    --cc=rmk@arm.linux.org.uk \
    --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 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.