diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 880a56ba90d8efff20de9f9b0be95fbefe25ba76..ce9cee5ada9e07d87137bdad9a586761deb5ae6b 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -669,11 +669,13 @@ config ARCH_MX8M
 config ARCH_MX25
 	bool "NXP MX25"
 	select CPU_ARM926EJS
+	imply MXC_GPIO
 
 config ARCH_MX7ULP
         bool "NXP MX7ULP"
         select CPU_V7
 	select ROM_UNIFIED_SECTIONS
+	imply MXC_GPIO
 
 config ARCH_MX7
 	bool "Freescale MX7"
@@ -683,6 +685,7 @@ config ARCH_MX7
 	select SYS_FSL_SEC_LE
 	select BOARD_EARLY_INIT_F
 	select ARCH_MISC_INIT
+	imply MXC_GPIO
 
 config ARCH_MX6
 	bool "Freescale MX6"
@@ -691,6 +694,7 @@ config ARCH_MX6
 	select SYS_FSL_SEC_COMPAT_4
 	select SYS_FSL_SEC_LE
 	select SYS_THUMB_BUILD if SPL
+	imply MXC_GPIO
 
 if ARCH_MX6
 config SPL_LDSCRIPT
@@ -701,6 +705,7 @@ config ARCH_MX5
 	bool "Freescale MX5"
 	select CPU_V7
 	select BOARD_EARLY_INIT_F
+	imply MXC_GPIO
 
 config ARCH_QEMU
 	bool "QEMU Virtual Platform"
diff --git a/configs/apf27_defconfig b/configs/apf27_defconfig
index 6949b711fda3b637c4bdb9af0b1acfa8363223c9..c2faead67ed5b4b6caf0b8de0691f9a1fb03ceff 100644
--- a/configs/apf27_defconfig
+++ b/configs/apf27_defconfig
@@ -33,6 +33,7 @@ CONFIG_CMD_UBI=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_FPGA_XILINX=y
 CONFIG_MMC_MXC=y
+CONFIG_MXC_GPIO=y
 CONFIG_NAND=y
 CONFIG_NAND_MXC=y
 CONFIG_SYS_NAND_BUSWIDTH_16BIT=y
diff --git a/configs/flea3_defconfig b/configs/flea3_defconfig
index 9f9d8ee26e49b522fe0c2780bc00690f75d42770..069f4421d4d743ada131a8b741926706aab3bc15 100644
--- a/configs/flea3_defconfig
+++ b/configs/flea3_defconfig
@@ -19,6 +19,7 @@ CONFIG_CMD_MTDPARTS=y
 CONFIG_MTDIDS_DEFAULT="nand0=mxc_nand,nor0=physmap-flash.0"
 CONFIG_MTDPARTS_DEFAULT="mtdparts=mxc_nand:50m(root1),32m(rootfb),64m(pcache),64m(app1),10m(app2),-(spool);physmap-flash.0:512k(u-boot),64k(env1),64k(env2),3776k(kernel1),3776k(kernel2)"
 CONFIG_ENV_IS_IN_FLASH=y
+CONFIG_MXC_GPIO=y
 # CONFIG_MMC is not set
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_NAND=y
diff --git a/configs/imx31_phycore_eet_defconfig b/configs/imx31_phycore_eet_defconfig
index 5defae827cb5f94bf3bf323e3d1d1910fab78703..e80791b148030ccd6b5579055839bf8282c9a6d6 100644
--- a/configs/imx31_phycore_eet_defconfig
+++ b/configs/imx31_phycore_eet_defconfig
@@ -12,6 +12,7 @@ CONFIG_CMD_PING=y
 CONFIG_CMD_BMP=y
 CONFIG_MTDPARTS_DEFAULT="mtdparts=physmap-flash.0:128k(uboot)ro,1536k(kernel),-(root)"
 CONFIG_ENV_IS_IN_EEPROM=y
