[PATCH] arm: mediatek: split config into separate options for the board and SoC

Leith Bade leith at bade.nz
Wed Jul 3 10:40:35 CEST 2024


The current MediaTek Kconfig layout prevents the addition of new board
targets that require the existing SoC drivers.

By making the SoC drivers depend on new CONFIG_MTxxxx variables, it
becomes possible to select these drivers when adding new boards to the
board selection list. The existing TARGET_MTxxxx are then changed to
select the correct SoC driver targets and can continue to be used as a
generic target.

Signed-off-by: Leith Bade <leith at bade.nz>
Cc: Chunfeng Yun <chunfeng.yun at mediatek.com>
Cc: Ryder Lee <ryder.lee at mediatek.com>
Cc: Weijie Gao <weijie.gao at mediatek.com>
Cc: Sam Shih <sam.shih at mediatek.com>
---
This is my first U-boot patch so I apologise in advance if I am doing
something wrong.

There seems to be a number of different ways to organise the Kconfig
file to support multiple boards using the same CPU. So picked an approach
that required the least number of changes.

My motivation was to be able to add files under a new
board/bananapi/bpi-r3 directory for the Banana Pi BPI-R3 board so I can
add a .env file to set up the required values for the "Standard Boot".

If this change is accepted I plan to follow up with future patches to
add this .env file.

 arch/arm/mach-mediatek/Kconfig  | 43 ++++++++++++++++++++++++++++++++-
 arch/arm/mach-mediatek/Makefile | 20 +++++++--------
 drivers/clk/mediatek/Makefile   | 20 +++++++--------
 drivers/ram/mediatek/Makefile   |  2 +-
 4 files changed, 63 insertions(+), 22 deletions(-)

diff --git a/arch/arm/mach-mediatek/Kconfig b/arch/arm/mach-mediatek/Kconfig
index ff1fdee5c8..4b4faad8b4 100644
--- a/arch/arm/mach-mediatek/Kconfig
+++ b/arch/arm/mach-mediatek/Kconfig
@@ -6,8 +6,38 @@ config SYS_SOC
 config SYS_VENDOR
 	default "mediatek"
 
+config MT7622
+	bool
+
+config MT7623
+	bool
+
+config MT7629
+	bool
+
+config MT7981
+	bool
+
+config MT7986
+	bool
+
+config MT7988
+	bool
+
+config MT8183
+	bool
+
+config MT8365
+        bool
+
 config MT8512
-	bool "MediaTek MT8512 SoC"
+	bool
+
+config MT8516
+	bool
+
+config MT8518
+	bool
 
 choice
 	prompt "MediaTek board select"
@@ -15,6 +45,7 @@ choice
 config TARGET_MT7622
 	bool "MediaTek MT7622 SoC"
 	select ARM64
+	select MT7622
 	help
 	  The MediaTek MT7622 is a ARM64-based SoC with a dual-core Cortex-A53.
 	  including UART, SPI, USB3.0, SD and MMC cards, NAND, SNFI, PWM, PCIe,
@@ -24,6 +55,7 @@ config TARGET_MT7623
 	bool "MediaTek MT7623 SoC"
 	select CPU_V7A
 	select MMC_SUPPORTS_TUNING
+	select MT7623
 	help
 	  The MediaTek MT7623 is a ARM-based SoC with a quad-core Cortex-A7
 	  including NEON and GPU, Mali-450 graphics, several DDR3 options,
@@ -36,6 +68,7 @@ config TARGET_MT7629
 	bool "MediaTek MT7629 SoC"
 	select CPU_V7A
 	select SPL
+	select MT7629
 	help
 	  The MediaTek MT7629 is a ARM-based SoC with a dual-core Cortex-A7
 	  including DDR3, crypto engine, 3x3 11n/ac Wi-Fi, Gigabit Ethernet,
@@ -45,6 +78,7 @@ config TARGET_MT7981
 	bool "MediaTek MT7981 SoC"
 	select ARM64
 	select CPU
+	select MT7981
 	help
 	  The MediaTek MT7981 is a ARM64-based SoC with a dual-core Cortex-A53.
 	  including UART, SPI, USB, NAND, SNFI, PWM, Gigabit Ethernet, I2C,
@@ -54,6 +88,7 @@ config TARGET_MT7986
 	bool "MediaTek MT7986 SoC"
 	select ARM64
 	select CPU
+	select MT7986
 	help
 	  The MediaTek MT7986 is a ARM64-based SoC with a quad-core Cortex-A53.
 	  including UART, SPI, SPI flash, USB3.0, MMC, NAND, SNFI, PWM, PCIe,
@@ -63,6 +98,7 @@ config TARGET_MT7988
 	bool "MediaTek MT7988 SoC"
 	select ARM64
 	select CPU
+	select MT7988
 	help
 	  The MediaTek MT7988 is a ARM64-based SoC with a quad-core Cortex-A73.
 	  including UART, SPI, SPI flash, USB3.0, MMC, NAND, SNFI, PWM, PCIe,
@@ -71,6 +107,7 @@ config TARGET_MT7988
 config TARGET_MT8183
 	bool "MediaTek MT8183 SoC"
 	select ARM64
+	select MT8183
 	help
 	  The MediaTek MT8183 is a ARM64-based SoC with a quad-core Cortex-A73 and
 	  a quad-core Cortex-A53. It is including UART, SPI, USB3.0 dual role,
@@ -80,6 +117,7 @@ config TARGET_MT8183
 config TARGET_MT8365
 	bool "MediaTek MT8365 SoC"
 	select ARM64
+	select MT8365
 	help
 	  The MediaTek MT8365 is a ARM64-based SoC with a quad-core Cortex-A53.
 	  It is including UART, SPI, USB2.0 dual role, SD and MMC cards, NAND, PWM,
