lib: utils/timer: Use kconfig for enabling/disabling drivers
authorAnup Patel <apatel@ventanamicro.com>
Mon, 8 Aug 2022 04:03:37 +0000 (09:33 +0530)
committerAnup Patel <anup@brainfault.org>
Mon, 8 Aug 2022 04:03:37 +0000 (09:33 +0530)
We update timer drivers makefile to use kconfig for enabling/disabling
drivers. To avoid compile errors, we also enable appropriate timer
drivers for each platform.

Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Tested-by: Andrew Jones <ajones@ventanamicro.com>
Acked-by: Atish Patra <atishp@rivosinc.com>
Tested-by: Atish Patra <atishp@rivosinc.com>
include/sbi_utils/timer/fdt_timer.h
lib/utils/Kconfig
lib/utils/timer/Kconfig [new file with mode: 0644]
lib/utils/timer/objects.mk
platform/fpga/ariane/Kconfig
platform/fpga/openpiton/Kconfig
platform/generic/configs/defconfig
platform/kendryte/k210/Kconfig
platform/nuclei/ux600/Kconfig
platform/template/Kconfig

index 36202a4..cf105fe 100644 (file)
@@ -12,6 +12,8 @@
 
 #include <sbi/sbi_types.h>
 
+#ifdef CONFIG_FDT_TIMER
+
 struct fdt_timer {
        const struct fdt_match *match_table;
        int (*cold_init)(void *fdt, int nodeoff, const struct fdt_match *match);
@@ -23,4 +25,11 @@ void fdt_timer_exit(void);
 
 int fdt_timer_init(bool cold_boot);
 
+#else
+
+static inline void fdt_timer_exit(void) { }
+static inline int fdt_timer_init(bool cold_boot) { return 0; }
+
+#endif
+
 #endif
index 492f4e9..6561d0b 100644 (file)
@@ -8,4 +8,6 @@ source "$(OPENSBI_SRC_DIR)/lib/utils/serial/Kconfig"
 
 source "$(OPENSBI_SRC_DIR)/lib/utils/sys/Kconfig"
 
+source "$(OPENSBI_SRC_DIR)/lib/utils/timer/Kconfig"
+
 endmenu
diff --git a/lib/utils/timer/Kconfig b/lib/utils/timer/Kconfig
new file mode 100644 (file)
index 0000000..0a1c727
--- /dev/null
@@ -0,0 +1,22 @@
+# SPDX-License-Identifier: BSD-2-Clause
+
+menu "Timer Device Support"
+
+config FDT_TIMER
+       bool "FDT based timer drivers"
+       default n
+
+if FDT_TIMER
+
+config FDT_TIMER_MTIMER
+       bool "ACLINT MTIMER FDT driver"
+       select TIMER_MTIMER
+       default n
+
+endif
+
+config TIMER_MTIMER
+       bool "ACLINT MTIMER support"
+       default n
+
+endmenu
index bc4073d..7f5f3ce 100644 (file)
@@ -7,10 +7,10 @@
 #   Anup Patel <anup.patel@wdc.com>
 #
 
-libsbiutils-objs-y += timer/aclint_mtimer.o
+libsbiutils-objs-$(CONFIG_TIMER_MTIMER) += timer/aclint_mtimer.o
 
-libsbiutils-objs-y += timer/fdt_timer.o
-libsbiutils-objs-y += timer/fdt_timer_drivers.o
+libsbiutils-objs-$(CONFIG_FDT_TIMER) += timer/fdt_timer.o
+libsbiutils-objs-$(CONFIG_FDT_TIMER) += timer/fdt_timer_drivers.o
 
-carray-fdt_timer_drivers-y += fdt_timer_mtimer
-libsbiutils-objs-y += timer/fdt_timer_mtimer.o
+carray-fdt_timer_drivers-$(CONFIG_FDT_TIMER_MTIMER) += fdt_timer_mtimer
+libsbiutils-objs-$(CONFIG_FDT_TIMER_MTIMER) += timer/fdt_timer_mtimer.o
index 3ce0ec1..a7fd758 100644 (file)
@@ -3,4 +3,5 @@
 config PLATFORM_ARIANE_FPGA
        bool
        select SERIAL_UART8250
+       select TIMER_MTIMER
        default y
index 4dd752d..a7f09e4 100644 (file)
@@ -3,4 +3,5 @@
 config PLATFORM_OPENPITON_FPGA
        bool
        select SERIAL_UART8250
+       select TIMER_MTIMER
        default y
index 9778665..9b96a4f 100644 (file)
@@ -12,3 +12,5 @@ CONFIG_FDT_SERIAL_SIFIVE=y
 CONFIG_FDT_SERIAL_LITEX=y
 CONFIG_FDT_SERIAL_UART8250=y
 CONFIG_FDT_SERIAL_XILINX_UARTLITE=y
+CONFIG_FDT_TIMER=y
+CONFIG_FDT_TIMER_MTIMER=y
index adc7613..90db649 100644 (file)
@@ -3,4 +3,5 @@
 config PLATFORM_KENDRYTE_K210
        bool
        select SERIAL_SIFIVE
+       select TIMER_MTIMER
        default y
index 69fe8f8..dec2654 100644 (file)
@@ -3,4 +3,5 @@
 config PLATFORM_NUCLEI_UX600
        bool
        select SERIAL_SIFIVE
+       select TIMER_MTIMER
        default y
index f080729..96d4b9a 100644 (file)
@@ -10,4 +10,5 @@
 config PLATFORM_TEMPLATE
        bool
        select SERIAL_UART8250
+       select TIMER_MTIMER
        default y