arm: imx: mx23: Move MX23 selection to Kconfig

The motivation for moving MX23 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 ce9cee5..af26087 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -402,23 +402,10 @@
 	select SUPPORT_SPL
 	select PL011_SERIAL
 
-config TARGET_XFI3
-	bool "Support xfi3"
-	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_MX23EVK
-	bool "Support mx23evk"
-	select CPU_ARM926EJS
-	select SUPPORT_SPL
-	select BOARD_EARLY_INIT_F
 	select PL011_SERIAL
 
 config TARGET_MX28EVK
@@ -428,25 +415,12 @@
 	select BOARD_EARLY_INIT_F
 	select PL011_SERIAL
 
-config TARGET_MX23_OLINUXINO
-	bool "Support mx23_olinuxino"
-	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_SANSA_FUZE_PLUS
-	bool "Support sansa_fuze_plus"
-	select CPU_ARM926EJS
-	select SUPPORT_SPL
-	select PL011_SERIAL
-
 config TARGET_SC_SPS_1
 	bool "Support sc_sps_1"
 	select CPU_ARM926EJS
@@ -666,6 +640,12 @@
 	select DM
 	select SUPPORT_SPL
 
+config ARCH_MX23
+	bool "NXP i.MX23 family"
+	select CPU_ARM926EJS
+	select PL011_SERIAL
+	select SUPPORT_SPL
+
 config ARCH_MX25
 	bool "NXP MX25"
 	select CPU_ARM926EJS
@@ -1275,6 +1255,8 @@
 
 source "arch/arm/mach-imx/mx8m/Kconfig"
 
+source "arch/arm/mach-imx/mxs/Kconfig"
+
 source "arch/arm/mach-omap2/Kconfig"
 
 source "arch/arm/cpu/armv8/fsl-layerscape/Kconfig"
@@ -1333,7 +1315,6 @@
 source "board/broadcom/bcmns2/Kconfig"
 source "board/cavium/thunderx/Kconfig"
 source "board/cirrus/edb93xx/Kconfig"
-source "board/creative/xfi3/Kconfig"
 source "board/eets/pdu001/Kconfig"
 source "board/freescale/ls2080a/Kconfig"
 source "board/freescale/ls2080aqds/Kconfig"
@@ -1349,7 +1330,6 @@
 source "board/freescale/ls1012aqds/Kconfig"
 source "board/freescale/ls1012ardb/Kconfig"
 source "board/freescale/ls1012afrdm/Kconfig"
-source "board/freescale/mx23evk/Kconfig"
 source "board/freescale/mx28evk/Kconfig"
 source "board/freescale/mx31ads/Kconfig"
 source "board/freescale/mx31pdk/Kconfig"
@@ -1363,10 +1343,8 @@
 source "board/hisilicon/poplar/Kconfig"
 source "board/imx31_phycore/Kconfig"
 source "board/isee/igep003x/Kconfig"
-source "board/olimex/mx23_olinuxino/Kconfig"
 source "board/phytec/pcm051/Kconfig"
 source "board/ppcag/bg0900/Kconfig"
-source "board/sandisk/sansa_fuze_plus/Kconfig"
 source "board/schulercontrol/sc_sps_1/Kconfig"
 source "board/silica/pengwyn/Kconfig"
 source "board/spear/spear300/Kconfig"
diff --git a/arch/arm/mach-imx/mxs/Kconfig b/arch/arm/mach-imx/mxs/Kconfig
new file mode 100644
index 0000000..f984545
--- /dev/null
+++ b/arch/arm/mach-imx/mxs/Kconfig
@@ -0,0 +1,35 @@
+if ARCH_MX23
+
+config MX23
+	bool
+	default y
+
+choice
+	prompt "MX23 board select"
+	optional
+
+config TARGET_MX23_OLINUXINO
+	bool "Support mx23_olinuxino"
+	select BOARD_EARLY_INIT_F
+
+config TARGET_MX23EVK
+	bool "Support mx23evk"
+	select BOARD_EARLY_INIT_F
+
+config TARGET_SANSA_FUZE_PLUS
+	bool "Support sansa_fuze_plus"
+
+config TARGET_XFI3
+	bool "Support xfi3"
+
+endchoice
+
+config SYS_SOC
+	default "mxs"
+
+source "board/olimex/mx23_olinuxino/Kconfig"
+source "board/freescale/mx23evk/Kconfig"
+source "board/sandisk/sansa_fuze_plus/Kconfig"
+source "board/creative/xfi3/Kconfig"
+
+endif
diff --git a/configs/mx23_olinuxino_defconfig b/configs/mx23_olinuxino_defconfig
index 628c11d..d70ca52 100644
--- a/configs/mx23_olinuxino_defconfig
+++ b/configs/mx23_olinuxino_defconfig
@@ -1,8 +1,9 @@
 CONFIG_ARM=y
