diff --git a/arch/arm/mach-at91/include/mach/at91rm9200.h b/arch/arm/mach-at91/include/mach/at91rm9200.h
index 3412df0f06c7..309039347c84 100644
--- a/arch/arm/mach-at91/include/mach/at91rm9200.h
+++ b/arch/arm/mach-at91/include/mach/at91rm9200.h
@@ -5,8 +5,6 @@
 #ifndef __AT91RM9200_H__
 #define __AT91RM9200_H__
 
-#define CONFIG_AT91_GPIO	/* and require always gpio features */
-
 /* Periperial Identifiers */
 
 #define ATMEL_ID_SYS	1	/* System Peripheral */
diff --git a/configs/at91rm9200ek_defconfig b/configs/at91rm9200ek_defconfig
index 0b025911d69c..2aaf87904562 100644
--- a/configs/at91rm9200ek_defconfig
+++ b/configs/at91rm9200ek_defconfig
@@ -22,6 +22,7 @@ CONFIG_CMD_PING=y
 CONFIG_CMD_FAT=y
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_ENV_ADDR=0x10040000
+CONFIG_AT91_GPIO=y
 # CONFIG_MMC is not set
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
diff --git a/configs/at91rm9200ek_ram_defconfig b/configs/at91rm9200ek_ram_defconfig
index 09c996b8b225..9d2fc473430b 100644
--- a/configs/at91rm9200ek_ram_defconfig
+++ b/configs/at91rm9200ek_ram_defconfig
@@ -23,6 +23,7 @@ CONFIG_CMD_PING=y
 CONFIG_CMD_FAT=y
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_ENV_ADDR=0x10040000
+CONFIG_AT91_GPIO=y
 # CONFIG_MMC is not set
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_FLASH_CFI_DRIVER=y
diff --git a/configs/axm_defconfig b/configs/axm_defconfig
index 78e6c8d34569..1615d8af0eba 100644
--- a/configs/axm_defconfig
+++ b/configs/axm_defconfig
@@ -58,6 +58,7 @@ CONFIG_BLK=y
 CONFIG_HAVE_BLOCK_DEVICE=y
 CONFIG_CLK=y
 CONFIG_CLK_AT91=y
+CONFIG_AT91_GPIO=y
 # CONFIG_MMC is not set
 CONFIG_MTD=y
 CONFIG_MTD_RAW_NAND=y
diff --git a/configs/corvus_defconfig b/configs/corvus_defconfig
index 0eedaa93667a..c6e5955bf329 100644
--- a/configs/corvus_defconfig
+++ b/configs/corvus_defconfig
@@ -48,6 +48,7 @@ CONFIG_BLK=y
 CONFIG_CLK=y
 CONFIG_CLK_AT91=y
 CONFIG_DFU_NAND=y
+CONFIG_AT91_GPIO=y
 # CONFIG_MMC is not set
 CONFIG_MTD=y
 CONFIG_MTD_RAW_NAND=y
diff --git a/configs/gurnard_defconfig b/configs/gurnard_defconfig
index 0d1a46315bd3..a679c0f6700b 100644
--- a/configs/gurnard_defconfig
+++ b/configs/gurnard_defconfig
@@ -32,6 +32,7 @@ CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="at91sam9g45-gurnard"
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+CONFIG_AT91_GPIO=y
 CONFIG_MTD=y
 CONFIG_MTD_RAW_NAND=y
 # CONFIG_SYS_NAND_USE_FLASH_BBT is not set
diff --git a/configs/picosam9g45_defconfig b/configs/picosam9g45_defconfig
index 0157f5172e13..2921f2dfd4f7 100644
--- a/configs/picosam9g45_defconfig
+++ b/configs/picosam9g45_defconfig
@@ -39,6 +39,7 @@ CONFIG_ENV_IS_IN_FAT=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
 CONFIG_SPL_DM=y
+CONFIG_AT91_GPIO=y
 CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
diff --git a/configs/smartweb_defconfig b/configs/smartweb_defconfig
index 8f9a19f695ba..4545c7075b3f 100644
--- a/configs/smartweb_defconfig
+++ b/configs/smartweb_defconfig
@@ -49,6 +49,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_CLK=y
 CONFIG_CLK_AT91=y
 CONFIG_DFU_NAND=y
