aboutsummaryrefslogtreecommitdiff
path: root/product/sgm775
diff options
context:
space:
mode:
authorLeandro Belli <leandro.belli@arm.com>2020-07-22 00:31:11 +0000
committerjimqui01 <54316584+jimqui01@users.noreply.github.com>2020-08-06 09:53:14 +0100
commit87144e89c4a54a83a029d95cd5fc8d525323b98b (patch)
treea0b2f16328d1d7497554e89f9777b3b10c2f8dd2 /product/sgm775
parentabf948935da0c046908b15a73dc7caeb8040eaf0 (diff)
DVFS/SCMI-perf: Abstract performance levels.
This patch replace explicit frequency by an abstract performance level. All platforms were updated to use abstract performance levels. Change-Id: I6a7d8c4e12a593880275e95f27306b53ce96b2a8 Signed-off-by: Leandro Belli <leandro.belli@arm.com>
Diffstat (limited to 'product/sgm775')
-rw-r--r--product/sgm775/scp_ramfw/config_dvfs.c168
1 files changed, 92 insertions, 76 deletions
diff --git a/product/sgm775/scp_ramfw/config_dvfs.c b/product/sgm775/scp_ramfw/config_dvfs.c
index bd0bed1b..a7b31ac3 100644
--- a/product/sgm775/scp_ramfw/config_dvfs.c
+++ b/product/sgm775/scp_ramfw/config_dvfs.c
@@ -25,109 +25,125 @@
static const struct mod_dvfs_domain_config cpu_group_little = {
.psu_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_PSU, 0),
.clock_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_CLOCK, 1),
- .alarm_id = FWK_ID_SUB_ELEMENT_INIT(FWK_MODULE_IDX_TIMER, 0,
+ .alarm_id = FWK_ID_SUB_ELEMENT_INIT(
+ FWK_MODULE_IDX_TIMER,
+ 0,
CONFIG_TIMER_DVFS_CPU_GROUP_LITTLE),
.notification_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_SCMI_PERF),
- .notification_api_id = FWK_ID_API_INIT(FWK_MODULE_IDX_SCMI_PERF,
+ .notification_api_id = FWK_ID_API_INIT(
+ FWK_MODULE_IDX_SCMI_PERF,
MOD_SCMI_PERF_DVFS_NOTIFICATION_API),
.retry_ms = 1,
.latency = 1200,
.sustained_idx = 2,
- .opps = (struct mod_dvfs_opp[]) {
- {
- .frequency = 665 * FWK_MHZ,
- .voltage = 800,
- },
- {
- .frequency = 998 * FWK_MHZ,
- .voltage = 850,
- },
- {
- .frequency = 1330 * FWK_MHZ,
- .voltage = 900,
- },
- {
- .frequency = 1463 * FWK_MHZ,
- .voltage = 950,
- },
- {
- .frequency = 1596 * FWK_MHZ,
- .voltage = 1000,
- },
- { 0 }
- }
+ .opps = (struct mod_dvfs_opp[]){ {
+ .level = 665 * 1000000UL,
+ .frequency = 665 * FWK_MHZ,
+ .voltage = 800,
+ },
+ {
+ .level = 998 * 1000000UL,
+ .frequency = 998 * FWK_MHZ,
+ .voltage = 850,
+ },
+ {
+ .level = 1330 * 1000000UL,
+ .frequency = 1330 * FWK_MHZ,
+ .voltage = 900,
+ },
+ {
+ .level = 1463 * 1000000UL,
+ .frequency = 1463 * FWK_MHZ,
+ .voltage = 950,
+ },
+ {
+ .level = 1596 * 1000000UL,
+ .frequency = 1596 * FWK_MHZ,
+ .voltage = 1000,
+ },
+ { 0 } }
};
static const struct mod_dvfs_domain_config cpu_group_big = {
.psu_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_PSU, 1),
.clock_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_CLOCK, 0),
- .alarm_id = FWK_ID_SUB_ELEMENT_INIT(FWK_MODULE_IDX_TIMER, 0,
+ .alarm_id = FWK_ID_SUB_ELEMENT_INIT(
+ FWK_MODULE_IDX_TIMER,
+ 0,
CONFIG_TIMER_DVFS_CPU_GROUP_BIG),
.notification_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_SCMI_PERF),
- .notification_api_id = FWK_ID_API_INIT(FWK_MODULE_IDX_SCMI_PERF,
+ .notification_api_id = FWK_ID_API_INIT(
+ FWK_MODULE_IDX_SCMI_PERF,
MOD_SCMI_PERF_DVFS_NOTIFICATION_API),
.retry_ms = 1,
.latency = 1200,
.sustained_idx = 2,
- .opps = (struct mod_dvfs_opp[]) {
- {
- .frequency = 1313 * FWK_MHZ,
- .voltage = 800,
- },
- {
- .frequency = 1531 * FWK_MHZ,
- .voltage = 850,
- },
- {
- .frequency = 1750 * FWK_MHZ,
- .voltage = 900,
- },
- {
- .frequency = 2100 * FWK_MHZ,
- .voltage = 950,
- },
- {
- .frequency = 2450 * FWK_MHZ,
- .voltage = 1000,
- },
- { 0 }
- }
+ .opps = (struct mod_dvfs_opp[]){ {
+ .level = 1313 * 1000000UL,
+ .frequency = 1313 * FWK_MHZ,
+ .voltage = 800,
+ },
+ {
+ .level = 1531 * 1000000UL,
+ .frequency = 1531 * FWK_MHZ,
+ .voltage = 850,
+ },
+ {
+ .level = 1750 * 1000000UL,
+ .frequency = 1750 * FWK_MHZ,
+ .voltage = 900,
+ },
+ {
+ .level = 2100 * 1000000UL,
+ .frequency = 2100 * FWK_MHZ,
+ .voltage = 950,
+ },
+ {
+ .level = 2450 * 1000000UL,
+ .frequency = 2450 * FWK_MHZ,
+ .voltage = 1000,
+ },
+ { 0 } }
};
static const struct mod_dvfs_domain_config gpu = {
.psu_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_PSU, 2),
.clock_id = FWK_ID_ELEMENT_INIT(FWK_MODULE_IDX_CLOCK, 2),
- .alarm_id = FWK_ID_SUB_ELEMENT_INIT(FWK_MODULE_IDX_TIMER, 0,
- CONFIG_TIMER_DVFS_GPU),
+ .alarm_id =
+ FWK_ID_SUB_ELEMENT_INIT(FWK_MODULE_IDX_TIMER, 0, CONFIG_TIMER_DVFS_GPU),
.notification_id = FWK_ID_MODULE_INIT(FWK_MODULE_IDX_SCMI_PERF),
- .notification_api_id = FWK_ID_API_INIT(FWK_MODULE_IDX_SCMI_PERF,
+ .notification_api_id = FWK_ID_API_INIT(
+ FWK_MODULE_IDX_SCMI_PERF,
MOD_SCMI_PERF_DVFS_NOTIFICATION_API),
.retry_ms = 1,
.latency = 1200,
.sustained_idx = 4,
- .opps = (struct mod_dvfs_opp[]) {
- {
- .frequency = 450 * FWK_MHZ,
- .voltage = 800,
- },
- {
- .frequency = 487500 * FWK_KHZ,
- .voltage = 850,
- },
- {
- .frequency = 525 * FWK_MHZ,
- .voltage = 900,
- },
- {
- .frequency = 562500 * FWK_KHZ,
- .voltage = 950,
- },
- {
- .frequency = 600 * FWK_MHZ,
- .voltage = 1000,
- },
- { 0 }
- }
+ .opps = (struct mod_dvfs_opp[]){ {
+ .level = 450 * 1000000UL,
+ .frequency = 450 * FWK_MHZ,
+ .voltage = 800,
+ },
+ {
+ .level = 487500 * 1000UL,
+ .frequency = 487500 * FWK_KHZ,
+ .voltage = 850,
+ },
+ {
+ .level = 525 * 1000000UL,
+ .frequency = 525 * FWK_MHZ,
+ .voltage = 900,
+ },
+ {
+ .level = 562500 * 1000UL,
+ .frequency = 562500 * FWK_KHZ,
+ .voltage = 950,
+ },
+ {
+ .level = 600 * 1000000UL,
+ .frequency = 600 * FWK_MHZ,
+ .voltage = 1000,
+ },
+ { 0 } }
};
static const struct fwk_element element_table[] = {