From 0a61ee880ceecfa8e3ac12774c4424a73c0ba91d Mon Sep 17 00:00:00 2001
From: Vikas Manocha <vikas.manocha@st.com>
Date: Fri, 15 Jan 2016 17:49:06 -0800
Subject: [PATCH] stm32: move stm32 specific code to mach-stm32

This patch moves stm32 sources at one place, with this armv7m now contains
only generic stuff.

Signed-off-by: Vikas Manocha <vikas.manocha@st.com>
---
 arch/arm/Kconfig                                     |  7 ++++---
 arch/arm/Makefile                                    |  1 +
 arch/arm/cpu/armv7m/Makefile                         |  3 ---
 arch/arm/mach-stm32/Kconfig                          | 12 ++++++++++++
 arch/arm/mach-stm32/Makefile                         |  9 +++++++++
 arch/arm/mach-stm32/stm32f1/Kconfig                  |  3 +++
 arch/arm/{cpu/armv7m => mach-stm32}/stm32f1/Makefile |  0
 arch/arm/{cpu/armv7m => mach-stm32}/stm32f1/clock.c  |  0
 arch/arm/{cpu/armv7m => mach-stm32}/stm32f1/flash.c  |  0
 arch/arm/{cpu/armv7m => mach-stm32}/stm32f1/soc.c    |  0
 arch/arm/{cpu/armv7m => mach-stm32}/stm32f1/timer.c  |  0
 arch/arm/mach-stm32/stm32f4/Kconfig                  |  8 ++++++++
 arch/arm/{cpu/armv7m => mach-stm32}/stm32f4/Makefile |  0
 arch/arm/{cpu/armv7m => mach-stm32}/stm32f4/clock.c  |  0
 arch/arm/{cpu/armv7m => mach-stm32}/stm32f4/flash.c  |  0
 arch/arm/{cpu/armv7m => mach-stm32}/stm32f4/soc.c    |  0
 arch/arm/{cpu/armv7m => mach-stm32}/stm32f4/timer.c  |  0
 configs/stm32f429-discovery_defconfig                |  2 ++
 include/configs/stm32f429-discovery.h                |  1 -
 19 files changed, 39 insertions(+), 7 deletions(-)
 create mode 100644 arch/arm/mach-stm32/Kconfig
 create mode 100644 arch/arm/mach-stm32/Makefile
 create mode 100644 arch/arm/mach-stm32/stm32f1/Kconfig
 rename arch/arm/{cpu/armv7m => mach-stm32}/stm32f1/Makefile (100%)
 rename arch/arm/{cpu/armv7m => mach-stm32}/stm32f1/clock.c (100%)
 rename arch/arm/{cpu/armv7m => mach-stm32}/stm32f1/flash.c (100%)
 rename arch/arm/{cpu/armv7m => mach-stm32}/stm32f1/soc.c (100%)
 rename arch/arm/{cpu/armv7m => mach-stm32}/stm32f1/timer.c (100%)
 create mode 100644 arch/arm/mach-stm32/stm32f4/Kconfig
 rename arch/arm/{cpu/armv7m => mach-stm32}/stm32f4/Makefile (100%)
 rename arch/arm/{cpu/armv7m => mach-stm32}/stm32f4/clock.c (100%)
 rename arch/arm/{cpu/armv7m => mach-stm32}/stm32f4/flash.c (100%)
 rename arch/arm/{cpu/armv7m => mach-stm32}/stm32f4/soc.c (100%)
 rename arch/arm/{cpu/armv7m => mach-stm32}/stm32f4/timer.c (100%)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 33c8411e3eb..876a620cf19 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -702,8 +702,8 @@ config ARCH_UNIPHIER
 	  Support for UniPhier SoC family developed by Socionext Inc.
 	  (formerly, System LSI Business Division of Panasonic Corporation)
 
-config TARGET_STM32F429_DISCOVERY
-	bool "Support STM32F429 Discovery"
+config STM32
+	bool "Support STM32"
 	select CPU_V7M
 	select DM
 	select DM_SERIAL
