[PATCH v1 4/8] gpiolib: Get rid of ARCH_NR_GPIOS

Christophe Leroy christophe.leroy at csgroup.eu
Tue Aug 30 22:49:03 PDT 2022



Le 30/08/2022 à 22:18, Andy Shevchenko a écrit :
> On Mon, Aug 29, 2022 at 7:19 PM Christophe Leroy
> <christophe.leroy at csgroup.eu> wrote:
>>
>> Since commit 14e85c0e69d5 ("gpio: remove gpio_descs global array")
>> there is no limitation on the number of GPIOs that can be allocated
>> in the system since the allocation is fully dynamic.
>>
>> ARCH_NR_GPIOS is today only used in order to provide downwards
>> gpiobase allocation from that value, while static allocation is
>> performed upwards from 0. However that has the disadvantage of
>> limiting the number of GPIOs that can be registered in the system.
>>
>> To overcome this limitation without requiring each and every
>> platform to provide its 'best-guess' maximum number, rework the
>> allocation to allocate upwards, allowing approx 2 millions of
>> GPIOs.
>>
>> In order to still allow static allocation for legacy drivers, define
>> GPIO_DYNAMIC_BASE with the value 256 as the start for dynamic
>> allocation.
> 
> Not sure about 256, but I understand that this can only be the best guess.
> 

Well, it's already just a precaution. Linus W's expectation is that 
static ones are allocated at first, they should already be allocated 
when we start doing dynamic allocations so he was even thinking that we 
could have started at 0 already.

But I can start higher if you think it is safer, maybe at 512 which is 
the default ARCH_NR_GPIOS today.


More information about the linux-arm-kernel mailing list