lkml.org 
[lkml]   [2006]   [Nov]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [patch/rfc 2.6.19-rc5] arch-neutral GPIO calls
David Brownell wrote:

>On Monday 13 November 2006 12:26 pm, Bill Gatliff wrote:
>
>
>
>>>Nah; look at arch/arm/plat-omap/gpio.c and ignore the mess, but observe
>>>that what you see there is essentially a bunch of "gpio controller"
>>>classes using the ugly "switch(type)" dispatch scheme instead of the
>>>prettier "type->op()" dispatch scheme. All that stuff needs to be
>>>cleaner, but for now it'd suffice to add a new FPGA typecode.
>>>
>>>
>>Agreed. But if we add to the machine descriptor, then not only do you
>>not need to touch arch-omap/gpio.c, but you can take that switch
>>statement out, too. Just one less chunk of code to tweak when a new
>>platform is supported.
>>
>>
>
>Do non-ARM platforms have board/machine descriptors on Linux, though?
>I thought most didn't ...
>
>


PPC does. See arch/ppc/platforms/chestnut.c:platform_init().

>One could come up with an implementation that uses GPIO numbers
>as indices into a descriptor array, and using board-specific
>initialization of that array ... just like with IRQs and irq_chip.
>
>That could lead to heavier weight implementations than I'd prefer
>to see (since GPIOs are a very light weight notion!), but it'd
>certainly provide a more reusable way to add GPIO controllers.
>
>All behind the API I proposed, note -- no changes needed.
>
>


Indeed. I'm all for lightweight, but especially for nice and neat code.


b.g.

--
Bill Gatliff
bgat@billgatliff.com

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-11-13 22:01    [W:0.081 / U:0.128 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site