@@ -98,6 +136,7 @@ config TARGET_MT8512
 config TARGET_MT8516
 	bool "MediaTek MT8516 SoC"
 	select ARM64
+	select MT8516
 	help
 	  The MediaTek MT8516 is a ARM64-based SoC with a quad-core Cortex-A35.
 	  including UART, SPI, USB2.0 and OTG, SD and MMC cards, NAND, PWM,
@@ -107,6 +146,7 @@ config TARGET_MT8516
 config TARGET_MT8518
 	bool "MediaTek MT8518 SoC"
 	select ARM64
+	select MT8518
 	help
 	  The MediaTek MT8518 is a ARM64-based SoC with a quad-core Cortex-A53.
 	  including UART, SPI, USB2.0 and OTG, SD and MMC cards, NAND, PWM,
@@ -124,6 +164,7 @@ config SYS_BOARD
 	default "mt7986" if TARGET_MT7986
 	default "mt7988" if TARGET_MT7988
 	default "mt8183" if TARGET_MT8183
+        default "mt8365" if TARGET_MT8365
 	default "mt8512" if TARGET_MT8512
 	default "mt8516" if TARGET_MT8516
 	default "mt8518" if TARGET_MT8518
diff --git a/arch/arm/mach-mediatek/Makefile b/arch/arm/mach-mediatek/Makefile
index 46bdab8820..c32f78f82b 100644
--- a/arch/arm/mach-mediatek/Makefile
+++ b/arch/arm/mach-mediatek/Makefile
@@ -3,14 +3,14 @@
 obj-y	+= cpu.o
 obj-$(CONFIG_SPL_BUILD)	+= spl.o
 
+obj-$(CONFIG_MT7622) += mt7622/
+obj-$(CONFIG_MT7623) += mt7623/
+obj-$(CONFIG_MT7629) += mt7629/
+obj-$(CONFIG_MT7981) += mt7981/
+obj-$(CONFIG_MT7986) += mt7986/
+obj-$(CONFIG_MT7988) += mt7988/
+obj-$(CONFIG_MT8183) += mt8183/
+obj-$(TARGET_MT8365) += mt8365/
 obj-$(CONFIG_MT8512) += mt8512/
-obj-$(CONFIG_TARGET_MT7622) += mt7622/
-obj-$(CONFIG_TARGET_MT7623) += mt7623/
-obj-$(CONFIG_TARGET_MT7629) += mt7629/
-obj-$(CONFIG_TARGET_MT7981) += mt7981/
-obj-$(CONFIG_TARGET_MT7986) += mt7986/
-obj-$(CONFIG_TARGET_MT7988) += mt7988/
-obj-$(CONFIG_TARGET_MT8183) += mt8183/
-obj-$(CONFIG_TARGET_MT8365) += mt8365/
-obj-$(CONFIG_TARGET_MT8516) += mt8516/
-obj-$(CONFIG_TARGET_MT8518) += mt8518/
+obj-$(CONFIG_MT8516) += mt8516/
+obj-$(CONFIG_MT8518) += mt8518/
diff --git a/drivers/clk/mediatek/Makefile b/drivers/clk/mediatek/Makefile
index e631f79e4d..62e26de5e0 100644
--- a/drivers/clk/mediatek/Makefile
+++ b/drivers/clk/mediatek/Makefile
@@ -3,14 +3,14 @@
 obj-$(CONFIG_ARCH_MEDIATEK) += clk-mtk.o
 
 # SoC Drivers
+obj-$(CONFIG_MT7623) += clk-mt7623.o
+obj-$(CONFIG_MT7622) += clk-mt7622.o
+obj-$(CONFIG_MT7629) += clk-mt7629.o
+obj-$(CONFIG_MT7986) += clk-mt7986.o
+obj-$(CONFIG_MT7981) += clk-mt7981.o
+obj-$(CONFIG_MT7988) += clk-mt7988.o
+obj-$(CONFIG_MT8183) += clk-mt8183.o
+obj-$(CONFIG_MT8365) += clk-mt8365.o
 obj-$(CONFIG_MT8512) += clk-mt8512.o
-obj-$(CONFIG_TARGET_MT7623) += clk-mt7623.o
-obj-$(CONFIG_TARGET_MT7622) += clk-mt7622.o
-obj-$(CONFIG_TARGET_MT7629) += clk-mt7629.o
-obj-$(CONFIG_TARGET_MT7986) += clk-mt7986.o
-obj-$(CONFIG_TARGET_MT7981) += clk-mt7981.o
-obj-$(CONFIG_TARGET_MT7988) += clk-mt7988.o
-obj-$(CONFIG_TARGET_MT8183) += clk-mt8183.o
-obj-$(CONFIG_TARGET_MT8365) += clk-mt8365.o
-obj-$(CONFIG_TARGET_MT8516) += clk-mt8516.o
-obj-$(CONFIG_TARGET_MT8518) += clk-mt8518.o
+obj-$(CONFIG_MT8516) += clk-mt8516.o
+obj-$(CONFIG_MT8518) += clk-mt8518.o
diff --git a/drivers/ram/mediatek/Makefile b/drivers/ram/mediatek/Makefile
index 95507b593c..71f2c4fe83 100644
--- a/drivers/ram/mediatek/Makefile
+++ b/drivers/ram/mediatek/Makefile
@@ -4,4 +4,4 @@
 # SPDX-License-Identifier:      GPL-2.0
 #
 
-obj-$(CONFIG_TARGET_MT7629) = ddr3-mt7629.o
+obj-$(CONFIG_MT7629) = ddr3-mt7629.o
-- 
2.25.1



More information about the U-Boot mailing list