@@ -762,6 +762,8 @@ source "arch/arm/mach-s5pc1xx/Kconfig"
 
 source "arch/arm/mach-socfpga/Kconfig"
 
+source "arch/arm/mach-stm32/Kconfig"
+
 source "arch/arm/mach-tegra/Kconfig"
 
 source "arch/arm/mach-uniphier/Kconfig"
@@ -836,7 +838,6 @@ source "board/spear/spear310/Kconfig"
 source "board/spear/spear320/Kconfig"
 source "board/spear/spear600/Kconfig"
 source "board/spear/x600/Kconfig"
-source "board/st/stm32f429-discovery/Kconfig"
 source "board/st/stv0991/Kconfig"
 source "board/sunxi/Kconfig"
 source "board/syteco/zmx25/Kconfig"
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 3d156732139..cd7d8803f3b 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -56,6 +56,7 @@ machine-$(CONFIG_ORION5X)		+= orion5x
 machine-$(CONFIG_ARCH_S5PC1XX)		+= s5pc1xx
 machine-$(CONFIG_ARCH_SOCFPGA)		+= socfpga
 machine-$(CONFIG_ARCH_ROCKCHIP)		+= rockchip
+machine-$(CONFIG_STM32)			+= stm32
 machine-$(CONFIG_TEGRA)			+= tegra
 machine-$(CONFIG_ARCH_UNIPHIER)		+= uniphier
 machine-$(CONFIG_ARCH_ZYNQ)		+= zynq
diff --git a/arch/arm/cpu/armv7m/Makefile b/arch/arm/cpu/armv7m/Makefile
index 93a19566f51..aff60e8102e 100644
--- a/arch/arm/cpu/armv7m/Makefile
+++ b/arch/arm/cpu/armv7m/Makefile
@@ -7,6 +7,3 @@
 
 extra-y := start.o
 obj-y += cpu.o
