From e135d2c2f385fc1cefcea64cf775c6f0267945a2 Mon Sep 17 00:00:00 2001
From: Eugen Hristev <eugen.hristev@microchip.com>
Date: Mon, 4 Apr 2022 11:35:50 +0300
Subject: [PATCH] timers: atmel_tcb: introduce CONFIG_SPL_ATMEL_TCB

This commit allows the ATMEL_TCB driver to be unselected in SPL and be
selected in u-boot proper. The SPL can use a different timer.
By having a separate Kconfig for ATMEL_TCB in SPL, the size of the SPL
decreases by 1 KByte.

Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
---
 configs/sama5d2_icp_mmc_defconfig            | 1 +
 configs/sama5d2_xplained_emmc_defconfig      | 1 +
 configs/sama5d2_xplained_mmc_defconfig       | 1 +
 configs/sama5d2_xplained_qspiflash_defconfig | 1 +
 configs/sama5d2_xplained_spiflash_defconfig  | 1 +
 drivers/timer/Kconfig                        | 8 ++++++++
 drivers/timer/Makefile                       | 2 +-
 7 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/configs/sama5d2_icp_mmc_defconfig b/configs/sama5d2_icp_mmc_defconfig
index e839d1710a..37f2798608 100644
--- a/configs/sama5d2_icp_mmc_defconfig
+++ b/configs/sama5d2_icp_mmc_defconfig
@@ -86,5 +86,6 @@ CONFIG_SYSRESET_CMD_RESET=y
 CONFIG_SYSRESET_AT91=y
 CONFIG_SPL_TIMER=y
 CONFIG_ATMEL_TCB_TIMER=y
+CONFIG_SPL_ATMEL_TCB_TIMER=y
 CONFIG_OF_LIBFDT_OVERLAY=y
 # CONFIG_EFI_LOADER_HII is not set
diff --git a/configs/sama5d2_xplained_emmc_defconfig b/configs/sama5d2_xplained_emmc_defconfig
index 478a3cfc8b..06b337ef8b 100644
--- a/configs/sama5d2_xplained_emmc_defconfig
+++ b/configs/sama5d2_xplained_emmc_defconfig
@@ -94,6 +94,7 @@ CONFIG_SYSRESET_CMD_RESET=y
 CONFIG_SYSRESET_AT91=y
 CONFIG_SPL_TIMER=y
 CONFIG_ATMEL_TCB_TIMER=y
+CONFIG_SPL_ATMEL_TCB_TIMER=y
 CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
diff --git a/configs/sama5d2_xplained_mmc_defconfig b/configs/sama5d2_xplained_mmc_defconfig
index 071758fe00..871ade2135 100644
--- a/configs/sama5d2_xplained_mmc_defconfig
+++ b/configs/sama5d2_xplained_mmc_defconfig
@@ -96,6 +96,7 @@ CONFIG_SYSRESET_CMD_RESET=y
 CONFIG_SYSRESET_AT91=y
 CONFIG_SPL_TIMER=y
 CONFIG_ATMEL_TCB_TIMER=y
+CONFIG_SPL_ATMEL_TCB_TIMER=y
 CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
diff --git a/configs/sama5d2_xplained_qspiflash_defconfig b/configs/sama5d2_xplained_qspiflash_defconfig
index bf7368b512..59f62c51d7 100644
--- a/configs/sama5d2_xplained_qspiflash_defconfig
+++ b/configs/sama5d2_xplained_qspiflash_defconfig
@@ -96,6 +96,7 @@ CONFIG_SYSRESET_CMD_RESET=y
 CONFIG_SYSRESET_AT91=y
 CONFIG_SPL_TIMER=y
 CONFIG_ATMEL_TCB_TIMER=y
+CONFIG_SPL_ATMEL_TCB_TIMER=y
 CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
diff --git a/configs/sama5d2_xplained_spiflash_defconfig b/configs/sama5d2_xplained_spiflash_defconfig
index e1d01b43fa..ec2091d1b0 100644
--- a/configs/sama5d2_xplained_spiflash_defconfig
+++ b/configs/sama5d2_xplained_spiflash_defconfig
@@ -100,6 +100,7 @@ CONFIG_SYSRESET_CMD_RESET=y
 CONFIG_SYSRESET_AT91=y
 CONFIG_SPL_TIMER=y
 CONFIG_ATMEL_TCB_TIMER=y
+CONFIG_SPL_ATMEL_TCB_TIMER=y
 CONFIG_USB=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_STORAGE=y
diff --git a/drivers/timer/Kconfig b/drivers/timer/Kconfig
index 672746a181..68e90b8660 100644
--- a/drivers/timer/Kconfig
+++ b/drivers/timer/Kconfig
@@ -98,6 +98,14 @@ config ATMEL_TCB_TIMER
 	  Select this to enable the use of the timer counter as a monotonic
 	  counter.
 
+config SPL_ATMEL_TCB_TIMER
+	bool "Atmel timer counter support in SPL"
+	depends on SPL_TIMER
+	depends on ARCH_AT91
+	help
+	  Select this to enable the use of the timer counter as a monotonic
+	  counter in SPL.
+
 config CADENCE_TTC_TIMER
 	bool "Cadence TTC (Triple Timer Counter)"
 	depends on TIMER
diff --git a/drivers/timer/Makefile b/drivers/timer/Makefile
index 17f9f1d044..ae01a258e3 100644
--- a/drivers/timer/Makefile
+++ b/drivers/timer/Makefile
@@ -8,7 +8,7 @@ obj-$(CONFIG_ANDES_PLMT_TIMER) += andes_plmt_timer.o
 obj-$(CONFIG_ARC_TIMER)	+= arc_timer.o
 obj-$(CONFIG_AST_TIMER)	+= ast_timer.o
 obj-$(CONFIG_ATMEL_PIT_TIMER) += atmel_pit_timer.o
-obj-$(CONFIG_ATMEL_TCB_TIMER) += atmel_tcb_timer.o
+obj-$(CONFIG_$(SPL_)ATMEL_TCB_TIMER) += atmel_tcb_timer.o
 obj-$(CONFIG_CADENCE_TTC_TIMER)	+= cadence-ttc.o
 obj-$(CONFIG_DESIGNWARE_APB_TIMER)	+= dw-apb-timer.o
 obj-$(CONFIG_MPC83XX_TIMER) += mpc83xx_timer.o
-- 
2.39.5