-CONFIG_TARGET_MX23_OLINUXINO=y
+CONFIG_ARCH_MX23=y
 CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_TARGET_MX23_OLINUXINO=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_BOOTDELAY=3
 CONFIG_VERSION_VARIABLE=y
diff --git a/configs/mx23evk_defconfig b/configs/mx23evk_defconfig
index 6ad7f2c..a7f08ca 100644
--- a/configs/mx23evk_defconfig
+++ b/configs/mx23evk_defconfig
@@ -1,8 +1,9 @@
 CONFIG_ARM=y
-CONFIG_TARGET_MX23EVK=y
+CONFIG_ARCH_MX23=y
 CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_TARGET_MX23EVK=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 # CONFIG_CONSOLE_MUX is not set
 CONFIG_SYS_CONSOLE_IS_IN_ENV=y
diff --git a/configs/sansa_fuze_plus_defconfig b/configs/sansa_fuze_plus_defconfig
index f2e61c7..fd0afa5 100644
--- a/configs/sansa_fuze_plus_defconfig
+++ b/configs/sansa_fuze_plus_defconfig
@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+CONFIG_ARCH_MX23=y
 CONFIG_TARGET_SANSA_FUZE_PLUS=y
 CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
diff --git a/configs/xfi3_defconfig b/configs/xfi3_defconfig
index 6cdea5e..a2362f8 100644
--- a/configs/xfi3_defconfig
+++ b/configs/xfi3_defconfig
@@ -1,8 +1,9 @@
 CONFIG_ARM=y
-CONFIG_TARGET_XFI3=y
+CONFIG_ARCH_MX23=y
 CONFIG_SPL_GPIO_SUPPORT=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_TARGET_XFI3=y
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_BOOTDELAY=3
 CONFIG_USE_BOOTARGS=y
diff --git a/include/configs/mx23_olinuxino.h b/include/configs/mx23_olinuxino.h
index 36ef186..bca62ef 100644
--- a/include/configs/mx23_olinuxino.h
+++ b/include/configs/mx23_olinuxino.h
@@ -7,7 +7,6 @@
 #define __CONFIGS_MX23_OLINUXINO_H__
 
 /* System configurations */
-#define CONFIG_MX23				/* i.MX23 SoC */
 #define CONFIG_MACH_TYPE	4105
 
 /* U-Boot Commands */
diff --git a/include/configs/mx23evk.h b/include/configs/mx23evk.h
index 9b54d20..1672396 100644
--- a/include/configs/mx23evk.h
+++ b/include/configs/mx23evk.h
@@ -10,7 +10,6 @@
 #define __CONFIGS_MX23EVK_H__
 
 /* System configurations */
-#define CONFIG_MX23				/* i.MX23 SoC */
 #define CONFIG_MACH_TYPE	MACH_TYPE_MX23EVK
 
 /* U-Boot Commands */
diff --git a/include/configs/sansa_fuze_plus.h b/include/configs/sansa_fuze_plus.h
index 9920014..3bf1601 100644
--- a/include/configs/sansa_fuze_plus.h
+++ b/include/configs/sansa_fuze_plus.h
@@ -6,9 +6,6 @@
 #ifndef __CONFIGS_SANSA_FUZE_PLUS_H__
 #define __CONFIGS_SANSA_FUZE_PLUS_H__
 
-/* System configurations */
-#define CONFIG_MX23				/* i.MX23 SoC */
-
 /* U-Boot Commands */
 
 /* Memory configuration */
diff --git a/include/configs/xfi3.h b/include/configs/xfi3.h
index 1e70a76..2f77acc 100644
--- a/include/configs/xfi3.h
+++ b/include/configs/xfi3.h
@@ -6,9 +6,6 @@
 #ifndef __CONFIGS_XFI3_H__
 #define __CONFIGS_XFI3_H__
 
-/* System configurations */
-#define CONFIG_MX23				/* i.MX23 SoC */
-
 /* U-Boot Commands */
 
 /* Memory configuration */
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index d35f756..2fae26b 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -1409,7 +1409,6 @@
 CONFIG_MV_ETH_RXQ
 CONFIG_MV_I2C_NUM
 CONFIG_MV_I2C_REG
-CONFIG_MX23
 CONFIG_MX25_CLK32
 CONFIG_MX25_HCLK_FREQ
 CONFIG_MX27