aboutsummaryrefslogtreecommitdiff
path: root/lib/utils/cppc
diff options
context:
space:
mode:
authorAnup Patel <apatel@ventanamicro.com>2024-08-07 10:47:18 +0530
committerAnup Patel <anup@brainfault.org>2024-12-06 09:26:45 +0530
commit54e632b72e80101cf733c47ad1c419d23a8b78e7 (patch)
treec4e1728b41cb62f10ba733a3141697e35e1ff290 /lib/utils/cppc
parent33ee9b8240fee298ddd357a68096652286024670 (diff)
downloadopensbi-54e632b72e80101cf733c47ad1c419d23a8b78e7.zip
opensbi-54e632b72e80101cf733c47ad1c419d23a8b78e7.tar.gz
opensbi-54e632b72e80101cf733c47ad1c419d23a8b78e7.tar.bz2
lib: utils: Add simple FDT based CPPC driver framework
The generic platform can have multiple CPPC drivers so add a simple FDT based CPPC driver framework. Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Diffstat (limited to 'lib/utils/cppc')
-rw-r--r--lib/utils/cppc/Kconfig10
-rw-r--r--lib/utils/cppc/fdt_cppc.c22
-rw-r--r--lib/utils/cppc/fdt_cppc_drivers.carray3
-rw-r--r--lib/utils/cppc/objects.mk11
4 files changed, 46 insertions, 0 deletions
diff --git a/lib/utils/cppc/Kconfig b/lib/utils/cppc/Kconfig
new file mode 100644
index 0000000..08d1c97
--- /dev/null
+++ b/lib/utils/cppc/Kconfig
@@ -0,0 +1,10 @@
+# SPDX-License-Identifier: BSD-2-Clause
+
+menu "CPPC Device Support"
+
+config FDT_CPPC
+ bool "FDT based CPPC drivers"
+ depends on FDT
+ default n
+
+endmenu
diff --git a/lib/utils/cppc/fdt_cppc.c b/lib/utils/cppc/fdt_cppc.c
new file mode 100644
index 0000000..0e1ecb2
--- /dev/null
+++ b/lib/utils/cppc/fdt_cppc.c
@@ -0,0 +1,22 @@
+/*
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2024 Ventana Micro Systems Inc.
+ *
+ * Authors:
+ * Anup Patel <apatel@ventanamicro.com>
+ */
+
+#include <sbi_utils/cppc/fdt_cppc.h>
+
+/* 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
new file mode 100644
index 0000000..b25c788
--- /dev/null
+++ b/lib/utils/cppc/fdt_cppc_drivers.carray
@@ -0,0 +1,3 @@
+HEADER: sbi_utils/cppc/fdt_cppc.h
+TYPE: const struct fdt_driver
+NAME: fdt_cppc_drivers
diff --git a/lib/utils/cppc/objects.mk b/lib/utils/cppc/objects.mk
new file mode 100644
index 0000000..fb37478
--- /dev/null
+++ b/lib/utils/cppc/objects.mk
@@ -0,0 +1,11 @@
+#
+# SPDX-License-Identifier: BSD-2-Clause
+#
+# Copyright (c) 2024 Ventana Micro Systems Inc.
+#
+# Authors:
+# Anup Patel <apatel@ventanamicro.com>
+#
+
+libsbiutils-objs-$(CONFIG_FDT_CPPC) += cppc/fdt_cppc.o
+libsbiutils-objs-$(CONFIG_FDT_CPPC) += cppc/fdt_cppc_drivers.carray.o