arm: imx: mx28: Move MX28 selection to Kconfig

The motivation for moving MX28 selection to Kconfig is to be able
to better handle NAND MXS selection through Kconfig.

This selection method also aligns with the way other i.MX SoCs are
selected in U-Boot.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index af26087..0956d41 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -396,37 +396,6 @@
 	select CPU_ARM926EJS
 	select SUPPORT_SPL
 
-config TARGET_APX4DEVKIT
-	bool "Support apx4devkit"
-	select CPU_ARM926EJS
-	select SUPPORT_SPL
-	select PL011_SERIAL
-
-config TARGET_M28EVK
-	bool "Support m28evk"
-	select CPU_ARM926EJS
-	select SUPPORT_SPL
-	select PL011_SERIAL
-
-config TARGET_MX28EVK
-	bool "Support mx28evk"
-	select CPU_ARM926EJS
-	select SUPPORT_SPL
-	select BOARD_EARLY_INIT_F
-	select PL011_SERIAL
-
-config TARGET_BG0900
-	bool "Support bg0900"
-	select CPU_ARM926EJS
-	select SUPPORT_SPL
-	select PL011_SERIAL
-
-config TARGET_SC_SPS_1
-	bool "Support sc_sps_1"
-	select CPU_ARM926EJS
-	select SUPPORT_SPL
-	select PL011_SERIAL
-
 config ORION5X
 	bool "Marvell Orion"
 	select CPU_ARM926EJS
@@ -651,6 +620,12 @@
 	select CPU_ARM926EJS
 	imply MXC_GPIO
 
+config ARCH_MX28
+	bool "NXP i.MX28 family"
+	select CPU_ARM926EJS
+	select PL011_SERIAL
+	select SUPPORT_SPL
+
 config ARCH_MX7ULP
         bool "NXP MX7ULP"
         select CPU_V7
@@ -772,12 +747,6 @@
 	imply SPL_SERIAL_SUPPORT
 	imply USB_GADGET
 
-config TARGET_TS4600
-	bool "Support TS4600"
-	select CPU_ARM926EJS
-	select SUPPORT_SPL
-	select PL011_SERIAL
-
 config ARCH_VF610
 	bool "Freescale Vybrid"
 	select CPU_V7
@@ -1299,7 +1268,6 @@
 
 source "arch/arm/mach-imx/Kconfig"
 
-source "board/aries/m28evk/Kconfig"
 source "board/bosch/shc/Kconfig"
 source "board/CarMediaLab/flea3/Kconfig"
 source "board/Marvell/aspenite/Kconfig"
@@ -1307,7 +1275,6 @@
 source "board/armadeus/apf27/Kconfig"
 source "board/armltd/vexpress/Kconfig"
 source "board/armltd/vexpress64/Kconfig"
-source "board/bluegiga/apx4devkit/Kconfig"
 source "board/broadcom/bcm23550_w1d/Kconfig"
 source "board/broadcom/bcm28155_ap/Kconfig"
 source "board/broadcom/bcmcygnus/Kconfig"
@@ -1330,7 +1297,6 @@
 source "board/freescale/ls1012aqds/Kconfig"
 source "board/freescale/ls1012ardb/Kconfig"
 source "board/freescale/ls1012afrdm/Kconfig"
-source "board/freescale/mx28evk/Kconfig"
 source "board/freescale/mx31ads/Kconfig"
 source "board/freescale/mx31pdk/Kconfig"
 source "board/freescale/mx35pdk/Kconfig"
@@ -1344,8 +1310,6 @@
 source "board/imx31_phycore/Kconfig"
 source "board/isee/igep003x/Kconfig"
 source "board/phytec/pcm051/Kconfig"
-source "board/ppcag/bg0900/Kconfig"
-source "board/schulercontrol/sc_sps_1/Kconfig"
 source "board/silica/pengwyn/Kconfig"
 source "board/spear/spear300/Kconfig"
 source "board/spear/spear310/Kconfig"
@@ -1357,7 +1321,6 @@
 source "board/birdland/bav335x/Kconfig"
 source "board/timll/devkit3250/Kconfig"
 source "board/toradex/colibri_pxa270/Kconfig"
-source "board/technologic/ts4600/Kconfig"
 source "board/vscom/baltos/Kconfig"
 source "board/woodburn/Kconfig"
 source "board/work-microwave/work_92105/Kconfig"
diff --git a/arch/arm/mach-imx/mxs/Kconfig b/arch/arm/mach-imx/mxs/Kconfig
index f984545..684d49e 100644
--- a/arch/arm/mach-imx/mxs/Kconfig
+++ b/arch/arm/mach-imx/mxs/Kconfig
@@ -33,3 +33,46 @@
 source "board/creative/xfi3/Kconfig"
 
 endif