+CONFIG_MXC_GPIO=y
 # CONFIG_MMC is not set
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_NETDEVICES=y
diff --git a/configs/mx31ads_defconfig b/configs/mx31ads_defconfig
index da716708c32e3d5ba8a183e27ef03fa18118e7b5..af812759aab17ffe86ec39c4b74c40cae77e5e49 100644
--- a/configs/mx31ads_defconfig
+++ b/configs/mx31ads_defconfig
@@ -7,5 +7,6 @@ CONFIG_CMD_DHCP=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_DATE=y
 CONFIG_ENV_IS_IN_FLASH=y
+CONFIG_MXC_GPIO=y
 # CONFIG_MMC is not set
 CONFIG_MTD_NOR_FLASH=y
diff --git a/configs/mx31pdk_defconfig b/configs/mx31pdk_defconfig
index ea6daf275469f9f5ca616ead110a1f8237a986a2..e4e955c10d2eea71af494f9ab25a5dd1b5966549 100644
--- a/configs/mx31pdk_defconfig
+++ b/configs/mx31pdk_defconfig
@@ -14,6 +14,7 @@ CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_DATE=y
 CONFIG_ENV_IS_IN_NAND=y
+CONFIG_MXC_GPIO=y
 # CONFIG_MMC is not set
 CONFIG_NAND=y
 CONFIG_NAND_MXC=y
diff --git a/configs/mx35pdk_defconfig b/configs/mx35pdk_defconfig
index 61d2013b78a440b7247b39fd7ff846780e1b88bb..e550d40bcebaf127065e1e85dcd2cd1a490f74c2 100644
--- a/configs/mx35pdk_defconfig
+++ b/configs/mx35pdk_defconfig
@@ -23,6 +23,7 @@ CONFIG_MTDPARTS_DEFAULT="mtdparts=mxc_nand:1m(boot),5m(linux),96m(root),8m(cfg),
 CONFIG_EFI_PARTITION=y
 # CONFIG_PARTITION_UUIDS is not set
 CONFIG_ENV_IS_IN_FLASH=y
+CONFIG_MXC_GPIO=y
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_NAND=y
 CONFIG_NAND_MXC=y
diff --git a/configs/mx7ulp_evk_defconfig b/configs/mx7ulp_evk_defconfig
index e344dd9d8d233845e7f8d3fb4e45e2727208a9e0..784e36ad4bd8d25c630bc7e8a5c290702e15e2dc 100644
--- a/configs/mx7ulp_evk_defconfig
+++ b/configs/mx7ulp_evk_defconfig
@@ -14,6 +14,7 @@ CONFIG_ENV_IS_IN_MMC=y
 CONFIG_DM=y
 CONFIG_DM_GPIO=y
 CONFIG_IMX_RGPIO2P=y
+# CONFIG_MXC_GPIO is not set
 CONFIG_DM_I2C=y
 CONFIG_DM_MMC=y
 CONFIG_PINCTRL=y
diff --git a/configs/mx7ulp_evk_plugin_defconfig b/configs/mx7ulp_evk_plugin_defconfig
index cb66bcaa41ec8b992621ba5ca7fd4d5ba2d116cf..9d323cffa72d0bee03bdb6e5c61370756db27a10 100644
--- a/configs/mx7ulp_evk_plugin_defconfig
+++ b/configs/mx7ulp_evk_plugin_defconfig
@@ -13,6 +13,7 @@ CONFIG_ENV_IS_IN_MMC=y
 CONFIG_DM=y
 CONFIG_DM_GPIO=y
 CONFIG_IMX_RGPIO2P=y
+# CONFIG_MXC_GPIO is not set
 CONFIG_DM_I2C=y
 CONFIG_DM_MMC=y
 CONFIG_PINCTRL=y
diff --git a/configs/woodburn_defconfig b/configs/woodburn_defconfig
index 4d50d4e2f7af8beda5d127f679aceab88b40a75f..da2b659a42b62958253ee7e4f449c9939f8a6240 100644
--- a/configs/woodburn_defconfig
+++ b/configs/woodburn_defconfig
@@ -24,6 +24,7 @@ CONFIG_MTDPARTS_DEFAULT="mtdparts=mxc_nand:50m(root1),32m(rootfb),64m(pcache),64
 CONFIG_EFI_PARTITION=y
 # CONFIG_PARTITION_UUIDS is not set
 CONFIG_ENV_IS_IN_FLASH=y
