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

Zhou Wang
2014-12-04T06:49:44Z

On 2014年12月02日 16:42, Arnd Bergmann wrote:
> 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
>
Got it. I will make a patch in which it finds base number of a GPIO
controller in a increasing order. Maybe it can get rid of ARCH_NR_GPIOS
in the future.

Thanks,
Zhou Wang