Convert CONFIG_MXC_GPIO to Kconfig

This converts the following to Kconfig:
   CONFIG_MXC_GPIO

Signed-off-by: Adam Ford <aford173@gmail.com>
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 880a56b..ce9cee5 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -669,11 +669,13 @@
 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 @@
 	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 @@
 	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 @@
 	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 6949b71..c2faead 100644
--- a/configs/apf27_defconfig
+++ b/configs/apf27_defconfig
@@ -33,6 +33,7 @@
 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 9f9d8ee..069f442 100644
--- a/configs/flea3_defconfig
+++ b/configs/flea3_defconfig
@@ -19,6 +19,7 @@
 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 5defae8..e80791b 100644
--- a/configs/imx31_phycore_eet_defconfig
+++ b/configs/imx31_phycore_eet_defconfig
@@ -12,6 +12,7 @@
 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 da71670..af81275 100644
--- a/configs/mx31ads_defconfig
+++ b/configs/mx31ads_defconfig
@@ -7,5 +7,6 @@
 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 ea6daf2..e4e955c 100644
--- a/configs/mx31pdk_defconfig
+++ b/configs/mx31pdk_defconfig
@@ -14,6 +14,7 @@
 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 61d2013..e550d40 100644
--- a/configs/mx35pdk_defconfig
+++ b/configs/mx35pdk_defconfig
@@ -23,6 +23,7 @@
 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 e344dd9..784e36a 100644
--- a/configs/mx7ulp_evk_defconfig
+++ b/configs/mx7ulp_evk_defconfig
@@ -14,6 +14,7 @@
 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 cb66bca..9d323cf 100644
--- a/configs/mx7ulp_evk_plugin_defconfig
+++ b/configs/mx7ulp_evk_plugin_defconfig
@@ -13,6 +13,7 @@
 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 4d50d4e..da2b659 100644
--- a/configs/woodburn_defconfig
+++ b/configs/woodburn_defconfig
@@ -24,6 +24,7 @@
 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 4fe5f2f..281019d 100644
--- a/configs/woodburn_sd_defconfig
+++ b/configs/woodburn_sd_defconfig
@@ -35,6 +35,7 @@
 # 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 b121979..34d4409 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -108,6 +108,11 @@
 	  - 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 1c2dee7..c70b655 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 18218c1..7b4e679 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 16345ca..ec0dea8 100644
--- a/include/configs/apf27.h
+++ b/include/configs/apf27.h
@@ -170,11 +170,6 @@
 #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 823034f..12124f3 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 1f26ef4..7cda878 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 e4d5f91..370d088 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 45a4700..b6808df 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 9596f0b..f83d909 100644
--- a/include/configs/imx27lite-common.h
+++ b/include/configs/imx27lite-common.h
@@ -132,11 +132,6 @@
 #define CONFIG_MXC_NAND_HWECC
 
 /*
- * GPIO
- */
-#define CONFIG_MXC_GPIO
-
-/*
  * U-Boot general configuration
  */
 #define CONFIG_SYS_CBSIZE	1024	/* Console I/O Buffer Size  */
diff --git a/include/configs/imx31_phycore.h b/include/configs/imx31_phycore.h
index c2d4160..751dfbc 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 50379c7..10d3117 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 f82c4cc..8661d0f 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 18ee355..246e0cb 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 3259e82..6df3a98 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 6a334cb..df455bf 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 3ecb92c..8c32737 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 985109e..523f507 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 ccb1a4a..1929c68 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 1bddb37..e199175 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 323aa3d..e2490ce 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 92dd845..05c3d52 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 216a0d5..399b523 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 ddc645c..7d29414 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 6a48742..2142913 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 8eb0a80..b4fc3ee 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 ebfbb66..5b8bac8 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 4bebc59..3eacf2a 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 7ab60fd..5b94a3f 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 f9783a2..00f8038 100644
--- a/include/configs/zmx25.h
+++ b/include/configs/zmx25.h
@@ -38,11 +38,6 @@
  */
 
 /*
- * GPIO
- */
-#define CONFIG_MXC_GPIO
-
-/*
  * Serial
  */
 #define CONFIG_MXC_UART
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index ef83c00..d35f756 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -1428,7 +1428,6 @@
 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