+
+if ARCH_MX28
+
+config MX28
+	bool
+	default y
+
+choice
+	prompt "MX28 board select"
+	optional
+
+config TARGET_APX4DEVKIT
+	bool "Support apx4devkit"
+
+config TARGET_BG0900
+	bool "Support bg0900"
+
+config TARGET_M28EVK
+	bool "Support m28evk"
+
+config TARGET_MX28EVK
+	bool "Support mx28evk"
+	select BOARD_EARLY_INIT_F
+
+config TARGET_SC_SPS_1
+	bool "Support sc_sps_1"
+
+config TARGET_TS4600
+	bool "Support TS4600"
+
+endchoice
+
+config SYS_SOC
+	default "mxs"
+
+source "board/aries/m28evk/Kconfig"
+source "board/bluegiga/apx4devkit/Kconfig"
+source "board/freescale/mx28evk/Kconfig"
+source "board/ppcag/bg0900/Kconfig"
+source "board/schulercontrol/sc_sps_1/Kconfig"
+source "board/technologic/ts4600/Kconfig"
+
+endif
diff --git a/configs/apx4devkit_defconfig b/configs/apx4devkit_defconfig
index 47a4ee9..6d57bb2 100644
--- a/configs/apx4devkit_defconfig
+++ b/configs/apx4devkit_defconfig
@@ -1,8 +1,9 @@
 CONFIG_ARM=y
-CONFIG_TARGET_APX4DEVKIT=y
+CONFIG_ARCH_MX28=y
 CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_TARGET_APX4DEVKIT=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_BOOTDELAY=1
 CONFIG_VERSION_VARIABLE=y
diff --git a/configs/bg0900_defconfig b/configs/bg0900_defconfig
index 72616ae..ed0448d 100644
--- a/configs/bg0900_defconfig
+++ b/configs/bg0900_defconfig
@@ -1,8 +1,9 @@
 CONFIG_ARM=y
-CONFIG_TARGET_BG0900=y
+CONFIG_ARCH_MX28=y
 CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_TARGET_BG0900=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_BOOTDELAY=3
 CONFIG_USE_BOOTARGS=y
diff --git a/configs/m28evk_defconfig b/configs/m28evk_defconfig
index 3bc6b18..734bc0a 100644
--- a/configs/m28evk_defconfig
+++ b/configs/m28evk_defconfig
@@ -1,8 +1,9 @@
 CONFIG_ARM=y
-CONFIG_TARGET_M28EVK=y
+CONFIG_ARCH_MX28=y
 CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_TARGET_M28EVK=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_FIT=y
 CONFIG_BOOTDELAY=3
diff --git a/configs/mx28evk_auart_console_defconfig b/configs/mx28evk_auart_console_defconfig
index c497756..3fef988 100644
--- a/configs/mx28evk_auart_console_defconfig
+++ b/configs/mx28evk_auart_console_defconfig
@@ -1,8 +1,9 @@
 CONFIG_ARM=y
-CONFIG_TARGET_MX28EVK=y
+CONFIG_ARCH_MX28=y
 CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_TARGET_MX28EVK=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_SYS_EXTRA_OPTIONS="MXS_AUART,MXS_AUART_BASE=MXS_UARTAPP3_BASE"
 # CONFIG_CONSOLE_MUX is not set
diff --git a/configs/mx28evk_defconfig b/configs/mx28evk_defconfig
index 40c9df2..82de3ba 100644
--- a/configs/mx28evk_defconfig
+++ b/configs/mx28evk_defconfig
@@ -1,8 +1,9 @@
 CONFIG_ARM=y
-CONFIG_TARGET_MX28EVK=y
+CONFIG_ARCH_MX28=y
 CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_TARGET_MX28EVK=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_FIT=y
 # CONFIG_CONSOLE_MUX is not set
diff --git a/configs/mx28evk_nand_defconfig b/configs/mx28evk_nand_defconfig
index ea97f40..bdd60b6 100644
--- a/configs/mx28evk_nand_defconfig
+++ b/configs/mx28evk_nand_defconfig
@@ -1,8 +1,9 @@
 CONFIG_ARM=y
-CONFIG_TARGET_MX28EVK=y
+CONFIG_ARCH_MX28=y
 CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_TARGET_MX28EVK=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 # CONFIG_CONSOLE_MUX is not set
 CONFIG_SYS_CONSOLE_IS_IN_ENV=y
diff --git a/configs/mx28evk_spi_defconfig b/configs/mx28evk_spi_defconfig
index 34e9927..b418e98 100644
--- a/configs/mx28evk_spi_defconfig
+++ b/configs/mx28evk_spi_defconfig
@@ -1,8 +1,9 @@
 CONFIG_ARM=y
-CONFIG_TARGET_MX28EVK=y
+CONFIG_ARCH_MX28=y
 CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_TARGET_MX28EVK=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 # CONFIG_CONSOLE_MUX is not set
 CONFIG_SYS_CONSOLE_IS_IN_ENV=y
