ARM: vf610: move to standard arch/board approach

Move Freescale/NXP Vybrid to a standard arch/board approach, similar
to what has been done to i.MX 6 earlier in commit 89ebc82137be ("ARM:
mx6: move to a standard arch/board approach").

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index e8cdefa..b1f7852 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -786,31 +786,11 @@
 	select CPU_V7
 	select SYS_FSL_ERRATUM_ESDHC_A001
 
-config TARGET_VF610TWR
-	bool "Support vf610twr"
+config ARCH_VF610
+	bool "Freescale Vybrid"
 	select CPU_V7
 	select SYS_FSL_ERRATUM_ESDHC111
 
-config TARGET_COLIBRI_VF
-	bool "Support Colibri VF50/61"
-	select BOARD_LATE_INIT
-	select CPU_V7
-	select SYS_FSL_ERRATUM_ESDHC111
-
-config TARGET_PCM052
-	bool "Support pcm-052"
-	select CPU_V7
-	select SYS_FSL_ERRATUM_ESDHC111
-	select SYS_FSL_ERRATUM_ESDHC135
-	select SYS_FSL_ERRATUM_ESDHC_A001
-
-config TARGET_BK4R1
-	bool "Support BK4r1"
-	select CPU_V7
-	select SYS_FSL_ERRATUM_ESDHC111
-	select SYS_FSL_ERRATUM_ESDHC135
-	select SYS_FSL_ERRATUM_ESDHC_A001
-
 config ARCH_ZYNQ
 	bool "Xilinx Zynq Platform"
 	select BOARD_LATE_INIT
@@ -1197,6 +1177,8 @@
 
 source "arch/arm/mach-uniphier/Kconfig"
 
+source "arch/arm/cpu/armv7/vf610/Kconfig"
+
 source "arch/arm/mach-zynq/Kconfig"
 
 source "arch/arm/cpu/armv7/Kconfig"
@@ -1253,7 +1235,6 @@
 source "board/freescale/mx53loco/Kconfig"
 source "board/freescale/mx53smd/Kconfig"
 source "board/freescale/s32v234evb/Kconfig"
-source "board/freescale/vf610twr/Kconfig"
 source "board/grinn/chiliboard/Kconfig"
 source "board/gumstix/pepper/Kconfig"
 source "board/h2200/Kconfig"
@@ -1262,7 +1243,6 @@
 source "board/isee/igep0033/Kconfig"
 source "board/olimex/mx23_olinuxino/Kconfig"
 source "board/phytec/pcm051/Kconfig"
-source "board/phytec/pcm052/Kconfig"
 source "board/ppcag/bg0900/Kconfig"
 source "board/sandisk/sansa_fuze_plus/Kconfig"
 source "board/schulercontrol/sc_sps_1/Kconfig"
@@ -1286,7 +1266,6 @@
 source "board/ti/ti816x/Kconfig"
 source "board/timll/devkit3250/Kconfig"
 source "board/toradex/colibri_pxa270/Kconfig"
-source "board/toradex/colibri_vf/Kconfig"
 source "board/technologic/ts4600/Kconfig"
 source "board/technologic/ts4800/Kconfig"
 source "board/vscom/baltos/Kconfig"
diff --git a/arch/arm/cpu/armv7/vf610/Kconfig b/arch/arm/cpu/armv7/vf610/Kconfig
new file mode 100644
index 0000000..13905b5
--- /dev/null
+++ b/arch/arm/cpu/armv7/vf610/Kconfig
@@ -0,0 +1,36 @@
+if ARCH_VF610
+
+config VF610
+	bool
+	default y
+
+choice
+	prompt "Vybrid board select"
+
+config TARGET_VF610TWR
+	bool "TWR-VF65GS10-DS5"
+
+config TARGET_COLIBRI_VF
+	bool "Colibri VF50/61"
+	select BOARD_LATE_INIT
+
+config TARGET_PCM052
+	bool "PCM-052"
+	select SYS_FSL_ERRATUM_ESDHC135
+	select SYS_FSL_ERRATUM_ESDHC_A001
+
+config TARGET_BK4R1
+	bool "BK4r1"
+	select SYS_FSL_ERRATUM_ESDHC135
+	select SYS_FSL_ERRATUM_ESDHC_A001
+
+endchoice
+
+config SYS_SOC
+	default "vf610"
+
+source "board/freescale/vf610twr/Kconfig"
+source "board/phytec/pcm052/Kconfig"
+source "board/toradex/colibri_vf/Kconfig"
+
+endif
diff --git a/board/freescale/vf610twr/Kconfig b/board/freescale/vf610twr/Kconfig
index ef091d6..3b90ed6 100644
--- a/board/freescale/vf610twr/Kconfig
+++ b/board/freescale/vf610twr/Kconfig
@@ -6,9 +6,6 @@
 config SYS_VENDOR
 	default "freescale"
 
-config SYS_SOC
-	default "vf610"
-
 config SYS_CONFIG_NAME
 	default "vf610twr"
 
diff --git a/board/phytec/pcm052/Kconfig b/board/phytec/pcm052/Kconfig
index 212f994..4fde21c 100644
--- a/board/phytec/pcm052/Kconfig
+++ b/board/phytec/pcm052/Kconfig
@@ -6,9 +6,6 @@
 config SYS_VENDOR
 	default "phytec"
 
-config SYS_SOC
-	default "vf610"
-
 config SYS_CONFIG_NAME
 	default "pcm052"
 
@@ -26,9 +23,6 @@
 config SYS_VENDOR
 	default "phytec"
 
-config SYS_SOC
-	default "vf610"
-
 config SYS_CONFIG_NAME
 	default "bk4r1"
 
diff --git a/board/toradex/colibri_vf/Kconfig b/board/toradex/colibri_vf/Kconfig
index bf9bb01..5f7129d 100644
--- a/board/toradex/colibri_vf/Kconfig
+++ b/board/toradex/colibri_vf/Kconfig
@@ -1,17 +1,11 @@
 if TARGET_COLIBRI_VF
 
-config SYS_CPU
-	default "armv7"
-
 config SYS_BOARD
 	default "colibri_vf"
 
 config SYS_VENDOR
 	default "toradex"
 
-config SYS_SOC
-	default "vf610"
-
 config SYS_CONFIG_NAME
 	default "colibri_vf"
 
diff --git a/configs/bk4r1_defconfig b/configs/bk4r1_defconfig
index 964cfed..37a92bc 100644
--- a/configs/bk4r1_defconfig
+++ b/configs/bk4r1_defconfig
@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+CONFIG_ARCH_VF610=y
 CONFIG_TARGET_BK4R1=y
 CONFIG_DEFAULT_DEVICE_TREE="bk4r1"
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/phytec/pcm052/imximage.cfg,ENV_IS_IN_NAND"
diff --git a/configs/colibri_vf_defconfig b/configs/colibri_vf_defconfig
index c107710..9d94c61 100644
--- a/configs/colibri_vf_defconfig
+++ b/configs/colibri_vf_defconfig
@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+CONFIG_ARCH_VF610=y
 CONFIG_TARGET_COLIBRI_VF=y
 CONFIG_DEFAULT_DEVICE_TREE="vf610-colibri"
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri_vf/imximage.cfg,ENV_IS_IN_NAND,IMX_NAND"
diff --git a/configs/pcm052_defconfig b/configs/pcm052_defconfig
index fbd7841..b925aac 100644
--- a/configs/pcm052_defconfig
+++ b/configs/pcm052_defconfig
@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+CONFIG_ARCH_VF610=y
 CONFIG_TARGET_PCM052=y
 CONFIG_DEFAULT_DEVICE_TREE="pcm052"
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/phytec/pcm052/imximage.cfg,ENV_IS_IN_NAND"
diff --git a/configs/vf610twr_defconfig b/configs/vf610twr_defconfig
index 3f5db8b..12f2696 100644
--- a/configs/vf610twr_defconfig
+++ b/configs/vf610twr_defconfig
@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+CONFIG_ARCH_VF610=y
 CONFIG_TARGET_VF610TWR=y
 CONFIG_DEFAULT_DEVICE_TREE="vf610-twr"
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/vf610twr/imximage.cfg,ENV_IS_IN_MMC"
diff --git a/configs/vf610twr_nand_defconfig b/configs/vf610twr_nand_defconfig
index c78f716..a313910 100644
--- a/configs/vf610twr_nand_defconfig
+++ b/configs/vf610twr_nand_defconfig
@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+CONFIG_ARCH_VF610=y
 CONFIG_TARGET_VF610TWR=y
 CONFIG_DEFAULT_DEVICE_TREE="vf610-twr"
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/vf610twr/imximage.cfg,ENV_IS_IN_NAND"
diff --git a/include/configs/colibri_vf.h b/include/configs/colibri_vf.h
index bfd5fbd..6d05f93 100644
--- a/include/configs/colibri_vf.h
+++ b/include/configs/colibri_vf.h
@@ -14,7 +14,6 @@
 
 #include <asm/arch/imx-regs.h>
 
-#define CONFIG_VF610
 #define CONFIG_SYS_THUMB_BUILD
 #define CONFIG_SYS_FSL_CLK
 
diff --git a/include/configs/pcm052.h b/include/configs/pcm052.h
index 4909049..ba3b975 100644
--- a/include/configs/pcm052.h
+++ b/include/configs/pcm052.h
@@ -11,8 +11,6 @@
 
 #include <asm/arch/imx-regs.h>
 
-#define CONFIG_VF610
-
 #define CONFIG_SYS_THUMB_BUILD
 
 #define CONFIG_SKIP_LOWLEVEL_INIT
diff --git a/include/configs/vf610twr.h b/include/configs/vf610twr.h
index dde3a11..b6407e9 100644
--- a/include/configs/vf610twr.h
+++ b/include/configs/vf610twr.h
@@ -11,8 +11,6 @@
 
 #include <asm/arch/imx-regs.h>
 
-#define CONFIG_VF610
-
 #define CONFIG_SYS_FSL_CLK
 
 #define CONFIG_MACH_TYPE		4146