+CONFIG_AT91_GPIO=y
 # CONFIG_MMC is not set
 CONFIG_MTD=y
 CONFIG_MTD_RAW_NAND=y
diff --git a/configs/snapper9260_defconfig b/configs/snapper9260_defconfig
index c684e2b20a11..9e44395f03f0 100644
--- a/configs/snapper9260_defconfig
+++ b/configs/snapper9260_defconfig
@@ -30,6 +30,7 @@ CONFIG_CMD_PING=y
 CONFIG_CMD_FAT=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+CONFIG_AT91_GPIO=y
 CONFIG_CMD_PCA953X=y
 # CONFIG_MMC is not set
 CONFIG_MTD=y
diff --git a/configs/snapper9g20_defconfig b/configs/snapper9g20_defconfig
index 3ef091fab48f..e1c5c2ef4c1f 100644
--- a/configs/snapper9g20_defconfig
+++ b/configs/snapper9g20_defconfig
@@ -29,6 +29,7 @@ CONFIG_CMD_PING=y
 CONFIG_CMD_FAT=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+CONFIG_AT91_GPIO=y
 CONFIG_CMD_PCA953X=y
 # CONFIG_MMC is not set
 CONFIG_MTD=y
diff --git a/configs/taurus_defconfig b/configs/taurus_defconfig
index d9a2d61ecb60..16a804b879f0 100644
--- a/configs/taurus_defconfig
+++ b/configs/taurus_defconfig
@@ -66,6 +66,7 @@ CONFIG_BLK=y
 CONFIG_CLK=y
 CONFIG_CLK_AT91=y
 CONFIG_DFU_NAND=y
+CONFIG_AT91_GPIO=y
 # CONFIG_MMC is not set
 CONFIG_MTD=y
 CONFIG_MTD_RAW_NAND=y
diff --git a/configs/vinco_defconfig b/configs/vinco_defconfig
index 2684324cace6..8ca7556772b8 100644
--- a/configs/vinco_defconfig
+++ b/configs/vinco_defconfig
@@ -31,6 +31,7 @@ CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="at91-vinco"
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+CONFIG_AT91_GPIO=y
 CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_SPI_FLASH=y
 CONFIG_SF_DEFAULT_MODE=0
diff --git a/configs/wb45n_defconfig b/configs/wb45n_defconfig
index 5728cfb45481..d770e007a655 100644
--- a/configs/wb45n_defconfig
+++ b/configs/wb45n_defconfig
@@ -33,6 +33,7 @@ CONFIG_CMD_MTDPARTS=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+CONFIG_AT91_GPIO=y
 CONFIG_MTD=y
 CONFIG_MTD_RAW_NAND=y
 # CONFIG_SYS_NAND_USE_FLASH_BBT is not set
diff --git a/configs/wb50n_defconfig b/configs/wb50n_defconfig
index 86a8549406bf..e764c303d069 100644
--- a/configs/wb50n_defconfig
+++ b/configs/wb50n_defconfig
@@ -33,6 +33,7 @@ CONFIG_ENV_IS_IN_NAND=y
 CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
+CONFIG_AT91_GPIO=y
 CONFIG_MTD=y
 CONFIG_MTD_RAW_NAND=y
 # CONFIG_SYS_NAND_USE_FLASH_BBT is not set
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index d87f6cc10517..af608b7b0ef1 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -77,7 +77,6 @@ config DWAPB_GPIO
 
 config AT91_GPIO
 	bool "AT91 PIO GPIO driver"
-	depends on DM_GPIO
 	default n
 	help
 	  Say yes here to select AT91 PIO GPIO driver. AT91 PIO
diff --git a/include/configs/at91-sama5_common.h b/include/configs/at91-sama5_common.h
index 624b05ad08ce..53629743d9d4 100644
--- a/include/configs/at91-sama5_common.h
+++ b/include/configs/at91-sama5_common.h
@@ -19,11 +19,6 @@
 #define CONFIG_SKIP_LOWLEVEL_INIT
 #endif
 
-/* general purpose I/O */
-#if !CONFIG_IS_ENABLED(DM_GPIO)
-#define CONFIG_AT91_GPIO
-#endif
-
 /*
  * BOOTP options
  */
diff --git a/include/configs/corvus.h b/include/configs/corvus.h
index e9064a200d32..1dc946d78990 100644
--- a/include/configs/corvus.h
+++ b/include/configs/corvus.h
@@ -36,7 +36,6 @@
 
 /* general purpose I/O */
 #define CONFIG_ATMEL_LEGACY		/* required until (g)pio is fixed */
