aboutsummaryrefslogtreecommitdiff
path: root/product/sgi575
diff options
context:
space:
mode:
authorAmit Daniel Kachhap <amit.kachhap@arm.com>2018-07-20 18:01:55 +0530
committerronald-cron-arm <39518861+ronald-cron-arm@users.noreply.github.com>2018-10-18 17:22:34 +0000
commit3d389c4d9d61f5526c3a54a4b1e0defc90dbbf77 (patch)
treefc466c956568fba60d7f96bce0794209bcaaa2ae /product/sgi575
parent4b527ceb4392da1b941993c2e2976509c13d7144 (diff)
sgi575/scp_ramfw: Update and build clock related configs
Change-Id: Ia102bc3806f46f612d2615831113900beb6e145e Signed-off-by: Amit Daniel Kachhap <amit.kachhap@arm.com>
Diffstat (limited to 'product/sgi575')
-rw-r--r--product/sgi575/scp_ramfw/config_clock.c47
-rw-r--r--product/sgi575/scp_ramfw/config_clock.h64
-rw-r--r--product/sgi575/scp_ramfw/firmware.mk6
3 files changed, 116 insertions, 1 deletions
diff --git a/product/sgi575/scp_ramfw/config_clock.c b/product/sgi575/scp_ramfw/config_clock.c
index 6e8e3309..192c80f1 100644
--- a/product/sgi575/scp_ramfw/config_clock.c
+++ b/product/sgi575/scp_ramfw/config_clock.c
@@ -5,6 +5,51 @@
* SPDX-License-Identifier: BSD-3-Clause
*/
+#include <fwk_element.h>
#include <fwk_module.h>
+#include <fwk_module_idx.h>
+#include <mod_clock.h>
+#include <mod_css_clock.h>
+#include <mod_pik_clock.h>
+#include <system_clock.h>
+#include <config_clock.h>
-const struct fwk_module_config config_clock = { 0 };
+static const struct fwk_element clock_dev_desc_table[] = {
+ [CLOCK_IDX_INTERCONNECT] = {
+ .name = "Interconnect",
+ .data = &((struct mod_clock_dev_config) {
+ .driver_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_PIK_CLOCK,
+ CLOCK_PIK_IDX_INTERCONNECT),
+ .api_id = FWK_ID_API_INIT(FWK_MODULE_IDX_PIK_CLOCK,
+ MOD_PIK_CLOCK_API_TYPE_CLOCK),
+ }),
+ },
+ [CLOCK_IDX_CPU_GROUP0] = {
+ .name = "CPU_GROUP0",
+ .data = &((struct mod_clock_dev_config) {
+ .driver_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_CSS_CLOCK,
+ CLOCK_CSS_IDX_CPU_GROUP0),
+ .api_id = FWK_ID_API_INIT(FWK_MODULE_IDX_CSS_CLOCK,
+ MOD_CSS_CLOCK_API_TYPE_CLOCK),
+ }),
+ },
+ [CLOCK_IDX_CPU_GROUP1] = {
+ .name = "CPU_GROUP1",
+ .data = &((struct mod_clock_dev_config) {
+ .driver_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_CSS_CLOCK,
+ CLOCK_CSS_IDX_CPU_GROUP1),
+ .api_id = FWK_ID_API_INIT(FWK_MODULE_IDX_CSS_CLOCK,
+ MOD_CSS_CLOCK_API_TYPE_CLOCK),
+ }),
+ },
+ { 0 }, /* Termination description. */
+};
+
+static const struct fwk_element *clock_get_dev_desc_table(fwk_id_t module_id)
+{
+ return clock_dev_desc_table;
+}
+
+const struct fwk_module_config config_clock = {
+ .get_element_table = clock_get_dev_desc_table,
+};
diff --git a/product/sgi575/scp_ramfw/config_clock.h b/product/sgi575/scp_ramfw/config_clock.h
new file mode 100644
index 00000000..2f65ff55
--- /dev/null
+++ b/product/sgi575/scp_ramfw/config_clock.h
@@ -0,0 +1,64 @@
+/*
+ * Arm SCP/MCP Software
+ * Copyright (c) 2018, Arm Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef CONFIG_CLOCK_H
+#define CONFIG_CLOCK_H
+
+/*
+ * Clock indexes.
+ */
+enum clock_idx {
+ CLOCK_IDX_INTERCONNECT,
+ CLOCK_IDX_CPU_GROUP0,
+ CLOCK_IDX_CPU_GROUP1,
+ CLOCK_IDX_COUNT
+};
+
+/*
+ * PIK clock indexes.
+ */
+enum clock_pik_idx {
+ CLOCK_PIK_IDX_CLUS0_CPU0,
+ CLOCK_PIK_IDX_CLUS0_CPU1,
+ CLOCK_PIK_IDX_CLUS0_CPU2,
+ CLOCK_PIK_IDX_CLUS0_CPU3,
+ CLOCK_PIK_IDX_CLUS1_CPU0,
+ CLOCK_PIK_IDX_CLUS1_CPU1,
+ CLOCK_PIK_IDX_CLUS1_CPU2,
+ CLOCK_PIK_IDX_CLUS1_CPU3,
+ CLOCK_PIK_IDX_DMC,
+ CLOCK_PIK_IDX_INTERCONNECT,
+ CLOCK_PIK_IDX_SCP,
+ CLOCK_PIK_IDX_GIC,
+ CLOCK_PIK_IDX_PCLKSCP,
+ CLOCK_PIK_IDX_SYSPERCLK,
+ CLOCK_PIK_IDX_UARTCLK,
+ CLOCK_PIK_IDX_COUNT
+};
+
+/*
+ * CSS clock indexes.
+ */
+enum clock_css_idx {
+ CLOCK_CSS_IDX_CPU_GROUP0,
+ CLOCK_CSS_IDX_CPU_GROUP1,
+ CLOCK_CSS_IDX_COUNT
+};
+
+/*
+ * PLL clock indexes.
+ */
+enum clock_pll_idx {
+ CLOCK_PLL_IDX_CPU0,
+ CLOCK_PLL_IDX_CPU1,
+ CLOCK_PLL_IDX_SYS,
+ CLOCK_PLL_IDX_DMC,
+ CLOCK_PLL_IDX_INTERCONNECT,
+ CLOCK_PLL_IDX_COUNT
+};
+
+#endif /* CONFIG_CLOCK_H */
diff --git a/product/sgi575/scp_ramfw/firmware.mk b/product/sgi575/scp_ramfw/firmware.mk
index 24057994..1b1dabe2 100644
--- a/product/sgi575/scp_ramfw/firmware.mk
+++ b/product/sgi575/scp_ramfw/firmware.mk
@@ -15,6 +15,9 @@ BS_FIRMWARE_MODULES := \
pl011 \
log \
clock \
+ system_pll \
+ pik_clock \
+ css_clock \
gtimer \
timer
@@ -22,6 +25,9 @@ BS_FIRMWARE_SOURCES := \
rtx_config.c \
config_log.c \
config_clock.c \
+ config_system_pll.c \
+ config_pik_clock.c \
+ config_css_clock.c \
config_timer.c
include $(BS_DIR)/firmware.mk