diff options
Diffstat (limited to 'plat/st/stm32mp1/stm32mp1_scmi.c')
-rw-r--r-- | plat/st/stm32mp1/stm32mp1_scmi.c | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/plat/st/stm32mp1/stm32mp1_scmi.c b/plat/st/stm32mp1/stm32mp1_scmi.c index 80faf0c6e0..625d01ab33 100644 --- a/plat/st/stm32mp1/stm32mp1_scmi.c +++ b/plat/st/stm32mp1/stm32mp1_scmi.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2020, STMicroelectronics - All Rights Reserved + * Copyright (c) 2019-2021, STMicroelectronics - All Rights Reserved * * SPDX-License-Identifier: BSD-3-Clause */ @@ -8,8 +8,9 @@ #include <platform_def.h> -#include <drivers/st/scmi-msg.h> -#include <drivers/st/scmi.h> +#include <drivers/clk.h> +#include <drivers/scmi-msg.h> +#include <drivers/scmi.h> #include <drivers/st/stm32mp1_clk.h> #include <drivers/st/stm32mp_reset.h> #include <dt-bindings/clock/stm32mp1-clks.h> @@ -259,7 +260,8 @@ const char *plat_scmi_clock_get_name(unsigned int agent_id, } int32_t plat_scmi_clock_rates_array(unsigned int agent_id, unsigned int scmi_id, - unsigned long *array, size_t *nb_elts) + unsigned long *array, size_t *nb_elts, + uint32_t start_idx) { struct stm32_scmi_clk *clock = find_clock(agent_id, scmi_id); @@ -271,10 +273,14 @@ int32_t plat_scmi_clock_rates_array(unsigned int agent_id, unsigned int scmi_id, return SCMI_DENIED; } + if (start_idx > 0) { + return SCMI_OUT_OF_RANGE; + } + if (array == NULL) { *nb_elts = 1U; } else if (*nb_elts == 1U) { - *array = stm32mp_clk_get_rate(clock->clock_id); + *array = clk_get_rate(clock->clock_id); } else { return SCMI_GENERIC_ERROR; } @@ -292,7 +298,7 @@ unsigned long plat_scmi_clock_get_rate(unsigned int agent_id, return 0U; } - return stm32mp_clk_get_rate(clock->clock_id); + return clk_get_rate(clock->clock_id); } int32_t plat_scmi_clock_get_state(unsigned int agent_id, unsigned int scmi_id) @@ -323,13 +329,13 @@ int32_t plat_scmi_clock_set_state(unsigned int agent_id, unsigned int scmi_id, if (enable_not_disable) { if (!clock->enabled) { VERBOSE("SCMI clock %u enable\n", scmi_id); - stm32mp_clk_enable(clock->clock_id); + clk_enable(clock->clock_id); clock->enabled = true; } } else { if (clock->enabled) { VERBOSE("SCMI clock %u disable\n", scmi_id); - stm32mp_clk_disable(clock->clock_id); + clk_disable(clock->clock_id); clock->enabled = false; } } @@ -461,7 +467,7 @@ void stm32mp1_init_scmi_server(void) /* Sync SCMI clocks with their targeted initial state */ if (clk->enabled && stm32mp_nsec_can_access_clock(clk->clock_id)) { - stm32mp_clk_enable(clk->clock_id); + clk_enable(clk->clock_id); } } |