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 from 512 upwards, allowing approx 2 millions of GPIOs. In the meantime, add a warning for drivers how are still doing static allocation, so that in the future the static allocation gets removed completely and dynamic allocation can start at base 0. Main changes in v2: - Adding a patch to remove sta2x11 GPIO driver instead of modifying it - Moving the base of dynamic allocation from 256 to 512 because there are drivers allocating gpios as high as 400. Christophe Leroy (8): gpio: aggregator: Stop using ARCH_NR_GPIOS gpio: davinci: Stop using ARCH_NR_GPIOS gpiolib: Warn on drivers still using static gpiobase allocation gpiolib: Get rid of ARCH_NR_GPIOS Documentation: gpio: Remove text about ARCH_NR_GPIOS x86: Remove CONFIG_ARCH_NR_GPIO arm: Remove CONFIG_ARCH_NR_GPIO arm64: Remove CONFIG_ARCH_NR_GPIO Davide Ciminaghi (1): gpio: Remove sta2x11 GPIO driver Documentation/driver-api/gpio/legacy.rst | 5 - arch/arm/Kconfig | 21 -- arch/arm/include/asm/gpio.h | 1 - arch/arm64/Kconfig | 12 - arch/x86/Kconfig | 5 - drivers/gpio/Kconfig | 8 - drivers/gpio/Makefile | 1 - drivers/gpio/gpio-aggregator.c | 7 +- drivers/gpio/gpio-davinci.c | 3 - drivers/gpio/gpio-sta2x11.c | 411 ----------------------- drivers/gpio/gpiolib.c | 13 +- include/asm-generic/gpio.h | 55 ++- 12 files changed, 33 insertions(+), 509 deletions(-) delete mode 100644 drivers/gpio/gpio-sta2x11.c -- 2.37.1