diff --git a/include/sbi_utils/cppc/fdt_cppc.h b/include/sbi_utils/cppc/fdt_cppc.h deleted file mode 100644 index 433c6d32..00000000 --- a/include/sbi_utils/cppc/fdt_cppc.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * SPDX-License-Identifier: BSD-2-Clause - * - * Copyright (c) 2024 Ventana Micro Systems Inc. - * - * Authors: - * Anup Patel - */ - -#ifndef __FDT_CPPC_H__ -#define __FDT_CPPC_H__ - -#include -#include - -#ifdef CONFIG_FDT_CPPC - -void fdt_cppc_init(const void *fdt); - -#else - -static inline void fdt_cppc_init(const void *fdt) { } - -#endif - -#endif diff --git a/include/sbi_utils/fdt/fdt_driver.h b/include/sbi_utils/fdt/fdt_driver.h index 12ffe3f9..5b5bda90 100644 --- a/include/sbi_utils/fdt/fdt_driver.h +++ b/include/sbi_utils/fdt/fdt_driver.h @@ -18,6 +18,9 @@ struct fdt_driver { bool experimental; }; +/* List of early FDT drivers generated at compile time */ +extern const struct fdt_driver *const fdt_early_drivers[]; + /** * Initialize a driver instance for a specific DT node * diff --git a/include/sbi_utils/hsm/fdt_hsm.h b/include/sbi_utils/hsm/fdt_hsm.h deleted file mode 100644 index 58061afc..00000000 --- a/include/sbi_utils/hsm/fdt_hsm.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * SPDX-License-Identifier: BSD-2-Clause - * - * Copyright (c) 2024 Ventana Micro Systems Inc. - * - * Authors: - * Anup Patel - */ - -#ifndef __FDT_HSM_H__ -#define __FDT_HSM_H__ - -#include -#include - -#ifdef CONFIG_FDT_HSM - -void fdt_hsm_init(const void *fdt); - -#else - -static inline void fdt_hsm_init(const void *fdt) { } - -#endif - -#endif diff --git a/include/sbi_utils/reset/fdt_reset.h b/include/sbi_utils/reset/fdt_reset.h deleted file mode 100644 index 5fba3886..00000000 --- a/include/sbi_utils/reset/fdt_reset.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * SPDX-License-Identifier: BSD-2-Clause - * - * Copyright (c) 2020 Western Digital Corporation or its affiliates. - * - * Authors: - * Anup Patel - */ - -#ifndef __FDT_RESET_H__ -#define __FDT_RESET_H__ - -#include -#include - -#ifdef CONFIG_FDT_RESET - -/** - * fdt_reset_init() - initialize reset drivers based on the device-tree - * - * This function shall be invoked in final init. - */ -void fdt_reset_init(const void *fdt); - -#else - -static inline void fdt_reset_init(const void *fdt) { } - -#endif - -#endif diff --git a/include/sbi_utils/suspend/fdt_suspend.h b/include/sbi_utils/suspend/fdt_suspend.h deleted file mode 100644 index bfc6c69a..00000000 --- a/include/sbi_utils/suspend/fdt_suspend.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * SPDX-License-Identifier: BSD-2-Clause - * - * Copyright (c) 2024 Ventana Micro Systems Inc. - * - * Authors: - * Anup Patel - */ - -#ifndef __FDT_SUSPEND_H__ -#define __FDT_SUSPEND_H__ - -#include -#include - -#ifdef CONFIG_FDT_SUSPEND - -void fdt_suspend_init(const void *fdt); - -#else - -static inline void fdt_suspend_init(const void *fdt) { } - -#endif - -#endif diff --git a/lib/utils/cppc/fdt_cppc.c b/lib/utils/cppc/fdt_cppc.c deleted file mode 100644 index 0e1ecb24..00000000 --- a/lib/utils/cppc/fdt_cppc.c +++ /dev/null @@ -1,22 +0,0 @@ -/* - * SPDX-License-Identifier: BSD-2-Clause - * - * Copyright (c) 2024 Ventana Micro Systems Inc. - * - * Authors: - * Anup Patel - */ - -#include - -/* List of FDT CPPC drivers generated at compile time */ -extern const struct fdt_driver *const fdt_cppc_drivers[]; - -void fdt_cppc_init(const void *fdt) -{ - /* - * Platforms might have multiple CPPC devices or might - * not have any so probe all and don't fail. - */ - fdt_driver_init_all(fdt, fdt_cppc_drivers); -} diff --git a/lib/utils/cppc/fdt_cppc_drivers.carray b/lib/utils/cppc/fdt_cppc_drivers.carray deleted file mode 100644 index b25c7888..00000000 --- a/lib/utils/cppc/fdt_cppc_drivers.carray +++ /dev/null @@ -1,3 +0,0 @@ -HEADER: sbi_utils/cppc/fdt_cppc.h -TYPE: const struct fdt_driver -NAME: fdt_cppc_drivers diff --git a/lib/utils/cppc/fdt_cppc_rpmi.c b/lib/utils/cppc/fdt_cppc_rpmi.c index 95328404..39342198 100644 --- a/lib/utils/cppc/fdt_cppc_rpmi.c +++ b/lib/utils/cppc/fdt_cppc_rpmi.c @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/lib/utils/cppc/objects.mk b/lib/utils/cppc/objects.mk index 07dc7d89..ece1791b 100644 --- a/lib/utils/cppc/objects.mk +++ b/lib/utils/cppc/objects.mk @@ -7,8 +7,5 @@ # Anup Patel # -libsbiutils-objs-$(CONFIG_FDT_CPPC) += cppc/fdt_cppc.o -libsbiutils-objs-$(CONFIG_FDT_CPPC) += cppc/fdt_cppc_drivers.carray.o - -carray-fdt_cppc_drivers-$(CONFIG_FDT_CPPC_RPMI) += fdt_cppc_rpmi +carray-fdt_early_drivers-$(CONFIG_FDT_CPPC_RPMI) += fdt_cppc_rpmi libsbiutils-objs-$(CONFIG_FDT_CPPC_RPMI) += cppc/fdt_cppc_rpmi.o diff --git a/lib/utils/fdt/fdt_early_drivers.carray b/lib/utils/fdt/fdt_early_drivers.carray new file mode 100644 index 00000000..969e10b1 --- /dev/null +++ b/lib/utils/fdt/fdt_early_drivers.carray @@ -0,0 +1,3 @@ +HEADER: sbi_utils/fdt/fdt_driver.h +TYPE: const struct fdt_driver +NAME: fdt_early_drivers diff --git a/lib/utils/fdt/objects.mk b/lib/utils/fdt/objects.mk index 1a2298be..31cf1c5a 100644 --- a/lib/utils/fdt/objects.mk +++ b/lib/utils/fdt/objects.mk @@ -4,6 +4,8 @@ # Copyright (C) 2020 Bin Meng # +libsbiutils-objs-$(CONFIG_FDT) += fdt/fdt_early_drivers.carray.o + libsbiutils-objs-$(CONFIG_FDT_DOMAIN) += fdt/fdt_domain.o libsbiutils-objs-$(CONFIG_FDT_PMU) += fdt/fdt_pmu.o libsbiutils-objs-$(CONFIG_FDT) += fdt/fdt_helper.o diff --git a/lib/utils/hsm/fdt_hsm.c b/lib/utils/hsm/fdt_hsm.c deleted file mode 100644 index 162b9867..00000000 --- a/lib/utils/hsm/fdt_hsm.c +++ /dev/null @@ -1,22 +0,0 @@ -/* - * SPDX-License-Identifier: BSD-2-Clause - * - * Copyright (c) 2024 Ventana Micro Systems Inc. - * - * Authors: - * Anup Patel - */ - -#include - -/* List of FDT HSM drivers generated at compile time */ -extern const struct fdt_driver *const fdt_hsm_drivers[]; - -void fdt_hsm_init(const void *fdt) -{ - /* - * Platforms might have multiple HSM devices or might - * not have any so probe all and don't fail. - */ - fdt_driver_init_all(fdt, fdt_hsm_drivers); -} diff --git a/lib/utils/hsm/fdt_hsm_drivers.carray b/lib/utils/hsm/fdt_hsm_drivers.carray deleted file mode 100644 index 73680a25..00000000 --- a/lib/utils/hsm/fdt_hsm_drivers.carray +++ /dev/null @@ -1,3 +0,0 @@ -HEADER: sbi_utils/hsm/fdt_hsm.h -TYPE: const struct fdt_driver -NAME: fdt_hsm_drivers diff --git a/lib/utils/hsm/fdt_hsm_rpmi.c b/lib/utils/hsm/fdt_hsm_rpmi.c index 66fa0fe2..5142c3e6 100644 --- a/lib/utils/hsm/fdt_hsm_rpmi.c +++ b/lib/utils/hsm/fdt_hsm_rpmi.c @@ -12,9 +12,9 @@ #include #include #include -#include +#include #include -#include +#include #include #include #include diff --git a/lib/utils/hsm/objects.mk b/lib/utils/hsm/objects.mk index b54b6f6c..c13d81f7 100644 --- a/lib/utils/hsm/objects.mk +++ b/lib/utils/hsm/objects.mk @@ -7,8 +7,5 @@ # Anup Patel # -libsbiutils-objs-$(CONFIG_FDT_HSM) += hsm/fdt_hsm.o -libsbiutils-objs-$(CONFIG_FDT_HSM) += hsm/fdt_hsm_drivers.carray.o - -carray-fdt_hsm_drivers-$(CONFIG_FDT_HSM_RPMI) += fdt_hsm_rpmi +carray-fdt_early_drivers-$(CONFIG_FDT_HSM_RPMI) += fdt_hsm_rpmi libsbiutils-objs-$(CONFIG_FDT_HSM_RPMI) += hsm/fdt_hsm_rpmi.o diff --git a/lib/utils/reset/fdt_reset.c b/lib/utils/reset/fdt_reset.c deleted file mode 100644 index 633a25cd..00000000 --- a/lib/utils/reset/fdt_reset.c +++ /dev/null @@ -1,18 +0,0 @@ -/* - * SPDX-License-Identifier: BSD-2-Clause - * - * Copyright (c) 2020 Western Digital Corporation or its affiliates. - * - * Authors: - * Anup Patel - */ - -#include - -/* List of FDT reset drivers generated at compile time */ -extern const struct fdt_driver *const fdt_reset_drivers[]; - -void fdt_reset_init(const void *fdt) -{ - fdt_driver_init_all(fdt, fdt_reset_drivers); -} diff --git a/lib/utils/reset/fdt_reset_atcwdt200.c b/lib/utils/reset/fdt_reset_atcwdt200.c index d3e38e61..97ec7431 100644 --- a/lib/utils/reset/fdt_reset_atcwdt200.c +++ b/lib/utils/reset/fdt_reset_atcwdt200.c @@ -14,8 +14,8 @@ #include #include #include +#include #include -#include #include #define ATCWDT200_WP_NUM 0x5aa5 diff --git a/lib/utils/reset/fdt_reset_drivers.carray b/lib/utils/reset/fdt_reset_drivers.carray deleted file mode 100644 index 2e9e86af..00000000 --- a/lib/utils/reset/fdt_reset_drivers.carray +++ /dev/null @@ -1,3 +0,0 @@ -HEADER: sbi_utils/reset/fdt_reset.h -TYPE: const struct fdt_driver -NAME: fdt_reset_drivers diff --git a/lib/utils/reset/fdt_reset_gpio.c b/lib/utils/reset/fdt_reset_gpio.c index cf751254..fabeee58 100644 --- a/lib/utils/reset/fdt_reset_gpio.c +++ b/lib/utils/reset/fdt_reset_gpio.c @@ -15,9 +15,9 @@ #include #include #include +#include #include #include -#include struct gpio_reset { struct gpio_pin pin; diff --git a/lib/utils/reset/fdt_reset_htif.c b/lib/utils/reset/fdt_reset_htif.c index 61c907fa..a1066dac 100644 --- a/lib/utils/reset/fdt_reset_htif.c +++ b/lib/utils/reset/fdt_reset_htif.c @@ -7,7 +7,7 @@ * Anup Patel */ -#include +#include #include #include diff --git a/lib/utils/reset/fdt_reset_rpmi.c b/lib/utils/reset/fdt_reset_rpmi.c index 70826b96..15d3c6d5 100644 --- a/lib/utils/reset/fdt_reset_rpmi.c +++ b/lib/utils/reset/fdt_reset_rpmi.c @@ -10,8 +10,8 @@ #include #include #include +#include #include -#include #include #include #include diff --git a/lib/utils/reset/fdt_reset_sg2042_hwmon_mcu.c b/lib/utils/reset/fdt_reset_sg2042_hwmon_mcu.c index 66826830..94ac4162 100644 --- a/lib/utils/reset/fdt_reset_sg2042_hwmon_mcu.c +++ b/lib/utils/reset/fdt_reset_sg2042_hwmon_mcu.c @@ -10,8 +10,8 @@ #include #include #include +#include #include -#include #include #define MANGO_BOARD_TYPE_MASK 0x80 diff --git a/lib/utils/reset/fdt_reset_sunxi_wdt.c b/lib/utils/reset/fdt_reset_sunxi_wdt.c index 708bf25c..7e7b1118 100644 --- a/lib/utils/reset/fdt_reset_sunxi_wdt.c +++ b/lib/utils/reset/fdt_reset_sunxi_wdt.c @@ -9,8 +9,8 @@ #include #include #include +#include #include -#include #define WDT_KEY_VAL 0x16aa0000 diff --git a/lib/utils/reset/fdt_reset_syscon.c b/lib/utils/reset/fdt_reset_syscon.c index d1a3bc0e..50badcd0 100644 --- a/lib/utils/reset/fdt_reset_syscon.c +++ b/lib/utils/reset/fdt_reset_syscon.c @@ -12,9 +12,9 @@ #include #include #include +#include #include #include -#include struct syscon_reset { struct regmap *rmap; diff --git a/lib/utils/reset/objects.mk b/lib/utils/reset/objects.mk index 8f3774c5..ac38b49d 100644 --- a/lib/utils/reset/objects.mk +++ b/lib/utils/reset/objects.mk @@ -7,28 +7,25 @@ # Anup Patel # -libsbiutils-objs-$(CONFIG_FDT_RESET) += reset/fdt_reset.o -libsbiutils-objs-$(CONFIG_FDT_RESET) += reset/fdt_reset_drivers.carray.o - -carray-fdt_reset_drivers-$(CONFIG_FDT_RESET_ATCWDT200) += fdt_reset_atcwdt200 +carray-fdt_early_drivers-$(CONFIG_FDT_RESET_ATCWDT200) += fdt_reset_atcwdt200 libsbiutils-objs-$(CONFIG_FDT_RESET_ATCWDT200) += reset/fdt_reset_atcwdt200.o -carray-fdt_reset_drivers-$(CONFIG_FDT_RESET_GPIO) += fdt_poweroff_gpio -carray-fdt_reset_drivers-$(CONFIG_FDT_RESET_GPIO) += fdt_reset_gpio +carray-fdt_early_drivers-$(CONFIG_FDT_RESET_GPIO) += fdt_poweroff_gpio +carray-fdt_early_drivers-$(CONFIG_FDT_RESET_GPIO) += fdt_reset_gpio libsbiutils-objs-$(CONFIG_FDT_RESET_GPIO) += reset/fdt_reset_gpio.o -carray-fdt_reset_drivers-$(CONFIG_FDT_RESET_HTIF) += fdt_reset_htif +carray-fdt_early_drivers-$(CONFIG_FDT_RESET_HTIF) += fdt_reset_htif libsbiutils-objs-$(CONFIG_FDT_RESET_HTIF) += reset/fdt_reset_htif.o -carray-fdt_reset_drivers-$(CONFIG_FDT_RESET_SG2042_HWMON_MCU) += fdt_reset_sg2042_mcu +carray-fdt_early_drivers-$(CONFIG_FDT_RESET_SG2042_HWMON_MCU) += fdt_reset_sg2042_mcu libsbiutils-objs-$(CONFIG_FDT_RESET_SG2042_HWMON_MCU) += reset/fdt_reset_sg2042_hwmon_mcu.o -carray-fdt_reset_drivers-$(CONFIG_FDT_RESET_SUNXI_WDT) += fdt_reset_sunxi_wdt +carray-fdt_early_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-$(CONFIG_FDT_RESET_SYSCON) += fdt_syscon_poweroff -carray-fdt_reset_drivers-$(CONFIG_FDT_RESET_SYSCON) += fdt_syscon_reboot +carray-fdt_early_drivers-$(CONFIG_FDT_RESET_SYSCON) += fdt_syscon_poweroff +carray-fdt_early_drivers-$(CONFIG_FDT_RESET_SYSCON) += fdt_syscon_reboot libsbiutils-objs-$(CONFIG_FDT_RESET_SYSCON) += reset/fdt_reset_syscon.o -carray-fdt_reset_drivers-$(CONFIG_FDT_RESET_RPMI) += fdt_reset_rpmi +carray-fdt_early_drivers-$(CONFIG_FDT_RESET_RPMI) += fdt_reset_rpmi libsbiutils-objs-$(CONFIG_FDT_RESET_RPMI) += reset/fdt_reset_rpmi.o diff --git a/lib/utils/suspend/fdt_suspend.c b/lib/utils/suspend/fdt_suspend.c deleted file mode 100644 index bd4691a0..00000000 --- a/lib/utils/suspend/fdt_suspend.c +++ /dev/null @@ -1,22 +0,0 @@ -/* - * SPDX-License-Identifier: BSD-2-Clause - * - * Copyright (c) 2024 Ventana Micro Systems Inc. - * - * Authors: - * Anup Patel - */ - -#include - -/* List of FDT suspend drivers generated at compile time */ -extern const struct fdt_driver *const fdt_suspend_drivers[]; - -void fdt_suspend_init(const void *fdt) -{ - /* - * Platforms might have multiple system suspend devices or - * might not have any so probe all and don't fail. - */ - fdt_driver_init_all(fdt, fdt_suspend_drivers); -} diff --git a/lib/utils/suspend/fdt_suspend_drivers.carray b/lib/utils/suspend/fdt_suspend_drivers.carray deleted file mode 100644 index a0c857fc..00000000 --- a/lib/utils/suspend/fdt_suspend_drivers.carray +++ /dev/null @@ -1,3 +0,0 @@ -HEADER: sbi_utils/suspend/fdt_suspend.h -TYPE: const struct fdt_driver -NAME: fdt_suspend_drivers diff --git a/lib/utils/suspend/fdt_suspend_rpmi.c b/lib/utils/suspend/fdt_suspend_rpmi.c index 07ff5198..b08c33e9 100644 --- a/lib/utils/suspend/fdt_suspend_rpmi.c +++ b/lib/utils/suspend/fdt_suspend_rpmi.c @@ -10,11 +10,11 @@ #include #include #include +#include #include #include #include #include -#include struct rpmi_syssusp { struct mbox_chan *chan; diff --git a/lib/utils/suspend/objects.mk b/lib/utils/suspend/objects.mk index 657670a8..9c386248 100644 --- a/lib/utils/suspend/objects.mk +++ b/lib/utils/suspend/objects.mk @@ -7,8 +7,5 @@ # Anup Patel # -libsbiutils-objs-$(CONFIG_FDT_SUSPEND) += suspend/fdt_suspend.o -libsbiutils-objs-$(CONFIG_FDT_SUSPEND) += suspend/fdt_suspend_drivers.carray.o - -carray-fdt_suspend_drivers-$(CONFIG_FDT_SUSPEND_RPMI) += fdt_suspend_rpmi +carray-fdt_early_drivers-$(CONFIG_FDT_SUSPEND_RPMI) += fdt_suspend_rpmi libsbiutils-objs-$(CONFIG_FDT_SUSPEND_RPMI) += suspend/fdt_suspend_rpmi.o diff --git a/platform/generic/platform.c b/platform/generic/platform.c index 027ec89a..14cbf08e 100644 --- a/platform/generic/platform.c +++ b/platform/generic/platform.c @@ -17,21 +17,18 @@ #include #include #include -#include -#include #include +#include #include #include #include -#include +#include #include #include +#include #include -#include -#include -#include -#include #include +#include /* List of platform override modules generated at compile time */ extern const struct platform_override *const platform_override_modules[]; @@ -257,10 +254,7 @@ static int generic_early_init(bool cold_boot) if (rc) return rc; - fdt_cppc_init(fdt); - fdt_hsm_init(fdt); - fdt_reset_init(fdt); - fdt_suspend_init(fdt); + fdt_driver_init_all(fdt, fdt_early_drivers); } if (!generic_plat || !generic_plat->early_init) diff --git a/platform/generic/sifive/fu740.c b/platform/generic/sifive/fu740.c index 52ca12ff..7a6c0319 100644 --- a/platform/generic/sifive/fu740.c +++ b/platform/generic/sifive/fu740.c @@ -15,9 +15,9 @@ #include #include #include -#include +#include #include -#include +#include #include #define DA9063_REG_PAGE_CON 0x00 diff --git a/platform/generic/starfive/jh7110.c b/platform/generic/starfive/jh7110.c index 6d95758f..cd8ce27d 100644 --- a/platform/generic/starfive/jh7110.c +++ b/platform/generic/starfive/jh7110.c @@ -16,8 +16,8 @@ #include #include #include +#include #include -#include #include struct pmic {