+CONFIG_MXC_GPIO=y
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_NAND=y
 CONFIG_NAND_MXC=y
diff --git a/configs/woodburn_sd_defconfig b/configs/woodburn_sd_defconfig
index 4fe5f2f1bf327f6583535e240bf4c4574c6bfd29..281019de96a157ac8394688d7e1dde575526c985 100644
--- a/configs/woodburn_sd_defconfig
+++ b/configs/woodburn_sd_defconfig
@@ -35,6 +35,7 @@ CONFIG_EFI_PARTITION=y
 # CONFIG_PARTITION_UUIDS is not set
 # CONFIG_SPL_PARTITION_UUIDS is not set
 CONFIG_ENV_IS_IN_FLASH=y
+CONFIG_MXC_GPIO=y
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_NAND=y
 CONFIG_NAND_MXC=y
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index b121979dddd7c42743b0e415513dba68a9111b13..34d4409116fc5b12816320f8b5a1ab8d8cd11a3d 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -108,6 +108,11 @@ config MSM_GPIO
 	  - APQ8016
 	  - MSM8916
 
+config MXC_GPIO
+	bool "Freescale/NXP MXC UART driver"
+	help
+	  Support GPIO controllers on various i.MX platforms
+
 config OMAP_GPIO
 	bool "TI OMAP GPIO driver"
 	depends on ARCH_OMAP2PLUS
diff --git a/include/configs/advantech_dms-ba16.h b/include/configs/advantech_dms-ba16.h
index 1c2dee7ee23c756a66dd17de9ec9dcb55dada00f..c70b6559e88693f7a37a2b7d60eac577e067c49a 100644
--- a/include/configs/advantech_dms-ba16.h
+++ b/include/configs/advantech_dms-ba16.h
@@ -33,7 +33,6 @@
 #define CONFIG_REVISION_TAG
 #define CONFIG_SYS_MALLOC_LEN		(10 * SZ_1M)
 
-#define CONFIG_MXC_GPIO
 #define CONFIG_MXC_UART
 
 #define CONFIG_MXC_OCOTP
diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h
index 18218c164d30fdff8ed4a0b37e88f892f1b84c60..7b4e67966233e0ce367cc7ed062d9bd70aefaad6 100644
--- a/include/configs/apalis_imx6.h
+++ b/include/configs/apalis_imx6.h
@@ -101,7 +101,6 @@
 #define CONFIG_DFU_MMC
 
 /* Miscellaneous commands */
-#define CONFIG_MXC_GPIO
 
 /* Framebuffer and LCD */
 #define CONFIG_VIDEO_IPUV3
diff --git a/include/configs/apf27.h b/include/configs/apf27.h
index 16345ca2b55ce0bbf8b4b71a6ecd5b97a47dcdde..ec0dea876bf0f54e9a9a5213287ecbf924f0ffb4 100644
--- a/include/configs/apf27.h
+++ b/include/configs/apf27.h
@@ -169,11 +169,6 @@
 #define CONFIG_CONS_INDEX		1
 #define CONFIG_MXC_UART_BASE		UART1_BASE
 
-/*
- * GPIO
- */
-#define CONFIG_MXC_GPIO
-
 /*
  * NOR
  */
diff --git a/include/configs/colibri_imx6.h b/include/configs/colibri_imx6.h
index 823034f4d850da64b733f7c29b901ef96860ff72..12124f3b5ee602f7633db55d8f1c96d5fef845e1 100644
--- a/include/configs/colibri_imx6.h
+++ b/include/configs/colibri_imx6.h
@@ -89,7 +89,6 @@
 #define CONFIG_DFU_MMC
 
 /* Miscellaneous commands */
