Re: [PATCH v3 1/2] ARM: hip04: set ARCH_NR_GPIO to 128

Arnd Bergmann
2014-12-02T08:42:31Z

On Tuesday 02 December 2014 14:43:51 Zhou Wang wrote:
>
> how about a patch like this, we read the base from the dts here.
>
> diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
> index e8e98ca..0c40f53 100644
> --- a/drivers/gpio/gpiolib.c
> +++ b/drivers/gpio/gpiolib.c
> @@ -107,11 +107,16 @@ struct gpio_chip *gpiod_to_chip(const struct
> gpio_desc *desc)
> EXPORT_SYMBOL_GPL(gpiod_to_chip);
>
> /* dynamic allocation of GPIOs, e.g. on a hotplugged device */
> -static int gpiochip_find_base(int ngpio)
> +static int gpiochip_find_base(struct gpio_chip *gpio_chip)
> {
> struct gpio_chip *chip;
> + int ngpio = gpio_chip->ngpio;
> int base = ARCH_NR_GPIOS - ngpio;
>
> + /* just prototype */
> + if (!of_property_read_u32(gpio_chip->dev->of_node, "base", &base))
> + return base;
> +

I don't think that would be appropriate. The concept of a gpio number
base is implementation specific to current Linux versions and we want
to get rid of that in the future, so it should not be part of an
OS-independent spec.

Arnd