Can't enable both CONFIG_SYS_ARCH_TIMER and CONFIG_TIMER_*.
This error occurs:
  ld: lib/time.o: in function `get_tbclk':
  /usr/src/u-boot/lib/time.c:72: multiple definition of `get_tbclk'; 
arch/arm/cpu/armv7/arch_timer.o:/usr/src/u-boot/arch/arm/cpu/armv7/arch_timer.c:63:
 first defined here
  ld: lib/time.o: in function `get_ticks':
  /usr/src/u-boot/lib/time.c:87: multiple definition of `get_ticks'; 
arch/arm/cpu/armv7/arch_timer.o:/usr/src/u-boot/arch/arm/cpu/armv7/arch_timer.c:44:
 first defined here

This commit makes timer drivers only available when ARM Generic Timer is not 
selected.
If it's selected, shows a warning explaining why Timers aren't visible.

Signed-off-by: Marius Dinu <m95d+...@psihoexpert.ro>
---
 arch/arm/Kconfig      | 2 ++
 drivers/timer/Kconfig | 5 +++++
 2 files changed, 7 insertions(+)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 4e7593616d8..afa581dcf78 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -453,6 +453,8 @@ config SYS_ARCH_TIMER
          It is mandatory for ARMv8 implementation and widely available
          on ARMv7 systems.
 
+         Note: Timer drivers (CONFIG_TIMER) are unavailable when this timer is 
selected.
+
 config ARM_SMCCC
        bool "Support for ARM SMC Calling Convention (SMCCC)"
        depends on CPU_V7A || ARM64
diff --git a/drivers/timer/Kconfig b/drivers/timer/Kconfig
index cb6fc0e7fda..f1020661dc0 100644
--- a/drivers/timer/Kconfig
+++ b/drivers/timer/Kconfig
@@ -1,8 +1,13 @@
 menu "Timer Support"
 
+comment "Timer drivers are unavailable when ARM Generic Timer 
(CONFIG_SYS_ARCH_TIMER) is selected."
+       depends on DM
+       depends on SYS_ARCH_TIMER
+
 config TIMER
        bool "Enable driver model for timer drivers"
        depends on DM
+       depends on !SYS_ARCH_TIMER
        help
          Enable driver model for timer access. It uses the same API as
          lib/time.c, but now implemented by the uclass. The first timer
-- 
2.49.0


Reply via email to