select ARCH_USE_CMPXCHG_LOCKREF
        select ARCH_SUPPORTS_ATOMIC_RMW
        select ARCH_SUPPORTS_NUMA_BALANCING
-       select ARCH_WANT_OPTIONAL_GPIOLIB
        select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
        select ARCH_WANT_FRAME_POINTERS
        select ARCH_HAS_UBSAN_SANITIZE_ALL
 
 
 config ARCH_BCM2835
        bool "Broadcom BCM2835 family"
-       select ARCH_REQUIRE_GPIOLIB
        select CLKSRC_OF
+       select GPIOLIB
        select PINCTRL
        select PINCTRL_BCM2835
        select ARM_AMBA
 config ARCH_BCM_IPROC
        bool "Broadcom iProc SoC Family"
        select COMMON_CLK_IPROC
+       select GPIOLIB
        select PINCTRL
-       select ARCH_REQUIRE_GPIOLIB
        help
          This enables support for Broadcom iProc based SoCs
 
 config ARCH_BERLIN
        bool "Marvell Berlin SoC Family"
-       select ARCH_REQUIRE_GPIOLIB
        select DW_APB_ICTL
+       select GPIOLIB
        select PINCTRL
        help
          This enables support for Marvell Berlin SoC Family
 config ARCH_ROCKCHIP
        bool "Rockchip Platforms"
        select ARCH_HAS_RESET_CONTROLLER
-       select ARCH_REQUIRE_GPIOLIB
+       select GPIOLIB
        select PINCTRL
        select PINCTRL_ROCKCHIP
        select ROCKCHIP_TIMER
 config ARCH_TEGRA
        bool "NVIDIA Tegra SoC Family"
        select ARCH_HAS_RESET_CONTROLLER
-       select ARCH_REQUIRE_GPIOLIB
        select CLKDEV_LOOKUP
        select CLKSRC_MMIO
        select CLKSRC_OF
        select GENERIC_CLOCKEVENTS
+       select GPIOLIB
        select HAVE_CLK
        select PINCTRL
        select RESET_CONTROLLER
 
 config ARCH_VEXPRESS
        bool "ARMv8 software model (Versatile Express)"
-       select ARCH_REQUIRE_GPIOLIB
        select COMMON_CLK_VERSATILE
+       select GPIOLIB
        select PM
        select PM_GENERIC_DOMAINS
        select POWER_RESET_VEXPRESS