[PATCH] Make MMCI driver compile without gpiolib

Russell King - ARM Linux linux at arm.linux.org.uk
Mon Sep 28 16:03:26 EDT 2009


On Mon, Sep 28, 2009 at 09:00:01PM +0200, Linus Walleij wrote:
> Hm thinking back at this:
> 
> 2009/9/27 Russell King - ARM Linux <linux at arm.linux.org.uk>:
> 
> > The real problem is that U300 doesn't implement gpio_is_valid() -
> > which is part of the GPIO API and not specific to GPIOLIB.
> 
> None of the GPIO drivers in drivers/gpio implement gpio_is_valid()
> though they all select GPIOLIB which in turn selects GENERIC_GPIO.

include/asm-generic/gpio.h:

#ifdef CONFIG_GPIOLIB
...
/* Platforms may implement their GPIO interface with library code,
 * at a small performance cost for non-inlined operations and some
 * extra memory (for code and for per-GPIO table entries).
 *
 * While the GPIO programming interface defines valid GPIO numbers
 * to be in the range 0..MAX_INT, this library restricts them to the
 * smaller range 0..ARCH_NR_GPIOS-1.
 */

#ifndef ARCH_NR_GPIOS
#define ARCH_NR_GPIOS           256
#endif

static inline int gpio_is_valid(int number)
{
        /* only some non-negative numbers are valid */
        return ((unsigned)number) < ARCH_NR_GPIOS;
}

So, with gpiolib enabled, gpio_is_valid() is predefined assuming that
GPIOs between 0..ARCH_NR_GPIOS are valid.



More information about the linux-arm-kernel mailing list