-
-obj-$(CONFIG_STM32F1) += stm32f1/
-obj-$(CONFIG_STM32F4) += stm32f4/
diff --git a/arch/arm/mach-stm32/Kconfig b/arch/arm/mach-stm32/Kconfig
new file mode 100644
index 00000000000..7dbeb040d53
--- /dev/null
+++ b/arch/arm/mach-stm32/Kconfig
@@ -0,0 +1,12 @@
+if STM32
+
+config STM32F4
+	bool "stm32f4 family"
+
+config STM32F1
+	bool "stm32f1 family"
+
+source "arch/arm/mach-stm32/stm32f4/Kconfig"
+source "arch/arm/mach-stm32/stm32f1/Kconfig"
+
+endif
diff --git a/arch/arm/mach-stm32/Makefile b/arch/arm/mach-stm32/Makefile
new file mode 100644
index 00000000000..ea06034e103
--- /dev/null
+++ b/arch/arm/mach-stm32/Makefile
@@ -0,0 +1,9 @@
+#
+# (C) Copyright 2000-2006
+# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+#
+# SPDX-License-Identifier:	GPL-2.0+
+#
+
+obj-$(CONFIG_STM32F1) += stm32f1/
+obj-$(CONFIG_STM32F4) += stm32f4/
diff --git a/arch/arm/mach-stm32/stm32f1/Kconfig b/arch/arm/mach-stm32/stm32f1/Kconfig
new file mode 100644
index 00000000000..f627fd25416
--- /dev/null
+++ b/arch/arm/mach-stm32/stm32f1/Kconfig
@@ -0,0 +1,3 @@
+if STM32F1
+
+endif
diff --git a/arch/arm/cpu/armv7m/stm32f1/Makefile b/arch/arm/mach-stm32/stm32f1/Makefile
similarity index 100%
rename from arch/arm/cpu/armv7m/stm32f1/Makefile
rename to arch/arm/mach-stm32/stm32f1/Makefile
diff --git a/arch/arm/cpu/armv7m/stm32f1/clock.c b/arch/arm/mach-stm32/stm32f1/clock.c
similarity index 100%
rename from arch/arm/cpu/armv7m/stm32f1/clock.c
rename to arch/arm/mach-stm32/stm32f1/clock.c
diff --git a/arch/arm/cpu/armv7m/stm32f1/flash.c b/arch/arm/mach-stm32/stm32f1/flash.c
similarity index 100%
rename from arch/arm/cpu/armv7m/stm32f1/flash.c
rename to arch/arm/mach-stm32/stm32f1/flash.c
diff --git a/arch/arm/cpu/armv7m/stm32f1/soc.c b/arch/arm/mach-stm32/stm32f1/soc.c
similarity index 100%
rename from arch/arm/cpu/armv7m/stm32f1/soc.c
rename to arch/arm/mach-stm32/stm32f1/soc.c
diff --git a/arch/arm/cpu/armv7m/stm32f1/timer.c b/arch/arm/mach-stm32/stm32f1/timer.c
similarity index 100%
rename from arch/arm/cpu/armv7m/stm32f1/timer.c
rename to arch/arm/mach-stm32/stm32f1/timer.c
diff --git a/arch/arm/mach-stm32/stm32f4/Kconfig b/arch/arm/mach-stm32/stm32f4/Kconfig
new file mode 100644
index 00000000000..a63619e07fd
--- /dev/null
+++ b/arch/arm/mach-stm32/stm32f4/Kconfig
@@ -0,0 +1,8 @@
+if STM32F4
+
+config TARGET_STM32F429_DISCOVERY
+	bool "STM32F429 Discovery board"
+
+source "board/st/stm32f429-discovery/Kconfig"
+
+endif
diff --git a/arch/arm/cpu/armv7m/stm32f4/Makefile b/arch/arm/mach-stm32/stm32f4/Makefile
similarity index 100%
rename from arch/arm/cpu/armv7m/stm32f4/Makefile
rename to arch/arm/mach-stm32/stm32f4/Makefile
diff --git a/arch/arm/cpu/armv7m/stm32f4/clock.c b/arch/arm/mach-stm32/stm32f4/clock.c
similarity index 100%
rename from arch/arm/cpu/armv7m/stm32f4/clock.c
rename to arch/arm/mach-stm32/stm32f4/clock.c
diff --git a/arch/arm/cpu/armv7m/stm32f4/flash.c b/arch/arm/mach-stm32/stm32f4/flash.c
similarity index 100%
rename from arch/arm/cpu/armv7m/stm32f4/flash.c
rename to arch/arm/mach-stm32/stm32f4/flash.c
diff --git a/arch/arm/cpu/armv7m/stm32f4/soc.c b/arch/arm/mach-stm32/stm32f4/soc.c
similarity index 100%
rename from arch/arm/cpu/armv7m/stm32f4/soc.c
rename to arch/arm/mach-stm32/stm32f4/soc.c
diff --git a/arch/arm/cpu/armv7m/stm32f4/timer.c b/arch/arm/mach-stm32/stm32f4/timer.c
similarity index 100%
rename from arch/arm/cpu/armv7m/stm32f4/timer.c
rename to arch/arm/mach-stm32/stm32f4/timer.c
diff --git a/configs/stm32f429-discovery_defconfig b/configs/stm32f429-discovery_defconfig
index 7512457d0bf..fb330e25ae3 100644
--- a/configs/stm32f429-discovery_defconfig
+++ b/configs/stm32f429-discovery_defconfig
@@ -1,4 +1,6 @@
 CONFIG_ARM=y
+CONFIG_STM32=y
+CONFIG_STM32F4=y
 CONFIG_TARGET_STM32F429_DISCOVERY=y
 CONFIG_SYS_PROMPT="U-Boot > "
 # CONFIG_CMD_SETEXPR is not set
diff --git a/include/configs/stm32f429-discovery.h b/include/configs/stm32f429-discovery.h
index 3e808613b0c..85d492ddc5f 100644
--- a/include/configs/stm32f429-discovery.h
+++ b/include/configs/stm32f429-discovery.h
@@ -8,7 +8,6 @@
 #ifndef __CONFIG_H
 #define __CONFIG_H
 
-#define CONFIG_STM32F4
 #define CONFIG_SYS_THUMB_BUILD
 #define CONFIG_STM32F4DISCOVERY
 
-- 
GitLab