-#define CONFIG_AT91_GPIO
 #define CONFIG_AT91_GPIO_PULLUP	1	/* keep pullups on peripheral pins */
 
 /* serial console */
diff --git a/include/configs/picosam9g45.h b/include/configs/picosam9g45.h
index 2747c0cb9307..94d9111cbaae 100644
--- a/include/configs/picosam9g45.h
+++ b/include/configs/picosam9g45.h
@@ -28,7 +28,6 @@
 
 /* general purpose I/O */
 #define CONFIG_ATMEL_LEGACY		/* required until (g)pio is fixed */
-#define CONFIG_AT91_GPIO
 #define CONFIG_AT91_GPIO_PULLUP	1	/* keep pullups on peripheral pins */
 
 /* serial console */
diff --git a/include/configs/smartweb.h b/include/configs/smartweb.h
index aacdd1263e7b..8c964087131d 100644
--- a/include/configs/smartweb.h
+++ b/include/configs/smartweb.h
@@ -85,7 +85,6 @@
 
 /* general purpose I/O */
 #define CONFIG_ATMEL_LEGACY		/* required until (g)pio is fixed */
-#define CONFIG_AT91_GPIO		/* enable the GPIO features */
 #define CONFIG_AT91_GPIO_PULLUP	1	/* keep pullups on peripheral pins */
 
 /* serial console */
diff --git a/include/configs/snapper9260.h b/include/configs/snapper9260.h
index 35cd7f69c1d8..32dd544a6c75 100644
--- a/include/configs/snapper9260.h
+++ b/include/configs/snapper9260.h
@@ -62,7 +62,6 @@
 
 /* GPIOs and IO expander */
 #define CONFIG_ATMEL_LEGACY
-#define CONFIG_AT91_GPIO
 #define CONFIG_AT91_GPIO_PULLUP		1
 #define CONFIG_PCA953X
 #define CONFIG_SYS_I2C_PCA953X_ADDR	0x28
diff --git a/include/configs/snapper9g45.h b/include/configs/snapper9g45.h
index fcd35b715ce1..db4fd9be247f 100644
--- a/include/configs/snapper9g45.h
+++ b/include/configs/snapper9g45.h
@@ -60,7 +60,6 @@
 
 /* GPIOs and IO expander */
 #define CONFIG_ATMEL_LEGACY
-#define CONFIG_AT91_GPIO
 #define CONFIG_AT91_GPIO_PULLUP		1
 
 /* UARTs/Serial console */
diff --git a/include/configs/taurus.h b/include/configs/taurus.h
index 9990c9340a3d..b9b9292502e1 100644
--- a/include/configs/taurus.h
+++ b/include/configs/taurus.h
@@ -41,7 +41,6 @@
 
 /* general purpose I/O */
 #define CONFIG_ATMEL_LEGACY		/* required until (g)pio is fixed */
-#define CONFIG_AT91_GPIO
 #define CONFIG_AT91_GPIO_PULLUP	1	/* keep pullups on peripheral pins */
 
 #define CONFIG_USART_BASE		ATMEL_BASE_DBGU
diff --git a/include/configs/wb45n.h b/include/configs/wb45n.h
index d256ce8e4b9b..f13ad112f793 100644
--- a/include/configs/wb45n.h
+++ b/include/configs/wb45n.h
@@ -20,7 +20,6 @@
 
 /* general purpose I/O */
 #define CONFIG_ATMEL_LEGACY	/* required until (g)pio is fixed */
-#define CONFIG_AT91_GPIO
 
 /* serial console */
 #define CONFIG_ATMEL_USART
diff --git a/include/configs/wb50n.h b/include/configs/wb50n.h
index bb4deeac9b7d..ffcc9877eddb 100644
--- a/include/configs/wb50n.h
+++ b/include/configs/wb50n.h
@@ -20,9 +20,6 @@
 #define CONFIG_SKIP_LOWLEVEL_INIT
 #endif
 
-/* general purpose I/O */
-#define CONFIG_AT91_GPIO
-
 /* serial console */
 #define CONFIG_ATMEL_USART
 #define CONFIG_USART_BASE       ATMEL_BASE_DBGU
