diff --git a/arch/x86/cpu/baytrail/Kconfig b/arch/x86/cpu/baytrail/Kconfig
index 7ea43b9521e37dfeaf62cf4778e4e4f61ce16dd3..052d77f8b305a25093524100bee06d6eba41e8e8 100644
--- a/arch/x86/cpu/baytrail/Kconfig
+++ b/arch/x86/cpu/baytrail/Kconfig
@@ -12,6 +12,7 @@ config INTEL_BAYTRAIL
 	imply ENABLE_MRC_CACHE
 	imply ENV_IS_IN_SPI_FLASH
 	imply ICH_SPI
+	imply INTEL_ICH6_GPIO
 	imply MMC
 	imply MMC_PCI
 	imply MMC_SDHCI
diff --git a/arch/x86/cpu/ivybridge/Kconfig b/arch/x86/cpu/ivybridge/Kconfig
index 5630da06ee2bc48cb588e01e78df112e6676f6f4..7bac4c5c35bc492a77be84e00e93eed184b37bb8 100644
--- a/arch/x86/cpu/ivybridge/Kconfig
+++ b/arch/x86/cpu/ivybridge/Kconfig
@@ -12,6 +12,7 @@ config NORTHBRIDGE_INTEL_IVYBRIDGE
 	imply ENABLE_MRC_CACHE
 	imply ENV_IS_IN_SPI_FLASH
 	imply ICH_SPI
+	imply INTEL_ICH6_GPIO
 	imply SCSI
 	imply SPI_FLASH
 	imply USB
diff --git a/arch/x86/cpu/quark/Kconfig b/arch/x86/cpu/quark/Kconfig
index ce0c454a1380f538cf76d337e0b6525f833d4915..7ec46e95ef79e0a16b9c70ee5c8f74fa04a0651c 100644
--- a/arch/x86/cpu/quark/Kconfig
+++ b/arch/x86/cpu/quark/Kconfig
@@ -13,6 +13,7 @@ config INTEL_QUARK
 	imply ENV_IS_IN_SPI_FLASH
 	imply ETH_DESIGNWARE
 	imply ICH_SPI
+	imply INTEL_ICH6_GPIO
 	imply MMC
 	imply MMC_PCI
 	imply MMC_SDHCI
diff --git a/arch/x86/cpu/queensbay/Kconfig b/arch/x86/cpu/queensbay/Kconfig
index 9b9c75616783d37420b87cc96da4fd3f5b6f0849..80b6bc52c0cd7ae8fd1421fa0bbbb75f5805f0e8 100644
--- a/arch/x86/cpu/queensbay/Kconfig
+++ b/arch/x86/cpu/queensbay/Kconfig
@@ -11,6 +11,7 @@ config INTEL_QUEENSBAY
 	select ARCH_EARLY_INIT_R
 	imply ENV_IS_IN_SPI_FLASH
 	imply ICH_SPI
+	imply INTEL_ICH6_GPIO
 	imply MMC
 	imply MMC_PCI
 	imply MMC_SDHCI
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index 15135e538dc6201b20a9d6c2a6eaa8c0930d59bd..63951e0dbead9e444e7310d55b0baf8b95014640 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -67,6 +67,12 @@ config INTEL_BROADWELL_GPIO
 	  driver from the common Intel ICH6 driver. It supports a total of
 	  95 GPIOs which can be configured from the device tree.
 
+config INTEL_ICH6_GPIO
+	bool "Intel ICH6 compatible legacy GPIO driver"
+	depends on DM_GPIO
+	help
+	  Say yes here to select Intel ICH6 compatible legacy GPIO driver.
+
 config IMX_RGPIO2P
 	bool "i.MX7ULP RGPIO2P driver"
 	depends on DM
diff --git a/include/configs/efi-x86.h b/include/configs/efi-x86.h
index f5331915e2f07d0de342fda711e9bcb99a1054b1..4a6b66507f3ba005bd99e433cff9cfb1db23c0d9 100644
--- a/include/configs/efi-x86.h
+++ b/include/configs/efi-x86.h
@@ -14,7 +14,6 @@
 #undef CONFIG_TPM_TIS_BASE_ADDRESS
 
 #undef CONFIG_SCSI_AHCI
-#undef CONFIG_INTEL_ICH6_GPIO
 #undef CONFIG_USB_EHCI_PCI
 
 #define CONFIG_STD_DEVICES_SETTINGS     "stdin=usbkbd,vga,serial\0" \
diff --git a/include/configs/qemu-x86.h b/include/configs/qemu-x86.h
index 64cbc807a68c9270163398f38b2d2be844133adc..033b5e2a046b0a01fac6569516a7fbcddf57e78f 100644
--- a/include/configs/qemu-x86.h
+++ b/include/configs/qemu-x86.h
@@ -44,9 +44,6 @@
 	{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH9_AHCI}
 #endif
 
-/* GPIO is not supported */
-#undef CONFIG_INTEL_ICH6_GPIO
-
 /* SPI is not supported */
 
 #define CONFIG_SPL_FRAMEWORK
diff --git a/include/configs/x86-common.h b/include/configs/x86-common.h
index aa1e505e6903e65ceed59172f558535cc026641b..a70fc9d4d9d6f7c891b5026dda66bf841d5b23e4 100644
--- a/include/configs/x86-common.h
+++ b/include/configs/x86-common.h
@@ -63,9 +63,6 @@
 
 #define CONFIG_SUPPORT_VFAT
 
-/* x86 GPIOs are accessed through a PCI device */
-#define CONFIG_INTEL_ICH6_GPIO
-
 /*-----------------------------------------------------------------------
  * Command line configuration.
  */
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index 3c7e49588f5fd8e17b512f365a9feb0d3c8bebf7..e630314926a71d4586ebe572563f003084979bc4 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -1154,7 +1154,6 @@ CONFIG_INI_MAX_LINE
 CONFIG_INI_MAX_NAME
 CONFIG_INI_MAX_SECTION
 CONFIG_INTEGRITY
-CONFIG_INTEL_ICH6_GPIO
 CONFIG_INTERRUPTS
 CONFIG_IO
 CONFIG_IO64