-#define CONFIG_MXC_GPIO
 
 /* Framebuffer and LCD */
 #define CONFIG_VIDEO_IPUV3
diff --git a/include/configs/dh_imx6.h b/include/configs/dh_imx6.h
index 1f26ef4f8f5c2cd26ebae957e9929e49d7c1201d..7cda878ac74bc80a57560f2373e31054c7d229fd 100644
--- a/include/configs/dh_imx6.h
+++ b/include/configs/dh_imx6.h
@@ -64,9 +64,6 @@
 #define CONFIG_MXC_OCOTP
 #endif
 
-/* GPIO */
-#define CONFIG_MXC_GPIO
-
 /* I2C Configs */
 #define CONFIG_SYS_I2C
 #define CONFIG_SYS_I2C_MXC
diff --git a/include/configs/flea3.h b/include/configs/flea3.h
index e4d5f91b7a00bad0f639b8f7456cc9bd5f834144..370d0880cedbe4f677e9d413537da866633f68d4 100644
--- a/include/configs/flea3.h
+++ b/include/configs/flea3.h
@@ -48,7 +48,6 @@
 #define CONFIG_SYS_SPD_BUS_NUM		2 /* I2C3 */
 #define CONFIG_SYS_MXC_I2C3_SLAVE	0xfe
 #define CONFIG_MXC_SPI
-#define CONFIG_MXC_GPIO
 
 /*
  * UART (console)
diff --git a/include/configs/ge_bx50v3.h b/include/configs/ge_bx50v3.h
index 45a4700ff4fc2a864071ce4e6a4955aa66f698df..b6808dfb23cf450cb00217c5f500490f7cead447 100644
--- a/include/configs/ge_bx50v3.h
+++ b/include/configs/ge_bx50v3.h
@@ -50,7 +50,6 @@
 
 #define CONFIG_LAST_STAGE_INIT
 
-#define CONFIG_MXC_GPIO
 #define CONFIG_MXC_UART
 
 #define CONFIG_MXC_OCOTP
diff --git a/include/configs/imx27lite-common.h b/include/configs/imx27lite-common.h
index 9596f0bbe2434caca2a9526a794c3e6fdb44b565..f83d9094402c35f20088327e90bd499ee3fa4d75 100644
--- a/include/configs/imx27lite-common.h
+++ b/include/configs/imx27lite-common.h
@@ -131,11 +131,6 @@
 #define CONFIG_JFFS2_NAND
 #define CONFIG_MXC_NAND_HWECC
 
-/*
- * GPIO
- */
-#define CONFIG_MXC_GPIO
-
 /*
  * U-Boot general configuration
  */
diff --git a/include/configs/imx31_phycore.h b/include/configs/imx31_phycore.h
index c2d416031ba7295e7fd336ffa942d0e4431d8b22..751dfbcc6e6d31950a976786bd83c114392972e4 100644
--- a/include/configs/imx31_phycore.h
+++ b/include/configs/imx31_phycore.h
@@ -147,8 +147,6 @@
 
 /* EET platform additions */
 #ifdef CONFIG_TARGET_IMX31_PHYCORE_EET
-#define CONFIG_MXC_GPIO
-
 #define CONFIG_HARD_SPI
 #define CONFIG_MXC_SPI
 
diff --git a/include/configs/m53evk.h b/include/configs/m53evk.h
index 50379c7b21abf7912f75f66ebc7bb0f0bd55c73a..10d31175c7d37d05b905949243c967b09da58062 100644
--- a/include/configs/m53evk.h
+++ b/include/configs/m53evk.h
@@ -8,8 +8,6 @@
 #ifndef __M53EVK_CONFIG_H__
 #define __M53EVK_CONFIG_H__
 
-#define CONFIG_MXC_GPIO
-
 #include <asm/arch/imx-regs.h>
 
 #define CONFIG_REVISION_TAG
