lib: utils/reset: Use kconfig for enabling/disabling drivers

We update reset drivers makefile to use kconfig for enabling/disabling
drivers. To avoid compile errors, we also enable appropriate reset
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>
This commit is contained in:
Anup Patel
2022-08-08 09:33:26 +05:30
committed by Anup Patel
parent 26bbff5f76
commit 2adc94b466
5 changed files with 67 additions and 14 deletions

View File

@@ -17,6 +17,8 @@ struct fdt_reset {
int (*init)(void *fdt, int nodeoff, const struct fdt_match *match);
};
#ifdef CONFIG_FDT_RESET
/**
* fdt_reset_driver_init() - initialize reset driver based on the device-tree
*/
@@ -29,4 +31,14 @@ int fdt_reset_driver_init(void *fdt, struct fdt_reset *drv);
*/
void fdt_reset_init(void);
#else
static inline int fdt_reset_driver_init(void *fdt, struct fdt_reset *drv)
{
return 0;
}
static inline void fdt_reset_init(void) { }
#endif
#endif

View File

@@ -2,6 +2,8 @@
menu "Utils and Drivers Support"
source "$(OPENSBI_SRC_DIR)/lib/utils/reset/Kconfig"
source "$(OPENSBI_SRC_DIR)/lib/utils/serial/Kconfig"
endmenu

33
lib/utils/reset/Kconfig Normal file
View File

@@ -0,0 +1,33 @@
# SPDX-License-Identifier: BSD-2-Clause
menu "System Reset Support"
config FDT_RESET
bool "FDT based reset drivers"
default n
if FDT_RESET
config FDT_RESET_GPIO
bool "GPIO FDT reset driver"
default n
config FDT_RESET_HTIF
bool "Host transfer interface (HTIF) FDT reset driver"
default n
config FDT_RESET_SIFIVE_TEST
bool "SiFive Test FDT reset driver"
default n
config FDT_RESET_SUNXI_WDT
bool "Sunxi WDT FDT reset driver"
default n
config FDT_RESET_THEAD
bool "T-HEAD FDT reset driver"
default n
endif
endmenu

View File

@@ -7,22 +7,22 @@
# Anup Patel <anup.patel@wdc.com>
#
libsbiutils-objs-y += reset/fdt_reset.o
libsbiutils-objs-y += reset/fdt_reset_drivers.o
libsbiutils-objs-$(CONFIG_FDT_RESET) += reset/fdt_reset.o
libsbiutils-objs-$(CONFIG_FDT_RESET) += reset/fdt_reset_drivers.o
carray-fdt_reset_drivers-y += fdt_poweroff_gpio
carray-fdt_reset_drivers-y += fdt_reset_gpio
libsbiutils-objs-y += reset/fdt_reset_gpio.o
carray-fdt_reset_drivers-$(CONFIG_FDT_RESET_GPIO) += fdt_poweroff_gpio
carray-fdt_reset_drivers-$(CONFIG_FDT_RESET_GPIO) += fdt_reset_gpio
libsbiutils-objs-$(CONFIG_FDT_RESET_GPIO) += reset/fdt_reset_gpio.o
carray-fdt_reset_drivers-y += fdt_reset_htif
libsbiutils-objs-y += reset/fdt_reset_htif.o
carray-fdt_reset_drivers-$(CONFIG_FDT_RESET_HTIF) += fdt_reset_htif
libsbiutils-objs-$(CONFIG_FDT_RESET_HTIF) += reset/fdt_reset_htif.o
carray-fdt_reset_drivers-y += fdt_reset_sifive_test
libsbiutils-objs-y += reset/fdt_reset_sifive_test.o
carray-fdt_reset_drivers-$(CONFIG_FDT_RESET_SIFIVE_TEST) += fdt_reset_sifive_test
libsbiutils-objs-$(CONFIG_FDT_RESET_SIFIVE_TEST) += reset/fdt_reset_sifive_test.o
carray-fdt_reset_drivers-y += fdt_reset_sunxi_wdt
libsbiutils-objs-y += reset/fdt_reset_sunxi_wdt.o
carray-fdt_reset_drivers-$(CONFIG_FDT_RESET_SUNXI_WDT) += fdt_reset_sunxi_wdt
libsbiutils-objs-$(CONFIG_FDT_RESET_SUNXI_WDT) += reset/fdt_reset_sunxi_wdt.o
carray-fdt_reset_drivers-y += fdt_reset_thead
libsbiutils-objs-y += reset/fdt_reset_thead.o
libsbiutils-objs-y += reset/fdt_reset_thead_asm.o
carray-fdt_reset_drivers-$(CONFIG_FDT_RESET_THEAD) += fdt_reset_thead
libsbiutils-objs-$(CONFIG_FDT_RESET_THEAD) += reset/fdt_reset_thead.o
libsbiutils-objs-$(CONFIG_FDT_RESET_THEAD) += reset/fdt_reset_thead_asm.o

View File

@@ -1,3 +1,9 @@
CONFIG_FDT_RESET=y
CONFIG_FDT_RESET_GPIO=y
CONFIG_FDT_RESET_HTIF=y
CONFIG_FDT_RESET_SIFIVE_TEST=y
CONFIG_FDT_RESET_SUNXI_WDT=y
CONFIG_FDT_RESET_THEAD=y
CONFIG_FDT_SERIAL=y
CONFIG_FDT_SERIAL_GAISLER=y
CONFIG_FDT_SERIAL_HTIF=y