platform: generic: thead: initialize PMU by default in thead generic platform
authorInochi Amaoto <inochiama@outlook.com>
Sat, 7 Oct 2023 03:06:31 +0000 (11:06 +0800)
committerAnup Patel <anup@brainfault.org>
Tue, 14 Nov 2023 16:23:52 +0000 (21:53 +0530)
Since all the SoC with thead c9xx cores need this initialization at now,
initialize the c9xx pmu in the thead generic platform by default.

Signed-off-by: Inochi Amaoto <inochiama@outlook.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
platform/generic/Kconfig
platform/generic/thead/thead-generic.c

index 3be75cf3d2304e071c614982a04e08f01a17fb76..f9e7ed2ab94fb0cafe973e7f4a15831fcce68fc9 100644 (file)
@@ -56,6 +56,7 @@ config PLATFORM_STARFIVE_JH7110
 config PLATFORM_THEAD
        bool "THEAD C9xx support"
        select THEAD_C9XX_ERRATA
+       select THEAD_C9XX_PMU
        default n
 
 source "$(OPENSBI_SRC_DIR)/platform/generic/andes/Kconfig"
index c77140c33af20dc7c852e349c4f7adbe8f25ad54..72f4aaacce792597e87d9b1ded1619e62f2cb12c 100644 (file)
@@ -8,6 +8,7 @@
 
 #include <platform_override.h>
 #include <thead/c9xx_errata.h>
+#include <thead/c9xx_pmu.h>
 #include <sbi/sbi_const.h>
 #include <sbi/sbi_platform.h>
 #include <sbi/sbi_scratch.h>
@@ -29,6 +30,13 @@ static int thead_generic_early_init(bool cold_boot,
        return 0;
 }
 
+static int thead_generic_extensions_init(const struct fdt_match *match,
+                                        struct sbi_hart_features *hfeatures)
+{
+       thead_c9xx_register_pmu_device();
+       return 0;
+}
+
 static struct thead_generic_quirks thead_th1520_quirks = {
        .errata = THEAD_QUIRK_ERRATA_TLB_FLUSH,
 };
@@ -39,6 +47,7 @@ static const struct fdt_match thead_generic_match[] = {
 };
 
 const struct platform_override thead_generic = {
-       .match_table    = thead_generic_match,
-       .early_init     = thead_generic_early_init,
+       .match_table            = thead_generic_match,
+       .early_init             = thead_generic_early_init,
+       .extensions_init        = thead_generic_extensions_init,
 };