diff --git a/include/configs/mx25pdk.h b/include/configs/mx25pdk.h
index f82c4ccbde6c0fbe7c2593e759db04f8e63dda65..8661d0f148f09dd0dd079ffb24e6e1b1aea5a274 100644
--- a/include/configs/mx25pdk.h
+++ b/include/configs/mx25pdk.h
@@ -12,7 +12,6 @@
 /* High Level Configuration Options */
 
 #define CONFIG_SYS_TEXT_BASE		0x81200000
-#define CONFIG_MXC_GPIO
 #define CONFIG_SYS_FSL_CLK
 
 #define CONFIG_SYS_TIMER_RATE		32768
diff --git a/include/configs/mx31ads.h b/include/configs/mx31ads.h
index 18ee355e2eb30dbfd213beea01776fde9ce4df6f..246e0cb534b33effc7d03aff94da68fdc90f60ee 100644
--- a/include/configs/mx31ads.h
+++ b/include/configs/mx31ads.h
@@ -38,7 +38,6 @@
 #define CONFIG_MXC_SPI		1
 #define CONFIG_DEFAULT_SPI_BUS	1
 #define CONFIG_DEFAULT_SPI_MODE	(SPI_MODE_0 | SPI_CS_HIGH)
-#define CONFIG_MXC_GPIO
 
 /* PMIC Controller */
 #define CONFIG_POWER
diff --git a/include/configs/mx31pdk.h b/include/configs/mx31pdk.h
index 3259e82761d59793953912250fd2b0e6c48fc08b..6df3a985b3984561db46346bc2d784e9f1affe8a 100644
--- a/include/configs/mx31pdk.h
+++ b/include/configs/mx31pdk.h
@@ -46,7 +46,6 @@
 
 #define CONFIG_MXC_UART
 #define CONFIG_MXC_UART_BASE	UART1_BASE
-#define CONFIG_MXC_GPIO
 
 #define CONFIG_HARD_SPI
 #define CONFIG_MXC_SPI
diff --git a/include/configs/mx35pdk.h b/include/configs/mx35pdk.h
index 6a334cb730c4ce2dd60229d271400eee6acbdada..df455bfa4768fca63599cfc49cde3d3f0f8323c9 100644
--- a/include/configs/mx35pdk.h
+++ b/include/configs/mx35pdk.h
@@ -42,7 +42,6 @@
 #define CONFIG_SYS_I2C_MXC_I2C2		/* enable I2C bus 2 */
 #define CONFIG_SYS_I2C_MXC_I2C3		/* enable I2C bus 3 */
 #define CONFIG_MXC_SPI
-#define CONFIG_MXC_GPIO
 
 /*
  * PMIC Configs
diff --git a/include/configs/mx51evk.h b/include/configs/mx51evk.h
index 3ecb92c27da83072027da3c083729eca0aa95fa2..8c327374a967418dd06e6537ccd541cd4aeee714 100644
--- a/include/configs/mx51evk.h
+++ b/include/configs/mx51evk.h
@@ -36,7 +36,6 @@
 
 #define CONFIG_MXC_UART
 #define CONFIG_MXC_UART_BASE	UART1_BASE
-#define CONFIG_MXC_GPIO
 
 /*
  * SPI Configs
diff --git a/include/configs/mx53ard.h b/include/configs/mx53ard.h
index 985109e5c98f41545527f4bd2cc7087b1466445b..523f5077634536664b179c389226304e579fd0d5 100644
--- a/include/configs/mx53ard.h
+++ b/include/configs/mx53ard.h
@@ -23,8 +23,6 @@
 /* Size of malloc() pool */
 #define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + 2 * 1024 * 1024)
 
-#define CONFIG_MXC_GPIO
-
 #define CONFIG_SYS_MAX_NAND_DEVICE	1
 #define CONFIG_SYS_NAND_BASE		NFC_BASE_ADDR_AXI
 #define CONFIG_MXC_NAND_REGS_BASE	NFC_BASE_ADDR_AXI
