Re: [PATCH RFC] x86: Add user configurable GPIO-lib support

Ingo Molnar
2008-07-01T11:05:13Z

* Michael Buesch <mb@bu3sch.de> wrote:

> So this adds user-configurable GPIO support through gpiolib on
> subarchitectures that do not implement a GPIO implementation, yet.
> Currently that's everything except X86_RDC321X.
>
> The advantage of this is to make it possible to use generic PCI (or
> other bus) GPIO extention cards in standard PCs through the standard
> GPIO API.
>
> If another subarch implements its own GPIO, it needs to add itself as
> an inverted dependency to GPIO_USERSELECTION to make sure the user
> does not enable two GPIO API implementations.
>
> About the asm-x86/gpio.h:
> I'm not sure what this <gpio.h> include currently is.
> Can somebody explain that to me? Where is this supposed
> to include a gpio.h file from?
>
> What's your opinion on this?

( i've Cc:-ed Florian on this who's maintaining the RDC R-321X bits. )

The longer-term goal is that we'd like to remove the explicit RDC
sub-arch and just support such systems out of box on x86.

We are almost there - Florian already moved a few special drivers out of
arch/x86, the only missing piece is this complication in
include/asm-x86/timex.h:

#ifdef CONFIG_X86_ELAN
# define PIT_TICK_RATE 1189200 /* AMD Elan has different frequency! */
#elif defined(CONFIG_X86_RDC321X)
# define PIT_TICK_RATE 1041667 /* Underlying HZ for R8610 */
#else
# define PIT_TICK_RATE 1193182 /* Underlying HZ */
#endif

... once that is made dynamic/quirkable we are there.

And we could even remove the AMD Elan subarch that way: AFAICS it's a
486 compatible with an A20 quirk and this PIT_TICK quirk.

... and if we do that we'll also remove these:

select GENERIC_GPIO
select LEDS_CLASS
select LEDS_GPIO
select NEW_LEDS

... and thus perhaps your GPIO_USERSELECTION patch should move into
drivers/ and be generally accessible, not special to x86?

Ingo