aboutsummaryrefslogtreecommitdiff
path: root/module/scmi_apcore/include/mod_scmi_apcore.h
diff options
context:
space:
mode:
authorRonald Cron <ronald.cron@arm.com>2018-06-05 09:31:39 +0200
committerRonald Cron <ronald.cron@arm.com>2018-06-08 11:46:47 +0200
commitb151958dbb2f37383f4d9a1f7802c36008d9fef2 (patch)
treefe20ebfb8c10facbfd028edefe601462ae3ee64c /module/scmi_apcore/include/mod_scmi_apcore.h
parentfd3027b6fd17a4a33a685adb73f2acfcae9a2ced (diff)
Add support for SGM-775
Co-authored-by: Filipe Rinaldi <filipe.rinaldi@arm.com> Co-authored-by: Paul Beesley <paul.beesley@arm.com> Co-authored-by: Chris Kay <chris.kay@arm.com> Co-authored-by: Elieva Pignat <elieva.pignat@arm.com> Co-authored-by: Pedro Custodio <pedro.krewinkelcustodio@arm.com> Change-Id: Ic7524ad58a7c15d5b055e88a9719b2feee437f1d Signed-off-by: Ronald Cron <ronald.cron@arm.com>
Diffstat (limited to 'module/scmi_apcore/include/mod_scmi_apcore.h')
-rw-r--r--module/scmi_apcore/include/mod_scmi_apcore.h75
1 files changed, 75 insertions, 0 deletions
diff --git a/module/scmi_apcore/include/mod_scmi_apcore.h b/module/scmi_apcore/include/mod_scmi_apcore.h
new file mode 100644
index 00000000..82fe61d6
--- /dev/null
+++ b/module/scmi_apcore/include/mod_scmi_apcore.h
@@ -0,0 +1,75 @@
+/*
+ * Arm SCP/MCP Software
+ * Copyright (c) 2018, Arm Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Description:
+ * SCMI Core Configuration Protocol Support.
+ */
+
+#ifndef MOD_SCMI_APCORE_H
+#define MOD_SCMI_APCORE_H
+
+#include <stdint.h>
+#include <stddef.h>
+
+/*!
+ * \ingroup GroupModules Modules
+ * \defgroup GroupSCMI_APCORE SCMI Core Configuration Protocol
+ * \{
+ */
+
+/*!
+ * \brief Platform reset register widths.
+ */
+enum mod_scmi_apcore_register_width {
+ /*! Single-word, 32-bit reset address registers supported */
+ MOD_SCMI_APCORE_REG_WIDTH_32,
+
+ /*! Double-word, 64-bit reset address registers supported */
+ MOD_SCMI_APCORE_REG_WIDTH_64,
+
+ /*! Number of valid register widths */
+ MOD_SCMI_APCORE_REG_WIDTH_COUNT,
+};
+
+/*!
+ * \brief Reset register group.
+ *
+ * \details Describes a set of reset registers that are contiguous in memory.
+ */
+struct mod_scmi_apcore_reset_register_group {
+ /*! Address of the first register in the group */
+ uintptr_t base_register;
+
+ /*! The number of registers in the group */
+ size_t register_count;
+};
+
+/*!
+ * \brief Module configuration.
+ */
+struct mod_scmi_apcore_config {
+ /*!
+ * \brief Pointer to the table of \ref mod_scmi_apcore_reset_register_group
+ * structures that define the reset registers within the platform.
+ */
+ const struct mod_scmi_apcore_reset_register_group
+ *reset_register_group_table;
+
+ /*!
+ * \brief Number of \ref mod_scmi_apcore_reset_register_group structures in
+ * \ref reset_register_group_table.
+ */
+ size_t reset_register_group_count;
+
+ /*! Width of the reset address supported by the platform */
+ enum mod_scmi_apcore_register_width reset_register_width;
+};
+
+/*!
+ * \}
+ */
+
+#endif /* MOD_SCMI_APCORE_H */