diff --git a/include/configs/mx53cx9020.h b/include/configs/mx53cx9020.h
index ccb1a4a60973d6c812aa7f5649ba3cd668474327..1929c68cb945b76b43aabd38ec27b34d639bd5b7 100644
--- a/include/configs/mx53cx9020.h
+++ b/include/configs/mx53cx9020.h
@@ -24,7 +24,6 @@
 /* Size of malloc() pool */
 #define CONFIG_SYS_MALLOC_LEN		(10 * 1024 * 1024)
 
-#define CONFIG_MXC_GPIO
 #define CONFIG_REVISION_TAG
 
 #define CONFIG_MXC_UART_BASE UART2_BASE
diff --git a/include/configs/mx53evk.h b/include/configs/mx53evk.h
index 1bddb37bbb9fffce49e286364d52ec84066459a4..e199175b5eb699a2ee2ca4c7c4de078e9ad06b9b 100644
--- a/include/configs/mx53evk.h
+++ b/include/configs/mx53evk.h
@@ -23,8 +23,6 @@
 /* Size of malloc() pool */
 #define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + 2 * 1024 * 1024)
 
-#define CONFIG_MXC_GPIO
-
 #define CONFIG_MXC_UART
 #define CONFIG_MXC_UART_BASE	UART1_BASE
 
diff --git a/include/configs/mx53loco.h b/include/configs/mx53loco.h
index 323aa3d907256edf36c9cfc4068d2e34420c5007..e2490ce50adf2105278db3310e26674bce2ea19e 100644
--- a/include/configs/mx53loco.h
+++ b/include/configs/mx53loco.h
@@ -23,7 +23,6 @@
 /* Size of malloc() pool */
 #define CONFIG_SYS_MALLOC_LEN		(10 * 1024 * 1024)
 
-#define CONFIG_MXC_GPIO
 #define CONFIG_REVISION_TAG
 
 #define CONFIG_MXC_UART
diff --git a/include/configs/mx53ppd.h b/include/configs/mx53ppd.h
index 92dd845c70edaf7f96cf04abcf820f51393e4f21..05c3d529af94f745385a0b4d430df459fb1bb181 100644
--- a/include/configs/mx53ppd.h
+++ b/include/configs/mx53ppd.h
@@ -29,7 +29,6 @@
 
 #define CONFIG_MISC_INIT_R
 #define CONFIG_BOARD_LATE_INIT
-#define CONFIG_MXC_GPIO
 #define CONFIG_REVISION_TAG
 
 #define CONFIG_MXC_UART
diff --git a/include/configs/mx53smd.h b/include/configs/mx53smd.h
index 216a0d55b9d5752d393a474b5e8f1f924ffb1a3b..399b5236e0d1950dbae2ff0690bb308f9438adf4 100644
--- a/include/configs/mx53smd.h
+++ b/include/configs/mx53smd.h
@@ -23,8 +23,6 @@
 /* Size of malloc() pool */
 #define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + 2 * 1024 * 1024)
 
-#define CONFIG_MXC_GPIO
-
 #define CONFIG_MXC_UART
 #define CONFIG_MXC_UART_BASE	UART1_BASE
 
diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
index ddc645c136500650abab7b7695f0928a60e0d282..7d294143078ee0e9f7c2e004d86248f6fd2a2999 100644
--- a/include/configs/mx6_common.h
+++ b/include/configs/mx6_common.h
@@ -69,9 +69,6 @@
 #define CONFIG_SYS_CBSIZE	512
 #define CONFIG_SYS_MAXARGS	32
 
-/* GPIO */
-#define CONFIG_MXC_GPIO
-
 /* MMC */
 #define CONFIG_BOUNCE_BUFFER
 #define CONFIG_FSL_ESDHC
diff --git a/include/configs/mx6ullevk.h b/include/configs/mx6ullevk.h
index 6a48742fd0aaffe87ee8c8eebc164ebed8ce462d..21429134ba2ebce985de2f4af838af6b05a71329 100644
--- a/include/configs/mx6ullevk.h
+++ b/include/configs/mx6ullevk.h
@@ -27,8 +27,6 @@
 /* Size of malloc() pool */
 #define CONFIG_SYS_MALLOC_LEN		(16 * SZ_1M)
 