diff --git a/configs/sc_sps_1_defconfig b/configs/sc_sps_1_defconfig
index faebc04..c013921 100644
--- a/configs/sc_sps_1_defconfig
+++ b/configs/sc_sps_1_defconfig
@@ -1,8 +1,9 @@
 CONFIG_ARM=y
-CONFIG_TARGET_SC_SPS_1=y
+CONFIG_ARCH_MX28=y
 CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_TARGET_SC_SPS_1=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_BOOTDELAY=3
 CONFIG_USE_BOOTARGS=y
diff --git a/configs/ts4600_defconfig b/configs/ts4600_defconfig
index aab0737..bc7a576 100644
--- a/configs/ts4600_defconfig
+++ b/configs/ts4600_defconfig
@@ -1,7 +1,8 @@
 CONFIG_ARM=y
-CONFIG_TARGET_TS4600=y
+CONFIG_ARCH_MX28=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_TARGET_TS4600=y
 CONFIG_FIT=y
 CONFIG_SYS_CONSOLE_IS_IN_ENV=y
 # CONFIG_DISPLAY_CPUINFO is not set
diff --git a/include/configs/apx4devkit.h b/include/configs/apx4devkit.h
index 903834c..cd65b75 100644
--- a/include/configs/apx4devkit.h
+++ b/include/configs/apx4devkit.h
@@ -15,7 +15,6 @@
 #define __CONFIGS_APX4DEVKIT_H__
 
 /* System configurations */
-#define CONFIG_MX28				/* i.MX28 SoC */
 #define CONFIG_MACH_TYPE	MACH_TYPE_APX4DEVKIT
 
 /* Memory configuration */
diff --git a/include/configs/bg0900.h b/include/configs/bg0900.h
index 03700b0..0043050 100644
--- a/include/configs/bg0900.h
+++ b/include/configs/bg0900.h
@@ -6,9 +6,6 @@
 #ifndef __CONFIGS_BG0900_H__
 #define __CONFIGS_BG0900_H__
 
-/* System configurations */
-#define CONFIG_MX28				/* i.MX28 SoC */
-
 /* Memory configuration */
 #define CONFIG_NR_DRAM_BANKS		1		/* 1 bank of DRAM */
 #define PHYS_SDRAM_1			0x40000000	/* Base address */
diff --git a/include/configs/m28evk.h b/include/configs/m28evk.h
index ad6995d..d44cf78 100644
--- a/include/configs/m28evk.h
+++ b/include/configs/m28evk.h
@@ -8,7 +8,6 @@
 #define __CONFIGS_M28EVK_H__
 
 /* System configurations */
-#define CONFIG_MX28				/* i.MX28 SoC */
 #define CONFIG_MACH_TYPE	MACH_TYPE_M28EVK
 
 #define CONFIG_TIMESTAMP		/* Print image info with timestamp */
diff --git a/include/configs/mx28evk.h b/include/configs/mx28evk.h
index 4ada384..bc58ca5 100644
--- a/include/configs/mx28evk.h
+++ b/include/configs/mx28evk.h
@@ -12,7 +12,6 @@
 #define __CONFIGS_MX28EVK_H__
 
 /* System configurations */
-#define CONFIG_MX28				/* i.MX28 SoC */
 #define CONFIG_MACH_TYPE	MACH_TYPE_MX28EVK
 
 /* Memory configuration */
diff --git a/include/configs/sc_sps_1.h b/include/configs/sc_sps_1.h
index e929a07..7eae0cc 100644
--- a/include/configs/sc_sps_1.h
+++ b/include/configs/sc_sps_1.h
@@ -10,7 +10,6 @@
 #define __CONFIGS_SC_SPS_1_H__
 
 /* System configuration */
-#define CONFIG_MX28				/* i.MX28 SoC */
 #define CONFIG_MACH_TYPE	MACH_TYPE_SC_SPS_1
 
 /* U-Boot Commands */
diff --git a/include/configs/ts4600.h b/include/configs/ts4600.h
index 59565c6..bbe268e 100644
--- a/include/configs/ts4600.h
+++ b/include/configs/ts4600.h
@@ -14,9 +14,6 @@
 #ifndef __CONFIGS_TS4600_H__
 #define __CONFIGS_TS4600_H__
 
-/* System configurations */
-#define CONFIG_MX28				/* i.MX28 SoC */
-
 /* U-Boot Commands */
 
 /* Memory configuration */
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index 2fae26b..d8cc807 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -1414,7 +1414,6 @@
 CONFIG_MX27
 CONFIG_MX27_CLK32
 CONFIG_MX27_TIMER_HIGH_PRECISION
-CONFIG_MX28
 CONFIG_MX28_FEC_MAC_IN_OCOTP
 CONFIG_MX31
 CONFIG_MX31_CLK32