-#define CONFIG_MXC_GPIO
-
 #define CONFIG_MXC_UART
 #define CONFIG_MXC_UART_BASE		UART1_BASE
 
diff --git a/include/configs/mx7_common.h b/include/configs/mx7_common.h
index 8eb0a8078d3ef8445d88279d84eaa95051f514c3..b4fc3ee78a217bb9785f75624d6c6e4501ed482f 100644
--- a/include/configs/mx7_common.h
+++ b/include/configs/mx7_common.h
@@ -45,9 +45,6 @@
 #ifndef CONFIG_SYS_DCACHE_OFF
 #endif
 
-/* GPIO */
-#define CONFIG_MXC_GPIO
-
 /* UART */
 #define CONFIG_MXC_UART
 
diff --git a/include/configs/ts4800.h b/include/configs/ts4800.h
index ebfbb66bab5b1168033ad8170a84155e30805b15..5b8bac841c2177295d6624bae70ace8efe724670 100644
--- a/include/configs/ts4800.h
+++ b/include/configs/ts4800.h
@@ -43,7 +43,6 @@
 
 #define CONFIG_MXC_UART
 #define CONFIG_MXC_UART_BASE	UART1_BASE
-#define CONFIG_MXC_GPIO
 
 /*
  * SPI Configs
diff --git a/include/configs/usbarmory.h b/include/configs/usbarmory.h
index 4bebc5959cccd581853b13ef41de9d5f753aa953..3eacf2af6172dad26206155bb62d7ed2f5d9f2c6 100644
--- a/include/configs/usbarmory.h
+++ b/include/configs/usbarmory.h
@@ -12,7 +12,6 @@
 #define __CONFIG_H
 
 #define CONFIG_SYS_FSL_CLK
-#define CONFIG_MXC_GPIO
 
 #include <asm/arch/imx-regs.h>
 
diff --git a/include/configs/woodburn_common.h b/include/configs/woodburn_common.h
index 7ab60fd7ce1f7392b6e2c44f685d8bb1aa8a22d6..5b94a3f6cfebf8b9c42be2f0968feab209b3e645 100644
--- a/include/configs/woodburn_common.h
+++ b/include/configs/woodburn_common.h
@@ -44,7 +44,6 @@
 #define CONFIG_SYS_I2C_MXC_I2C3		/* enable I2C bus 3 */
 #define CONFIG_SYS_SPD_BUS_NUM		0
 #define CONFIG_MXC_SPI
-#define CONFIG_MXC_GPIO
 
 /* PMIC Controller */
 #define CONFIG_POWER
@@ -76,8 +75,6 @@
 #define CONFIG_BOOTP_GATEWAY
 #define CONFIG_BOOTP_DNS
 
-#define CONFIG_MXC_GPIO
-
 #define CONFIG_NET_RETRY_COUNT	100
 
 
diff --git a/include/configs/zmx25.h b/include/configs/zmx25.h
index f9783a21c2ed5f590ecd823c90e24467668feff3..00f80380bb6055b6bc6cca49448b6aaeb3784111 100644
--- a/include/configs/zmx25.h
+++ b/include/configs/zmx25.h
@@ -37,11 +37,6 @@
  * Hardware drivers
  */
 
-/*
- * GPIO
- */
-#define CONFIG_MXC_GPIO
-
 /*
  * Serial
  */
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index ef83c00c1b620b7fa0001d9d74513dea8e919922..d35f756b7fe42d27bf196f5a3e211d5183186afb 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -1428,7 +1428,6 @@ CONFIG_MX6DQ_LPDDR2
 CONFIG_MX6SX_SABRESD_REVA
 CONFIG_MX6UL_14X14_EVK_EMMC_REWORK
 CONFIG_MXC_EPDC
-CONFIG_MXC_GPIO
 CONFIG_MXC_GPT_HCLK
 CONFIG_MXC_MCI_REGS_BASE
 CONFIG_MXC_NAND_HWECC